4

自分の声を録音して、コンピューターに wav ファイルとして保存します。後で私が話すと、コンピューターは私の音声コマンドを既存の/事前に録音されたwavファイルと照合する必要があります..

質問: 2 つの音声データが等しいか、2 つの音声が 80% 一致していることを確認するにはどうすればよいですか?

if(audio1 == audio2)
   DO Task A
else if( audio1 is a bit similar to audio 2)
   DO TASK B
else if( audio1 (80% match) audio 2)
   DO TASK C
end if

2 つの音声データを比較する最良の方法は何ですか?

4

4 に答える 4

3

残念ながら、オーディオ波形を直接比較しようとするだけでは、すぐには結果が得られません。音声認識と話者認識については膨大な量の研究が行われており、基本に慣れていないと、車輪を再発明することになります。本当にやりたいことに応じて、ここにはいくつかの選択肢があると思います

  • HMM、DTW (learnvst で言及)、およびメル周波数ケプストラム係数について読み始めて、どこから始めればよいかを理解してください。
  • アプリケーションに組み込むことができる、低レベルの信号処理を処理するMicrosoftなどの既存の音声 API を使用します。
  • Windows Speech Recognition Macrosなどのさらに高度なものを使用して、音声を介して PC の側面を制御できるようにします (たとえば、「Purple Haze を再生する」)。

低レベルの音声処理 (かなりの量の数学が必要になります) について学びたいのか、それともほとんどコーディングせずに機能するものだけを学びたいのかによって異なります。

于 2012-05-29T21:12:53.567 に答える
2

Homemade Speech Recognitionからいくつかのアイデアを見つけることができます。これは.NETコンパクトなフレームワーク用ですが、簡単にプレーンに適応できますvanilla .NETこのソリューションは、高速フーリエ変換に基づいています。

于 2012-05-29T19:00:52.047 に答える
1

同様に、あなたは純粋に数値を意味しますか?この場合、相互相関タイプの分析で十分な場合があります。それ以外の場合、音声サンプルの人間の聴取者の聴覚の観点から類似していることを意味する場合は、音響指紋について調べる必要があります。

編集:

あなたの更新から、あなたは単純な形の音声認識をしたいと思っていると思いますよね?この場合、非常に限られたコーパス内の信号に最適な一致を取得するための最良のオプションは、動的タイムワーピング(DTW)ベースの認識機能です。 隠れマルコフモデルベースの認識システムは最先端ですが、DTWベースのシステムは実装がはるかに簡単になります。

于 2012-05-25T17:19:52.573 に答える
0

他の人が示唆しているように、より多くの情報を提供できない限り、簡単な解決策はありません. それらが時間の経過とともにあまり変化しない非常に短い音である場合、1 つの可能性は FFT を実行し、FFT の結果を比較することです。

より複雑なものについては、同様のアプローチを取ることができますが、STFT を使用してください。

ただし、おそらく、あなたの質問に対するドメイン固有の回答があります。

于 2012-05-25T23:03:59.960 に答える