2

個人的なプロジェクトのためのアドバイスを探しています。

カスタマイズされた音声コマンドを作成するためのソフトウェアを作成しようとしています。目標は、ユーザー/私がコマンド/マクロを定義するためのオーディオデータ(2/3秒)を記録できるようにすることです。次に、ユーザーが話す(同じ音声データを録音する)と、コマンド/マクロが実行されます。ソフトウェアは、低コストのコンピューター(RaspberryPiなど)で1秒未満の処理時間でコマンドを検出できる必要があります。

私はすでに2つの方法で検索しました:-音声認識(CMU-Sphinx、Julius、simon):優れたオープンソースソリューションがありますが、多くの場合、大きなデータベースファイルが必要であり、音声認識は実際には私がやろうとしていることではありません。音声認識は、小さな機能には電力を消費しすぎる可能性があります。-オーディオ指紋(Chromaprint-> http://acoustid.org/chromaprint):それは私が探しているものとほぼ同じようです。原則は、生のオーディオデータからフィンガープリントを作成し、フィンガープリントを比較して、それらが同一であるかどうかを判断することです。ただし、この種のソフトウェア/ライブラリは、曲の識別用に設計されているようです(スマートフォンの有名なソフトウェアのように):私は優れた「コンパレータ」を構成しようとしていますが、うまくいかないと思います。

専用のソフトウェアやコードの一部が似たようなことをしていることを知っていますか?

任意の提案をいただければ幸いです。

4

2 に答える 2

2

ロボットに音声コマンドを送信することを意図した、多かれ少なかれ同様のプロジェクトがありました。音声認識ソフトウェアは、そのようなタスクには複雑すぎます。C ++でFFT実装を使用して、サンプリングされた音声のフーリエ成分を抽出し、次に主要な周波数(ターゲットの音声コマンドが最大の振幅を持つ周波数)のヒストグラムを作成しました。私は2つのアプローチを試しました:

  1. 指定された音声コマンドのヒストグラムとメモリに保存されているヒストグラムの類似性を比較して、最も可能性の高いコマンドを特定します。

  2. サポートベクターマシン(SVM)を使用して、音声コマンドを区別するための分類器をトレーニングします。私はLibSVMを使用しましたが、結果は最初のアプローチよりもかなり優れています。ただし、SVMメソッドの問題の1つは、トレーニング用にかなり大きなデータセットが必要になることです。もう1つの問題は、未知の音声が与えられた場合、分類器がとにかくコマンドを出力することです(これは明らかに間違ったコマンド検出です)。これは、類似度のしきい値があった最初のアプローチで回避できます。

これが、独自の音声起動ソフトウェアの実装に役立つことを願っています。

于 2013-10-18T10:54:13.563 に答える
1

コマンドのタイミングは変化する可能性があり、フィンガープリントは正確な時間の一致を期待するため、曲のフィンガープリントはそのタスクには適していません。ただし、CMUSphinxライブラリSphinxbaseで抽出された時系列および特徴のDTWアルゴリズムとのマッチングを実装するのは非常に簡単です。詳細については、DTWに関するウィキペディアのエントリを参照してください。

http://en.wikipedia.org/wiki/Dynamic_time_warping

http://cmusphinx.sourceforge.net/wiki/download

于 2013-03-09T09:09:51.037 に答える