LoginSignup
0
0

More than 1 year has passed since last update.

SpeechBrain の pretrained モデルを利用して音声感情認識(SER)を試す

Posted at

音声感情認識(Speech Emotion Recognition, SER)を試した時のメモです。長めの音声をバッチ処理したかったので、API を使わずに試す方法を探しました。

音声認識/音声合成フレームワーク動向などから探しています。

やらなかった案

1. PwC のライブラリのとこにあるやつ

Papers with Code には Speech Emotion Recognition のタスクページがあり、ライブラリ部分に実装が並んでいます。ただ、最近動いてないリポジトリが多く、今でも簡単に動くものかどうかが怪しく、やめました。

2. espnet/espnetIEMOCAP モデル

2023 年 5 月現在、espnet/espnet の SLU (Spoken Language Understanding) results のコーナーに「Emotion Recognition」があるので、実装があるように見えます。(SLU results のコーナーにある理由はわかりません。)

実際、IEMOCAP レシピのページ を見ると「Emotional Labels: anger, happiness, sadness and neutral」での分類評価も記載があるのですが、その下の ASR 評価には pretrained モデルのリンクがあるのに対してそちらにはリンクがありません。pretrained モデルの公開はせずにスコアだけ載せたパターンのようなので、やめました。

3. Hugging Face で人気あるやつ

2023 年 5 月現在、Hugging FaceAudio Classification カテゴリで 2 位の倍以上のダウンロード数なのが、現在 1 位の ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition です。

ただ、ローカルで動かすにはどうすればいいのかわからないという話題でスレッドが盛り上がっており、その割に解決されていなそうだったので、やめました。

組み込みアプリの利用が多いことが原因なのかどうなのか、ダウンロード数が多い理由はわかりません。

4. NVIDIA/NeMo の ASR

NVIDIA/NeMo 内の asr_evaluator ツールには emotion メタデータを取得する IF があるように見えます。が、実際に emotion を返す pretrained モデルを見つけることができず、将来的な機能追加だとみて、やめました。

5. PaddlePaddle/PaddleSpeech

学習方法勉強ノートブックみたいなのしか見つからなかったので、やめました。

6. coqui-ai/STT

なんもなさそうだったのでやめました。

やった案: speechbrain/speechbrain

Web で試せるアプリが動いていたので、実現可能性が高いと思い、やりました。アプリのソースを見ても、実行部分はほとんど speechbrain/speechbrain 側で吸収してくれていそうでした。

speechbrain/emotion-recognition-wav2vec2-IEMOCAP の説明にある以下のサンプルコード

from speechbrain.pretrained.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)

を動かすだけで認識部分は動いたので、あとは長めの音声を渡す部分を作り、無事に試すことができました。

最終的なノートブックはこちらです。

感想としては、ラジオ番組のようなテンション高めの会話だとずっとハッピーになってしまったりして、用途を選びそうでした。そもそも IEMOCAP のデータは英語しかないので、言語の違いも要因かもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0