wavlab-speech/versa
Versatile Evaluation of Speech and Audio
🎧 VERSA とは何ですか?
VERSA(Versatile Evaluation of Speech and Audio)は、研究者や開発者が音声、音楽、または任意の音声信号の品質を 90以上の組み込みメトリクス で評価できるオープンソースのPythonツールキットです。これらのメトリクスは、知覚品質(例:PESQ、POLQA)、話者の理解度(例:WER、STOI)、技術的測定、さらにはFréchet Audio Distance(FAD)のような分布レベルの分析をカバーしています。VERSAは元の実装を軽量なラッパーとして扱い、モデルのダウンロード、入力の解析、分散実行を自動で処理するため、評価そのものに集中できます。
🚀 コア機能(READMEに記載)
- 膨大なメトリクスカタログ – 90以上、多くのバリエーションを含み、独立、依存、非一致、分布型のグループに分類されています。
- ツールキット統合 – すでにESPnet、Kaldiスタイルのパイプライン、およびいくつかの音声関連チャレンジで使用されています。
- 柔軟なI/O – 単純なファイルパス、KaldiスタイルのSCPリスト、ARKアーカイブをサポート。
- スケーラブルな実行 – 多ノード・多GPU実行用のSlurmサポートを内蔵。CPU用のローカルマルチプロセスモードも利用可能。
- 再開可能スコアリング – JSONL出力に完了記録が隠し保存されるため、中断されたジョブを再開可能。完了した発話の再計算は不要。
- 可視化 – インタラクティブなビジュアライザーとCLI(
versa-score)でメトリクス結果を探索可能。 - 拡張性 – 大規模なバックエンド(例:Qwen2‑Audio、SongEval、MAPSS)をオンデマンドでインストール可能なオプションの依存グループを提供。
📦 インストール(クイックスタート)
# クローンしてコアパッケージをインストール
git clone https://github.com/wavlab-speech/versa.git
cd versa
pip install .
# 必要な場合にのみオプショングループをインストール
pip install ".[audio,text,ml]" # 大規模モデルが必要なメトリクス
pip install ".[songeval]" # SongEvalメトリクスのみ
pip install ".[external]" # 他のツールキットをラップするバックエンド
pip install ".[dev]" # テスト・Lintツール
クローンせずにリポジトリから直接インストールすることも可能です:
python -m pip install git+https://github.com/wavlab-speech/versa.git#egg=versa-speech-audio-toolkit --no-build-isolation
🛠️ 一般的な使い方
ワンライナー評価(CPU、シンプルなメトリクスセット):
python versa/bin/scorer.py \
--score_config egs/speech_cpu.yaml \
--gt test/test_samples/test1 \
--pred test/test_samples/test2 \
--output_file result.jsonl \
--io dir
GPU加速実行、明示的なメトリクス選択:
python versa/bin/scorer.py \
--score_config egs/speech_gpu.yaml \
--gt test/test_samples/test1.scp \
--pred test/test_samples/test2.scp \
--output_file result.jsonl \
--io soundfile \
--use_gpu True \
--scoring_mode metric # GPUメモリ節約のため、1つずつメトリクスを読み込む
長時間ジョブの再開(例:クラスタのプリエンプション後):
python versa/bin/scorer.py ... --resume
利用可能なメトリクスの確認:
versa-score --list-metrics # インストール済みのすべてをリスト表示
versa-score --describe-metric pesq # 依存関係、論文参照などを表示
versa-score --recommend-config --task tts --device gpu
Slurmによる分散評価(提供済みの起動スクリプト):
./launch_slurm.sh <pred_scp> <gt_scp|None> <score_dir> <split_job_num>
スクリプトはリソースチェック、ジョブ配列作成、結果集約を自動処理します。
📊 どのようなメトリクスがカバーされていますか?
| カテゴリ | 例となるメトリクス |
|---|---|
| 独立型 | PESQ、POLQA、MOS‑Net、DNS‑MOS(参照音声不要) |
| 依存型 | STOI、WER、SI‑SDR(予測 vs. 正解を比較) |
| 非一致型 | Audio‑LLMの知覚スコア、Qwen2‑Audioの要約 |
| 分布型 | Fréchet Audio Distance(FAD)、Kernel Inception Distance(KID)、MAPSS |
完全なリスト(バリエーション名含む)はオンラインの メトリクスカタログ ページに掲載されています。
📚 ドキュメントとリソース
- ウェブサイト&ドキュメント: https://wavlab-speech.github.io/versa/
- インタラクティブColabデモ(Interspeech 2024チュートリアル): https://colab.research.google.com/drive/11c0vZxbSa8invMSfqM999tI3MnyAVsOp?usp=sharing
- 論文: VERSA: A Versatile Evaluation Toolkit for Speech, Audio, and Music(NAACL 2025 System Demo)– 提供されたBibTeXを引用してください。
- ライセンス: MIT(許容性が高く、商用利用も可)。
🙋♀️ VERSAを使うべき人は?
- 研究者:TTS、VC、音声強調、音楽生成の論文で再現可能なマルチメトリクス評価が必要な方。
- エンジニア:製品QAやベンチマークスイートで標準化された音声品質数値を報告する必要があるパイプラインを構築する方。
- 学生:音声品質メトリクスを学びたい方。CLIは迅速な実験用のYAML設定ファイルを生成できます。
🤝 コントリビュート
プルリクエストを歓迎しています。スタイル、テスト、ドキュメントの期待についてはオンラインの Contributing ガイドをご覧ください。
TL;DR
VERSAは、>90の音声/音楽品質メトリクスを統合し、分散スコアリングをサポートする、メンテナンスが行き届いたMITライセンスのPythonライブラリです。コアをインストールし、必要に応じてオプションのバックエンドを追加し、versa-scoreまたはversa/bin/scorer.pyを実行することで、任意の音声データセットに対して再現可能なメトリクスレポートを取得できます。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- Dispatch