5

問題は、C# 言語で音声音声の音素を取得したいということです。「こんにちは、シャミムさん」という「x.wav」のような音声ファイルがあるとします。音声のすべての音素とそれらの相対的なタイミングを抽出したいと考えています。下の写真のようなもの:

音素エディタ

System.Speechライブラリ (recognitionと名前空間の両方)を使用しましsynthesisたが、必要なものが見つかりませんでした。今、誤解しないでください!「こんにちはシャミム」という文の音素は必要ありません。話す未知の音声入力と英語の文から音素を抽出したいのです。試してみSystem.Speech.Recognitionましたが、音素ではなく、音声ファイルから単語を抽出しようとします! ご想像のとおり、言葉は 30% 間違っています。;)

4

4 に答える 4

3

音素認識は、単語認識に比べて少し特殊な設定が必要であり、ほとんどのエンジンはそれを直接サポートしていません (モノフォニックな「単語」の辞書は、通常、高い精度にはなりません)。その大きな理由は、音素認識が単語認識よりもはるかに正確ではないことです。単語認識はより制限されているためです (実際の単語にマップされないすべての音素の組み合わせが除外されます)。しかし、HTK はそれをサポートしています。シェル コマンドを実行するか (C# から実行しても問題ありません)、ライブラリをピンボークすることで使用できます。

于 2013-12-25T20:49:23.827 に答える
1

pinvoke を使用してHidden Markov Model Tool Kitを c# コードにバインドするか、 Accord.net フレームワークを使用してみてください。これは管理され、HMM クラスがありますが、音素を抽出する具体的な方法はありません。

于 2013-12-25T11:29:55.270 に答える
1

これはバニラ .net 用ですか、それとも SAPI (Speech API) を使用できますか? 音声 API は素晴らしく、探しているものが含まれているようです。何よりも、Windows環境では、外部ライブラリよりも簡単に入手できます(アプリケーションに関係なくライセンスの問題があまりないことは言うまでもありません)。

System.Speech.Recognition.RecognizedWordUnitに気付きましたか? それはおおよそあなたが探しているもののようです。

于 2013-12-25T21:10:42.407 に答える