🚀 IEMOCAPをベースにしたwav2vec2による感情認識
このリポジトリは、SpeechBrainを使用して微調整されたwav2vec2(ベース)モデルで感情認識を行うために必要なすべてのツールを提供します。
このモデルは、IEMOCAPのトレーニングデータで学習されています。
より良い体験を得るために、SpeechBrainについてもっと学ぶことをおすすめします。IEMOCAPのテストセットでのモデルの性能は以下の通りです。
リリース日 |
正解率(%) |
21年10月19日 |
78.7 (平均: 75.3) |
✨ 主な機能
🔧 パイプラインの説明
このシステムはwav2vec2モデルで構成されています。これは畳み込みブロックと残差ブロックの組み合わせです。埋め込みは注意統計プーリングを使用して抽出されます。システムはAdditive Margin Softmax Lossで学習されています。話者認証は話者の埋め込み間のコサイン距離を使用して行われます。
システムは16kHzでサンプリングされた録音(単チャンネル)で学習されています。
コードは、必要に応じてclassify_fileを呼び出すときに自動的にオーディオを正規化します(すなわち、リサンプリング + モノチャンネル選択)。
📦 インストール
まず、以下のコマンドでSpeechBrainの開発バージョンをインストールしてください。
pip install git+https://github.com/speechbrain/speechbrain.git@develop
SpeechBrainのチュートリアルを読み、もっと学ぶことをおすすめします。
💻 使用例
基本的な使用法
外部のpy_module_file=custom.py
を、このHFリポジトリの外部Predictorクラスとして使用します。speechbrain.pretrained.interfaces
のforeign_class
関数を使用して、カスタムモデルをロードすることができます。
from speechbrain.inference.interfaces import foreign_class
classifier = foreign_class(source="speechbrain/emotion-recognition-wav2vec2-IEMOCAP", pymodule_file="custom_interface.py", classname="CustomEncoderWav2vec2Classifier")
out_prob, score, index, text_lab = classifier.classify_file("speechbrain/emotion-recognition-wav2vec2-IEMOCAP/anger.wav")
print(text_lab)
予測テンソルには、(埋め込み, クラスID, ラベル名)のタプルが含まれます。
高度な使用法
GPUで推論を行うには、from_hparams
メソッドを呼び出すときにrun_opts={"device":"cuda"}
を追加します。
学習方法
このモデルはSpeechBrain (aa018540) で学習されています。最初から学習するには、以下の手順に従ってください。
- SpeechBrainをクローンします。
git clone https://github.com/speechbrain/speechbrain/
- インストールします。
cd speechbrain
pip install -r requirements.txt
pip install -e .
- 学習を実行します。
cd recipes/IEMOCAP/emotion_recognition
python train_with_wav2vec2.py hparams/train_with_wav2vec2.yaml --data_folder=your_data_folder
学習結果(モデル、ログなど)はこちらで見ることができます。
制限事項
SpeechBrainチームは、このモデルを他のデータセットで使用した場合の性能について、いかなる保証も提供しません。
📄 ライセンス
このプロジェクトは、Apache License 2.0の下でライセンスされています。
📚 ドキュメント
SpeechBrainを引用する場合
研究やビジネスで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}
}
SpeechBrainについて
- ウェブサイト: https://speechbrain.github.io/
- コード: https://github.com/speechbrain/speechbrain/
- HuggingFace: https://huggingface.co/speechbrain/