5

System.Speech.Recognition正常に動作するからの簡単なコードがいくつかあります。

using (var recognizer = new SpeechRecognitionEngine(new CultureInfo("en-US")))
{
    recognizer.LoadGrammar(new DictationGrammar());
    recognizer.SpeechRecognized += recognizer_SpeechRecognized;
    recognizer.SetInputToDefaultAudioDevice();
    recognizer.RecognizeAsync(RecognizeMode.Multiple);
}

private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
    textBox1.Text = "Recognized text: " + e.Result.Text;
}

Windows 7を使用している場合、でスピーチトレーニングを行い"Control Panel" -> "Speech Recognition" -> "Train your computer to better understand you"ます。

私のプログラムは、行われたトレーニングを自動的に利用しますか?トレーニングのメリットは、ユーザーまたはマシンに基づいていますか?これらのスピーチの「プロファイル」は(簡単に)移動できますか?

4

3 に答える 3

2

はい、トレーニング(特にディクテーション)は役に立ちます。トレーニングにより、精度が20〜50%向上します。(これは、ユーザーがアクセントを持っている場合に特に当てはまります。)

トレーニングのメリットはユーザーごとです。

マイクロソフトには音声プロファイルをコピーするツールがありますが、それは古いバージョンのSRエンジン(XP時代)用に構築されており、私が知る限り、マイクロソフトの誰もそれを更新したり、新しいSRエンジンで保証したりするつもりはありません。試してみたい場合は、「SpeechProfileManager」のBingを押すとすぐにポップアップ表示されます。

于 2013-04-02T00:33:21.303 に答える
1

はい、トレーニングする必要はないかもしれませんが、トレーニングは可能であるようです:このサイトこのサイト

于 2013-03-06T22:07:22.387 に答える
0

ディクテーション文法を使用している場合は、トレーニングが役立つと思います。より限定されたアプリケーション文法を使用している場合、トレーニングの価値は低くなります。

Windowsクライアント音声認識API(System.Speech)とサーバー音声認識API(Microsoft.speech)の主な違いの1つは、サーバーAPIがマルチユーザーを対象としており、トレーニングできないことです(音声について考えてください)。自動電話システムでは、すべての発信者に対してトレーニングすることはできません)。このSOの質問は、興味がある場合に役立つことがあります-System.Speech.RecognitionとMicrosoft.Speech.Recognitionの違いは何ですか?

于 2013-03-07T18:51:46.977 に答える