🐡

MusicCapsデータセットをダウンロードする方法

2024/01/07に公開

概要

MusicCapsはGoogleが公開している楽曲とキャプションをペアにしたデータセットです。5500程度の楽曲に説明文とタグが付いたデータセットとなっています。
https://www.kaggle.com/datasets/googleai/musiccaps

こちらのデータセットの特徴は以下の2つです

  • 商用利用可能なライセンスである(CC BY-SA 4.0)
  • 楽曲と説明文がペアになっている

こちらのデータセットはGoogleのテキストから楽曲を生成する論文 MusicLM: Generating Music From Text と同時に公開されました。
https://paperswithcode.com/paper/musiclm-generating-music-from-text

今回はこちらのデータセットの音声をダウンロードしてみます。

ダウンロード用のソースコード

データセットをダウンロードするためのソースコードはKaggleのデータセットのページのCodeタブで見つかります。
https://www.kaggle.com/datasets/googleai/musiccaps/code

今回はこちらのmusiccaps-explorerを使ってダウンロードします。
https://www.kaggle.com/code/osanseviero/musiccaps-explorer

MusicCapsはAudioSetと同じくYoutube上のファイルを参照しています。musiccaps-explorerではyt-dlpを使ってYoutubeの動画から音声をダウンロードします。

ダウンロード時の注意

musiccaps-explorer は以下の設定でダウンロードするファイル数、同時ダウンロード数を設定できます。ここで注意したいのがYoutube側の制限です。大量にファイルをダウンロードすると制限にひっかかる可能性があります。一度ひっかかると音声ファイルがダウンロードできなくなります。

大量にダウンロードする方はこちらのcoresを1にして、さらにソースコードのダウンロードしているところの後にtime.sleep(5)などを入れて、ほどほどに間隔を空けるようにしてください。

samples_to_load = 32      # How many samples to load
cores = 4                 # How many processes to use for the loading
sampling_rate = 44100     # Sampling rate for the audio, keep in 44100
writer_batch_size = 1000  # How many examples to keep in memory per worker. Reduce if OOM.
data_dir = "./music_data" # Where to save the data

本当にYoutube側の制限?

yt-dlpのgithubのissueで議論されています。この制限に引かかっている人がかなりいるようです。私も一度大量にダウンロードした後で音声がダウンロードできなくなりました。

Discussion