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

完全なリスト(バリエーション名含む)はオンラインの メトリクスカタログ ページに掲載されています。


📚 ドキュメントとリソース


🙋‍♀️ VERSAを使うべき人は?

  • 研究者:TTS、VC、音声強調、音楽生成の論文で再現可能なマルチメトリクス評価が必要な方。
  • エンジニア:製品QAやベンチマークスイートで標準化された音声品質数値を報告する必要があるパイプラインを構築する方。
  • 学生:音声品質メトリクスを学びたい方。CLIは迅速な実験用のYAML設定ファイルを生成できます。

🤝 コントリビュート

プルリクエストを歓迎しています。スタイル、テスト、ドキュメントの期待についてはオンラインの Contributing ガイドをご覧ください。


TL;DR

VERSAは、>90の音声/音楽品質メトリクスを統合し、分散スコアリングをサポートする、メンテナンスが行き届いたMITライセンスのPythonライブラリです。コアをインストールし、必要に応じてオプションのバックエンドを追加し、versa-scoreまたはversa/bin/scorer.pyを実行することで、任意の音声データセットに対して再現可能なメトリクスレポートを取得できます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • Dispatch