👾
AudioSetデータセットを全部ダウンロードしてみる
概要
環境音などのデータセットとして一番有名なのは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
追記2 Youtubeからのダウンロード制限?
yt-dlpなどを使って大量にダウンロードを行うとYoutubeからブロックされてしまう可能性があるようです。ダウンロードするときはtime.sleep(3)などを挟んで適切な間隔でダウンロードするようにしてください。
追記3 Kaggleからダウンロードできました
Discussion