web-dev-qa-db-ja.com

人間の声、性別、年齢、感情を検出するためのオーディオ分析-これまでに行われたオープンソースの作業はありますか?

「オーディオ分析」の分野で、人間の声を検出し(たとえば、バックグラウンドノイズがあるにもかかわらず)、話者の性別を判断し、場合によってはいいえを判断するために行われた以前のオープンソース作業はありますか。話者の年齢、話者の年齢、話者の感情は?

私の勘では、CMU Sphinxのような音声認識ソフトウェアから始めるのが良いかもしれませんが、もっと良いものがあれば、それは素晴らしいことです。

24
mike.dinnone

私は音声認識の研究をしている大学院生です。これらはオープンリサーチの問題であり、残念ながら、これらのことをすぐに実行できるオープンソースパッケージを私は知りません。

信号処理または機械学習アルゴリズムの実装にある程度のバックグラウンドがある場合は、次の検索用語のいくつかを使用して学術論文を検索してみてください。

  • 性同一性(性別認識と呼ばれることもあります):発話から話者の性別を予測する
  • 年齢の識別:話者の年齢を予測する
  • 話者識別:可能な話者のセットから、発話で最も可能性の高い話者を予測します
  • 話者認証:話者に属するものとして発話を受け入れるか拒否する(「声紋」タイプの認証システムを想像してください)
  • 話者のダイアリゼーション:複数のファイルを含む音声ファイルを取得し、どの音声セグメントがどの話者に属するかをラベル付けします
  • 感情認識:発話から話者の感情を予測する(非常に新しい研究分野)。

http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification によると、おそらく世界有数のオープンソース音声認識機能であるCMUSphinxはサポートしていません。話者識別( http://cmusphinx.sourceforge.net/sphinx4/doc/Sphinx4-faq.html#speaker_identification );上記の他の機能のいずれかを備えているかどうかは疑わしいです。

一部の学術研究者は、コードをオンラインで投稿したり、コードを共有したりする場合があります。 Google Scholarを検索すると、Sphinxを使用して修士論文または博士論文を書いた多くの人が明らかになるので、そこから始めるのがよいでしょう。

最後に、信号処理について少し知っていれば、音声認識機能自体にアクセスすることなく、非常に大雑把な性別認識アルゴリズムの実装を試みることができます。基本的に、男性と女性の声は基本周波数が異なります-ウィキペディア( http://en.wikipedia.org/wiki/Voice_frequency )によると、男性の声は85〜180Hzですが、女性の声は165Hz〜255Hz。 soxのようなものを使用して、発話の周波数スペクトルを決定し(高速フーリエ変換と呼ばれるものを使用)、平均周波数などの要約統計量に応じて音声を「男性」または「女性」に分類できます(を参照)。 http://classicalconvert.com/tag/sox/ )。これを堅牢に機能させるために(つまり、多くのスピーカー、マイク、または録音環境で)、実行できることがたくさんあります。タスクの性質に依存するため、70%の精度を得るのにどれだけの時間と労力が必要になるかを予測できるかどうかはわかりません。私の感覚では、90%以上は間違いなく非常に難しいでしょう。

幸運を!

31
wwwilliam

CMU Sphinx 4を使用してピッチやパワーなどの低レベルの情報を抽出するのは少し難しい場合があります(古いバージョンには機能がある場合があります)。 Praatを使用することをお勧めします。話者の声でピッチティアと各フォルマントを抽出するスクリプトを書くことができます。正直なところ、Praatスクリプト言語は恐ろしいものですが、そうでなければ長い時間がかかる多くのことをすばやく実行します。多くのPraatスクリプトもオンラインで投稿されています。 http://www.fon.hum.uva.nl/praat/ を参照してください。

3
Nate Glenn

音声/非音声の分類とダイアリゼーションの質問(話者の数と話しているタイミングを決定する)の場合:これを実行できるオープンソースのツールキットがあります(自動的に行われるため、もちろん出力に誤りがあります)。この投稿を見てください:

ダイアリゼーションに関するstackoverflowの質問

3