2

私は職場が照明、コーヒー マシン、プリンターなどの環境を操作するためのプロジェクトを開発していますが、誰が私たちのシステムに話しかけているかを検出する方法を知りたくありません。

Speech.Recognitionライブラリを使用してC#でプロジェクトを構築しています。

これまでのところ、コマンドをキャプチャして簡単なことを実行することができましたが、さらに進んで人を検出したいので、たとえば「ジョン」という人が話している場合、彼が「こんにちはシステム」と言うと、システムがログに記録します話している人は「こんにちはジョン!」と答えます。その後、「John の」音声コマンドのみを認識し、別の音声は無視します。

4

3 に答える 3

4

あなたがやりたいことは呼ばれVoice Biometrics、これはニュアンスのような会社によって解決される難しい問題です(http://www.nuance.com/for-business/by-solution/customer-service-solutions/solutions-services/inbound- Solutions / voice-authentication-biometrics / index.htm)。しかし、オープンソース/研究ソリューションがあると確信しています。

たとえば、優れたプロジェクト(Javaの場合): http ://sourceforge.net/projects/marf/

于 2013-03-19T22:04:38.893 に答える
2

あなたは、音声分析の多くの用途の 1 つである、音声識別または音声検証を求めています。注意してください、音声識別は完璧にはほど遠いです。

最初にトレーニング データとアルゴリズムが必要で、そこから話者の統計モデルを推測します。後の認識/検証フェーズでは、入力データを統計モデルに適合させ、話者が既知であるかどうかを決定するしきい値を決定しようとします。これを自分で実装したり、より技術的な情報を探したりする場合のキーワードは、メル周波数ケプストラム係数、ガウス混合モデル、および隠れマルコフ モデルです。

興味深いツールはPraatかもしれません。ライブラリとして直接利用することはできませんが、ICSI の担当者がpraatlibというラッパーを作成しました。フォルマント周波数、ピッチなどの音声機能を抽出します。ICSI は、録音内の話者を区別するためにこれを使用しました (これはダイアライゼーションと呼ばれます)。

利用可能な無料のツールがかなりありますが、統計、音声分析についての深い理解と、一般的に十分に文書化されていないアカデミック コードを理解するための膨大な時間を必要とします。Sphinx (Java) とSHoUT (C++)は、注目すべき興味深いプロジェクトです。Sphinx には優れたドキュメントがあり、SHoUT には論文があり、理論的な詳細に疑問を感じた場合に読むことができます。

于 2013-06-09T07:55:41.913 に答える
0

各ユーザーを一意にする必要があります。

これを行うには、ユーザーのプールを用意し、recog ライブラリを使用します... 固有の音声属性 (ピッチ、レベルなど) をそのプールに保存し、ソフトウェアに属性を認識させ、それに応じて実行します。

于 2013-03-19T20:51:20.263 に答える