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 つです。

  1. Resamplingcast_columndatasets.Audio(sampling_rate=…) を使用して、サンプリングレートをオンザフライで変更します。
  2. Feature Extractionmap 関数で transformers.AutoProcessor(例: Whisper)を各サンプルに適用し、生の波形をモデル入力に変換し、文字起こしをトークナイズします。
  3. Filteringfilter を使って、長さが閾値(例: 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.

Sources