👾

AudioSetデータセットを全部ダウンロードしてみる

2023/11/22に公開

概要

環境音などのデータセットとして一番有名なのはAudioSetだと思います。今回はこちらをダウンロードしてみました。

AudioSetのオフィシャルではcsvデータしか配布していません。この中にYoutubeへのリンクがあるので、別途ダウンロードする必要があります。この手のデータセットの場合、すでに誰かがダウンロードスクリプトを公開しているので探してみたところ見つかりました。

セットアップ

最初に公開されたリポジトリが古くなっているようで、修正したバージョンがこちらで公開されていました。こちらを使ってダウンロードしていきます。

git clone https://github.com/Jeremias-V/audioset-processing/tree/fix-downloads

ffmpegを使うのでインストールします。

apt install -y ffmpeg

Youtubeからのダウンロードにはyt-dlpを使います。こちらはpipでインストールします。

pip install yt-dlp==2023.06.22

試しに bird クラスの音声をダウンロードしてみます。途中で止めたい場合はCtrl-Zです。

python3 process.py download -c "bird"

全部のクラスをダウンロード

こちらのスクリプトは指定したクラスの音声を全部落とすという仕様なので、すべてのクラスをダウンロードしたい場合は修正が必要です。

process.pyに以下の行を追加します。

    args = parser.parse_args()
    
    import csv
    with open('./data/class_labels_indices.csv', 'r') as f:
        reader = csv.reader(f)
        l = [row for row in reader]
        
    class_list = []
    for line in l:
        class_list.append(line[2])
      
    args.classes = class_list

これで全部のクラスの音声がダウンロードできるようになります。

python3 process.py download

クラスごとのダウンロードする音声の数を制限したいときは--limitが使えます

python3 process.py download --limit 50

サンプリングレートは-fsオプションで指定できます。

python3 process.py download -fs 32000

追記 もっと楽な方法がありました

pip install audioset-download

https://pypi.org/project/audioset-download/

追記2 Youtubeからのダウンロード制限?

yt-dlpなどを使って大量にダウンロードを行うとYoutubeからブロックされてしまう可能性があるようです。ダウンロードするときはtime.sleep(3)などを挟んで適切な間隔でダウンロードするようにしてください。

追記3 Kaggleからダウンロードできました

https://www.kaggle.com/datasets/zfturbo/audioset

Discussion