{
  "id": 176873,
  "title": "Xeno \"External\" data in .wav format (Resampled)",
  "url": "/competitions/birdsong-recognition/discussion/176873",
  "author_name": "",
  "post_date": "2020-08-23T23:22:01.802082800Z",
  "votes": 24,
  "comment_count": 3,
  "views": 0,
  "content": "<p>Hi,</p>\n<p>I have converted the dataset of <a href=\"https://www.kaggle.com/Vopani\" target=\"_blank\">@Vopani</a> in .wav format and resampled them (32 000 Hz).<br>\nThese audio samples are compatible with librosa.<br>\nIt can be usefull if you plan to train your model on more data, or reduced the imbalance dataset we have.</p>\n<p><a href=\"https://www.kaggle.com/ludovick/xenoexternalwav0\" target=\"_blank\">https://www.kaggle.com/ludovick/xenoexternalwav0</a><br>\n<a href=\"https://www.kaggle.com/ludovick/xenoexternalwav1\" target=\"_blank\">https://www.kaggle.com/ludovick/xenoexternalwav1</a></p>\n<p>Original dataset by <a href=\"https://www.kaggle.com/Vopani\" target=\"_blank\">@Vopani</a> (thanks you) :<br>\n<a href=\"https://www.kaggle.com/c/birdsong-recognition/discussion/159970\" target=\"_blank\">https://www.kaggle.com/c/birdsong-recognition/discussion/159970</a><br>\n<a href=\"http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m\" target=\"_blank\">http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m</a><br>\n<a href=\"http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z\" target=\"_blank\">http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z</a></p>\n<p>To get the full path of each audio sample, if you load the train_extended.csv file, you can use this function for Kaggle :</p>\n<pre><code>def path_folder_ext_wav(x):\n    folder1 = \"ab\"\n    folder2 = \"cdef\"\n    folder3 = \"ghijklm\"\n    folder4= \"nopqrs\"\n    folder5 = \"tuvwxyz\"\n    if x[0] in folder1:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-0/external-xeno-wav\"\n    elif x[0] in folder2:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-1/external-xeno-wav\"\n    elif x[0] in folder3:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-2/external-xeno-wav\"    \n    elif x[0] in folder4:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-3/external-xeno-wav\" \n    elif x[0] in folder5:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-4/external-xeno-wav\" \n    else:\n        print(x[0])\n        raise(\"Error\")\n\n\n\ndata_ext = pd.read_csv(\"/kaggle/input/xenoexternalwav0/train_extended.csv\")\ndata_ext[\"path\"] = data_ext.apply(lambda x: os.path.join(path_folder_ext_wav(x.ebird_code), x.ebird_code, x.filename.replace(\".mp3\", \".wav\")), axis=1)\n</code></pre>",
  "messages": [
    {
      "id": "982989",
      "postDate": "08/23/2020 23:22:01",
      "content": "<p>Hi,</p>\n<p>I have converted the dataset of <a href=\"https://www.kaggle.com/Vopani\" target=\"_blank\">@Vopani</a> in .wav format and resampled them (32 000 Hz).<br>\nThese audio samples are compatible with librosa.<br>\nIt can be usefull if you plan to train your model on more data, or reduced the imbalance dataset we have.</p>\n<p><a href=\"https://www.kaggle.com/ludovick/xenoexternalwav0\" target=\"_blank\">https://www.kaggle.com/ludovick/xenoexternalwav0</a><br>\n<a href=\"https://www.kaggle.com/ludovick/xenoexternalwav1\" target=\"_blank\">https://www.kaggle.com/ludovick/xenoexternalwav1</a></p>\n<p>Original dataset by <a href=\"https://www.kaggle.com/Vopani\" target=\"_blank\">@Vopani</a> (thanks you) :<br>\n<a href=\"https://www.kaggle.com/c/birdsong-recognition/discussion/159970\" target=\"_blank\">https://www.kaggle.com/c/birdsong-recognition/discussion/159970</a><br>\n<a href=\"http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m\" target=\"_blank\">http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m</a><br>\n<a href=\"http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z\" target=\"_blank\">http://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z</a></p>\n<p>To get the full path of each audio sample, if you load the train_extended.csv file, you can use this function for Kaggle :</p>\n<pre><code>def path_folder_ext_wav(x):\n    folder1 = \"ab\"\n    folder2 = \"cdef\"\n    folder3 = \"ghijklm\"\n    folder4= \"nopqrs\"\n    folder5 = \"tuvwxyz\"\n    if x[0] in folder1:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-0/external-xeno-wav\"\n    elif x[0] in folder2:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-1/external-xeno-wav\"\n    elif x[0] in folder3:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-2/external-xeno-wav\"    \n    elif x[0] in folder4:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-3/external-xeno-wav\" \n    elif x[0] in folder5:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-4/external-xeno-wav\" \n    else:\n        print(x[0])\n        raise(\"Error\")\n\n\n\ndata_ext = pd.read_csv(\"/kaggle/input/xenoexternalwav0/train_extended.csv\")\ndata_ext[\"path\"] = data_ext.apply(lambda x: os.path.join(path_folder_ext_wav(x.ebird_code), x.ebird_code, x.filename.replace(\".mp3\", \".wav\")), axis=1)\n</code></pre>",
      "rawMarkdown": "Hi,\n\nI have converted the dataset of @Vopani in .wav format and resampled them (32 000 Hz).\nThese audio samples are compatible with librosa.\nIt can be usefull if you plan to train your model on more data, or reduced the imbalance dataset we have.\n\nhttps://www.kaggle.com/ludovick/xenoexternalwav0\nhttps://www.kaggle.com/ludovick/xenoexternalwav1\n\nOriginal dataset by @Vopani (thanks you) :\nhttps://www.kaggle.com/c/birdsong-recognition/discussion/159970\nhttp://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m\nhttp://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z\n\nTo get the full path of each audio sample, if you load the train_extended.csv file, you can use this function for Kaggle :\n```\n\ndef path_folder_ext_wav(x):\n    folder1 = \"ab\"\n    folder2 = \"cdef\"\n    folder3 = \"ghijklm\"\n    folder4= \"nopqrs\"\n    folder5 = \"tuvwxyz\"\n    if x[0] in folder1:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-0/external-xeno-wav\"\n    elif x[0] in folder2:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-1/external-xeno-wav\"\n    elif x[0] in folder3:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-2/external-xeno-wav\"    \n    elif x[0] in folder4:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-3/external-xeno-wav\" \n    elif x[0] in folder5:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-4/external-xeno-wav\" \n    else:\n        print(x[0])\n        raise(\"Error\")\n\n\n\ndata_ext = pd.read_csv(\"/kaggle/input/xenoexternalwav0/train_extended.csv\")\ndata_ext[\"path\"] = data_ext.apply(lambda x: os.path.join(path_folder_ext_wav(x.ebird_code), x.ebird_code, x.filename.replace(\".mp3\", \".wav\")), axis=1)\n```",
      "votes": null
    },
    {
      "id": "984160",
      "postDate": "08/24/2020 22:24:24",
      "content": "<p>Thank you for your excellent job and additional code.<br>\nI'll try your version.🙏</p>",
      "rawMarkdown": "Thank you for your excellent job and additional code.\nI'll try your version.🙏",
      "votes": null
    },
    {
      "id": "1001839",
      "postDate": "09/07/2020 16:00:37",
      "content": "<p>How long did you train on the origin data + this external data per 1 epoch ?</p>",
      "rawMarkdown": "How long did you train on the origin data + this external data per 1 epoch ?",
      "votes": null
    },
    {
      "id": "1002099",
      "postDate": "09/07/2020 20:15:46",
      "content": "<p>It was 45 min instead of 20 min without external (so 2x longer)</p>",
      "rawMarkdown": "It was 45 min instead of 20 min without external (so 2x longer)",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 984160,
      "author_name": "",
      "author_url": "",
      "post_date": "08/24/2020 22:24:24",
      "content": "<p>Thank you for your excellent job and additional code.<br>\nI'll try your version.🙏</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1001839,
      "author_name": "truonghoang",
      "author_url": "",
      "post_date": "09/07/2020 16:00:37",
      "content": "<p>How long did you train on the origin data + this external data per 1 epoch ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 1002099,
          "author_name": "ludovick",
          "author_url": "",
          "post_date": "09/07/2020 20:15:46",
          "content": "<p>It was 45 min instead of 20 min without external (so 2x longer)</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "982989": "Hi,\n\nI have converted the dataset of @Vopani in .wav format and resampled them (32 000 Hz).\nThese audio samples are compatible with librosa.\nIt can be usefull if you plan to train your model on more data, or reduced the imbalance dataset we have.\n\nhttps://www.kaggle.com/ludovick/xenoexternalwav0\nhttps://www.kaggle.com/ludovick/xenoexternalwav1\n\nOriginal dataset by @Vopani (thanks you) :\nhttps://www.kaggle.com/c/birdsong-recognition/discussion/159970\nhttp://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-a-m\nhttp://www.kaggle.com/rohanrao/xeno-canto-bird-recordings-extended-n-z\n\nTo get the full path of each audio sample, if you load the train_extended.csv file, you can use this function for Kaggle :\n```\n\ndef path_folder_ext_wav(x):\n    folder1 = \"ab\"\n    folder2 = \"cdef\"\n    folder3 = \"ghijklm\"\n    folder4= \"nopqrs\"\n    folder5 = \"tuvwxyz\"\n    if x[0] in folder1:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-0/external-xeno-wav\"\n    elif x[0] in folder2:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-1/external-xeno-wav\"\n    elif x[0] in folder3:\n        return \"/kaggle/input/xenoexternalwav0/external-xeno-wav-2/external-xeno-wav\"    \n    elif x[0] in folder4:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-3/external-xeno-wav\" \n    elif x[0] in folder5:\n        return \"/kaggle/input/xenoexternalwav1/external-xeno-wav-4/external-xeno-wav\" \n    else:\n        print(x[0])\n        raise(\"Error\")\n\n\n\ndata_ext = pd.read_csv(\"/kaggle/input/xenoexternalwav0/train_extended.csv\")\ndata_ext[\"path\"] = data_ext.apply(lambda x: os.path.join(path_folder_ext_wav(x.ebird_code), x.ebird_code, x.filename.replace(\".mp3\", \".wav\")), axis=1)\n```",
    "984160": "Thank you for your excellent job and additional code.\nI'll try your version.🙏",
    "1001839": "How long did you train on the origin data + this external data per 1 epoch ?",
    "1002099": "It was 45 min instead of 20 min without external (so 2x longer)"
  },
  "source": "meta"
}