Hugging Face オーディオデータセットガイド – データのロード、処理、ストリーミング方法
TL;DR
Hugging Face は、🤗 Datasets ライブラリが Hub から任意のオーディオデータセットを数行の Python コードでロード、前処理、ストリーミングできることを示すステップバイステップのガイドを公開し、大規模な音声・オーディオ研究を実用的かつ再現可能にしました。
Hub はオーディオデータのワンストップショップ
Hugging Face Hub には 77 の音声認識 データセットと 28 のオーディオ分類 データセットが掲載されています(2022 年 12 月時点の数)。各データセットカードには、再生可能な音声サンプルのプレビュー、ライセンス情報、データで学習されたモデルへのリンクが含まれます。ユーザーは Hub 上でタスクカテゴリ別にデータセットをフィルタリングできます。
"データセットプレビューは、実際に使用する前にオーディオデータセットを体験できる素晴らしい方法です。"
load_dataset でワンラインロード
コア API は datasets.load_dataset です。Hub の識別子(例: speechcolab/gigaspeech)とオプションの構成(例: 10 時間分割のための "xs")を指定すると、train、validation、test の各分割を含む DatasetDict が返されます。
from datasets import load_dataset
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs")
print(gigaspeech)
出力には各分割の行数と完全な特徴リスト(例: segment_id, speaker, text, audio, …)が表示されます。タスクに不要な列は remove_columns で削除できます。
最小限の前処理パイプライン
ほとんどの音声認識ワークフローをカバーする汎用ステップは 3 つです。
- Resampling –
cast_columnとdatasets.Audio(sampling_rate=…)を使用して、サンプリングレートをオンザフライで変更します。 - Feature Extraction –
map関数でtransformers.AutoProcessor(例: Whisper)を各サンプルに適用し、生の波形をモデル入力に変換し、文字起こしをトークナイズします。 - Filtering –
filterを使って、長さが閾値(例: 30 秒)を超えるサンプルを除外し、OOM エラーを防ぎます。
この 3 つのステップは、チュートリアル全体で 13 行の Python だけで実装できます。
ストリーミングモードでディスク容量の壁を取り除く
大規模構成(例: GigaSpeech xl は 10 000 h ≈ 1 TB)をローカルに保存するのは現実的ではありません。streaming=True を設定すると、サンプルが遅延ロードされ、イテレーション時にのみダウンロード・処理が行われます。
gigaspeech = load_dataset("speechcolab/gigaspeech", "xs", streaming=True)
ストリーミングの利点:
- Zero disk footprint – データはイテレーション中のみメモリに存在します。
- Immediate availability – 最初のサンプルが取得でき次第、すぐに学習を開始できます。
- Rapid prototyping – 完全ダウンロードなしで、少数のサンプルで実験できます。
トレードオフとして、ストリーミングデータはキャッシュされないため、再実行時には各サンプルが再度ダウンロード・再処理されます。
人気オーディオデータセットのクイックツアー
このガイドでは、3 つのタスクファミリーで最も広く使われているデータセットを一覧化し、すべて同じ load_dataset パターンでアクセスできます。
英語音声認識
| データセット | ドメイン | 時間 | 大文字小文字 | 句読点 | ライセンス |
|---|---|---|---|---|---|
| LibriSpeech | オーディオブック | 960 | ❌ | ❌ | CC‑BY‑4.0 |
| Common Voice 11 | Wikipedia | 2 300 | ✅ | ✅ | CC0‑1.0 |
| VoxPopuli | 欧州議会 | 540 | ❌ | ✅ | CC0 |
| TED‑LIUM | TEDトーク | 450 | ❌ | ❌ | CC‑BY‑NC‑ND 3.0 |
| GigaSpeech | オーディオブック、ポッドキャスト、YouTube | 10 000 | ❌ | ✅ | Apache‑2.0 |
| SPGISpeech | 財務決算電話会議 | 5 000 | ✅ | ✅ | User Agreement |
| Earnings‑22 | 財務決算電話会議 | 119 | ✅ | ✅ | CC‑BY‑SA‑4.0 |
| AMI | ミーティング | 100 | ✅ | ✅ | CC‑BY‑4.0 |
多言語音声認識
- Multilingual LibriSpeech – 8 つの高リソース言語。
- Common Voice – 100 以上の言語、クラウドソーシング。
- VoxPopuli – 15 の欧州言語。
- FLEURS – 102 言語、各言語約 10 h。
音声翻訳
- CoVoST 2 – 2 900 h、21→EN と EN→15 の言語ペアをカバー。
- FLEURS – 101 言語ペアの並列音声翻訳データ。
オーディオ分類
- SpeechCommands – デバイス上でのキーワードスポッティング用 1 秒キーワード発話。
- Multilingual Spoken Words – 50 言語で 23.4 h、340 k キーワード。
- FLEURS – 102 言語の言語識別ラベル。
終わりに
このガイドは 🤗 Datasets がオーディオ研究の必須ライブラリであることを実証しています。ワンラインで任意のデータセットをロードでき、組み込みのオーディオ機能でリサンプリングが簡素化され、ストリーミングにより大規模コーパスも扱いやすくなります。付属の Colab ノートブックでは、8 つの英語 ASR データセットに対して Whisper を評価するスクリプトが示され、ワークフローの実用的な利点が具体的に分かります。
本ブログ記事への貢献者: Vaibhav Srivastav, Polina Kazakova, Patrick von Platen, Omar Sanseviero, Quentin Lhoest.