モデル概要
モデル特徴
モデル能力
使用事例
🚀 VoxLingua107 ECAPA - TDNN 話者言語識別モデル
このモデルは、VoxLingua107データセットを使用してSpeechBrainで学習された話者言語識別モデルです。107種類の言語を識別でき、下流タスクにおける発話埋め込みの性能向上に貢献します。
🚀 クイックスタート
このモデルは、VoxLingua107データセットを使用してSpeechBrainで学習された話者言語識別モデルです。以下に、使用方法の例を示します。
💻 使用例
基本的な使用法
import torchaudio
from speechbrain.pretrained import EncoderClassifier
language_id = EncoderClassifier.from_hparams(source="speechbrain/lang-id-voxlingua107-ecapa", savedir="tmp")
# Download Thai language sample from Omniglot and cvert to suitable form
signal = language_id.load_audio("https://omniglot.com/soundfiles/udhr/udhr_th.mp3")
prediction = language_id.classify_batch(signal)
print(prediction)
# (tensor([[-2.8646e+01, -3.0346e+01, -2.0748e+01, -2.9562e+01, -2.2187e+01,
# -3.2668e+01, -3.6677e+01, -3.3573e+01, -3.2545e+01, -2.4365e+01,
# -2.4688e+01, -3.1171e+01, -2.7743e+01, -2.9918e+01, -2.4770e+01,
# -3.2250e+01, -2.4727e+01, -2.6087e+01, -2.1870e+01, -3.2821e+01,
# -2.2128e+01, -2.2822e+01, -3.0888e+01, -3.3564e+01, -2.9906e+01,
# -2.2392e+01, -2.5573e+01, -2.6443e+01, -3.2429e+01, -3.2652e+01,
# -3.0030e+01, -2.4607e+01, -2.2967e+01, -2.4396e+01, -2.8578e+01,
# -2.5153e+01, -2.8475e+01, -2.6409e+01, -2.5230e+01, -2.7957e+01,
# -2.6298e+01, -2.3609e+01, -2.5863e+01, -2.8225e+01, -2.7225e+01,
# -3.0486e+01, -2.1185e+01, -2.7938e+01, -3.3155e+01, -1.9076e+01,
# -2.9181e+01, -2.2160e+01, -1.8352e+01, -2.5866e+01, -3.3636e+01,
# -4.2016e+00, -3.1581e+01, -3.1894e+01, -2.7834e+01, -2.5429e+01,
# -3.2235e+01, -3.2280e+01, -2.8786e+01, -2.3366e+01, -2.6047e+01,
# -2.2075e+01, -2.3770e+01, -2.2518e+01, -2.8101e+01, -2.5745e+01,
# -2.6441e+01, -2.9822e+01, -2.7109e+01, -3.0225e+01, -2.4566e+01,
# -2.9268e+01, -2.7651e+01, -3.4221e+01, -2.9026e+01, -2.6009e+01,
# -3.1968e+01, -3.1747e+01, -2.8156e+01, -2.9025e+01, -2.7756e+01,
# -2.8052e+01, -2.9341e+01, -2.8806e+01, -2.1636e+01, -2.3992e+01,
# -2.3794e+01, -3.3743e+01, -2.8332e+01, -2.7465e+01, -1.5085e-02,
# -2.9094e+01, -2.1444e+01, -2.9780e+01, -3.6046e+01, -3.7401e+01,
# -3.0888e+01, -3.3172e+01, -1.8931e+01, -2.2679e+01, -3.0225e+01,
# -2.4995e+01, -2.1028e+01]]), tensor([-0.0151]), tensor([94]), ['th'])
# The scores in the prediction[0] tensor can be interpreted as log-likelihoods that
# the given utterance belongs to the given language (i.e., the larger the better)
# The linear-scale likelihood can be retrieved using the following:
print(prediction[1].exp())
# tensor([0.9850])
# The identified language ISO code is given in prediction[3]
print(prediction[3])
# ['th: Thai']
# Alternatively, use the utterance embedding extractor:
emb = language_id.encode_batch(signal)
print(emb.shape)
# torch.Size([1, 1, 256])
GPUで推論を行うには、from_hparams
メソッドを呼び出す際に run_opts={"device":"cuda"}
を追加します。
システムは16kHz(単チャンネル)でサンプリングされた録音で学習されています。必要に応じて、classify_file
を呼び出すときにコードが自動的にオーディオを正規化します(リサンプリング + モノラルチャンネル選択)。encode_batch
や classify_batch
を使用する場合は、入力テンソルが予期されるサンプリングレートに準拠していることを確認してください。
✨ 主な機能
- 話者言語識別:107種類の言語を識別できます。
- 埋め込み抽出:発話レベルの特徴(埋め込み)を抽出でき、独自のデータで専用の言語識別モデルを作成するのに役立ちます。
📦 インストール
インストールに関する具体的なコマンドは元のREADMEに記載されていないため、このセクションを省略します。
📚 ドキュメント
モデルの説明
これは、SpeechBrainを使用してVoxLingua107データセットで学習された話者言語認識モデルです。モデルは、以前に話者認識に使用されていたECAPA - TDNNアーキテクチャを使用しています。ただし、埋め込み層の後により多くの全結合隠れ層を使用し、学習には交差エントロピー損失を使用しました。下流タスクにおける抽出された発話埋め込みの性能が向上することが確認されました。
システムは16kHz(単チャンネル)でサンプリングされた録音で学習されています。必要に応じて、classify_file
を呼び出すときにコードが自動的にオーディオを正規化します(リサンプリング + モノラルチャンネル選択)。
モデルは、話者が話している言語に応じて音声発話を分類することができます。107種類の異なる言語をカバーしています。
想定される用途と制限
このモデルには2つの用途があります。
- そのまま話者言語認識に使用する。
- 独自のデータで専用の言語識別モデルを作成するために、発話レベルの特徴(埋め込み)抽出器として使用する。
モデルは自動収集されたYouTubeデータで学習されています。データセットの詳細については、こちらを参照してください。
制限とバイアス
モデルはVoxLingua107で学習されているため、多くの制限とバイアスがあります。いくつかの例を挙げると、
- 小規模な言語に対する精度はかなり限られている可能性があります。
- YouTubeデータには男性の音声がはるかに多く含まれているため、女性の音声に対する性能は男性の音声よりも悪い可能性があります。
- 主観的な実験によると、外国のアクセントのある音声に対してはうまく機能しません。
- 子供の音声や言語障害のある人の音声に対してはうまく機能しない可能性があります。
学習データ
モデルはVoxLingua107で学習されています。
VoxLingua107は、話者言語識別モデルを学習するための音声データセットです。このデータセットは、YouTube動画から自動的に抽出された短い音声セグメントで構成されており、動画のタイトルと説明の言語に基づいてラベル付けされ、誤検出をフィルタリングするためのいくつかの後処理ステップが行われています。
VoxLingua107は107種類の言語のデータを含んでいます。学習セットの音声の総量は6628時間です。言語ごとの平均データ量は62時間ですが、実際の言語ごとの量は大きく異なります。また、33種類の言語からの1609個の音声セグメントを含む別の開発セットもあり、少なくとも2人のボランティアによって実際に指定された言語が含まれていることが検証されています。
学習手順
詳細はSpeechBrainレシピを参照してください。
評価結果
VoxLingua107開発データセットでの誤り率は6.7%です。
参照情報
SpeechBrainの参照
@misc{speechbrain,
title={{SpeechBrain}: A General-Purpose Speech Toolkit},
author={Mirco Ravanelli and Titouan Parcollet and Peter Plantinga and Aku Rouhe and Samuele Cornell and Loren Lugosch and Cem Subakan and Nauman Dawalatabad and Abdelwahab Heba and Jianyuan Zhong and Ju-Chieh Chou and Sung-Lin Yeh and Szu-Wei Fu and Chien-Feng Liao and Elena Rastorgueva and François Grondin and William Aris and Hwidong Na and Yan Gao and Renato De Mori and Yoshua Bengio},
year={2021},
eprint={2106.04624},
archivePrefix={arXiv},
primaryClass={eess.AS},
note={arXiv:2106.04624}
}
VoxLingua107の参照
@inproceedings{valk2021slt,
title={{VoxLingua107}: a Dataset for Spoken Language Recognition},
author={J{\"o}rgen Valk and Tanel Alum{\"a}e},
booktitle={Proc. IEEE SLT Workshop},
year={2021},
}
SpeechBrainについて
SpeechBrainは、オープンソースの統合型音声ツールキットです。シンプルで非常に柔軟性が高く、使いやすいように設計されています。様々なドメインで競争力のある、または最先端の性能が得られます。 ウェブサイト: https://speechbrain.github.io/ GitHub: https://github.com/speechbrain/speechbrain
🔧 技術詳細
元のREADMEに具体的な技術説明(50文字以上)がないため、このセクションを省略します。
📄 ライセンス
このモデルは "apache - 2.0" ライセンスの下で提供されています。









