はい、CMU Sphinx などの音声認識ソフトウェアを使用して、音声以外の音を認識することができます。このためには、独自の音響モデルと言語モデルを作成し、タスクに限定されたレキシコンを定義する必要があります。ただし、対応する音響モデルをトレーニングするには、関心のある注釈付きの音を含む十分なトレーニング データが必要です。
要するに、一連の手順は次のとおりです。
まず、トレーニング用のリソース (レキシコン、辞書など) を準備します。プロセスについては、http: //cmusphinx.sourceforge.net/wiki/tutorialamで説明されています。しかし、あなたの場合、音素セットと辞書を再定義する必要があります。つまり、フィラーを実際の単語としてモデル化する必要があり (そのため、++
周りにはありません)、完全な音素セットを定義する必要はありません。多くの可能性がありますが、おそらく最も単純なのは、すべての音声音素に対して単一のモデルを使用することです。したがって、レキシコンは次のようになります。
CLAP CLAP
BARK BARK
WHISTLE WHISTLE
FART FART
SPEECH SPEECH
次に、ラベル付きのトレーニング データを準備します。これは VoxForge に似ていますが、テキスト注釈にはレキシコンのラベルのみを含める必要があります。もちろん、音声以外の音にも正しくラベルを付ける必要があります。ここでの良い質問は、そのようなデータを十分に大量に取得する場所です。しかし、私はそれが可能であるべきだと思います。
これで、モデルをトレーニングできます。タスクは音声認識に比べて簡単です。たとえば、モノフォンだけでトライフォンを使用する必要はありません。
任意の音声/音声の事前確率が等しいと仮定すると、最も単純な言語モデルはループのような文法になります ( http://cmusphinx.sourceforge.net/wiki/tutoriallm ):
#JSGF V1.0;
/**
* JSGF Grammar for Hello World example
*/
grammar foo;
public <foo> = (CLAP | BARK | WHISTLE | FART | SPEECH)+ ;
これは、タスクに ASR ツールキットを使用するための非常に基本的なアプローチです。HMM 構成を微調整し、統計的言語モデルを使用し、きめの細かい音素モデリングを使用することで、さらに改善できます (たとえば、単一の SPEECH モデルを使用する代わりに母音と子音を区別します。トレーニング データの性質によって異なります)。
音声認識のフレームワークの外では、入力データをフレームごとに分析する単純な静的分類器を構築できます。スペクトログラム上で動作する畳み込みニューラル ネットワークは、このタスクに非常に適しています。