2011-07-23 3 views
1

プロンプト後に文章を繰り返すように求められるシステムがあります。 HTKforce-alignを使用して、(文章の)事前定義された単語レベルのラベルファイルにユーザー音声の文章を使用して、時間的に調整された電話レベルファイルを取得します。 HMMは大量のデータを訓練しており、非常に正確な時刻合わせファイルをHViteとしています。私の問題は、ユーザでない場合、正確に話さなければなりません。私は例で説明しましょう:これは非常にGOOD DAY IS
:(利用者に知られている)話される必要があるターゲットセンテンスの音声認識における強制的な位置合わせの問題 - HTK

  1. 単語レベルのラベルファイルを。

  2. ユーザーは(ケース1)と言っています:これは非常に良い日です。
    この場合、ユーザーは全く同じ文章を繰り返しています。時間を揃えたファイルは非常に正確で、すべてうまくいきます。

  3. ユーザーは(ケース2)と言う:これは良い日です。
    この場合、上記のようにワードレベルのラベルファイルを使用して強制的に配置が行われます。得られた時間的に整列されたファイルは、ユーザが一度も話していない単語(例えば、元の文に存在するVERYなど)を表示する。

HTKにはこれを検出し、おそらくこれを避ける方法はありますか?

解決策の1つは、スピーチ認識(それ自体が非常に難しい問題であり、無限のボキャブを持つ必要があるため)を行うフロントエンドのプリプロセッサのようなものであり、ユーザーが話した内容が間違っている。

HTKには、これを実行できるツール/コマンドラインオプションがありますか?

P .:詳細が必要な場合はお知らせください。

おかげで、
スリラム

答えて

2

おそらく間違った転写はかなり複雑で、特殊なツールを必要とするテキストの配置の作業。 HTKの強制的なアライメントはあまりに単純すぎます。 -aと一緒にHViteを使用する代わりに、適切なwdnetを構築する必要があります。これは、転写ミスマッチによる挿入、削除、置換の可能性を説明します。

CMUSphinxでは、現在この機能を実装するプロジェクトを実行しています。既にテキストを不正確な転写に揃えるために使用することができます。進捗状況を確認できます:

http://cmusphinx.sourceforge.net/?s=long+audio+alignment

+0

ありがとうございました!私は単純な文法(正確な文で構成)、wdnet(文法から)を構築し、次にユーザーの文からの結果を見て、単純な単語スポッティング実験を試みました。マッチしたトレーニングとテストのデータではうまくいきますが、私は陸線/モバイルデータをクリーン(マイク)データでトレーニングされたhmmと合わせようとするとあまりうまくやっていません。私はそれについてここで別の質問をしました:http://stackoverflow.com/questions/6871786/converting-from-one-mfcc-type-to-another-htk見てください..ありがとう! – Sriram