0

音声認識に問題があります。「英語」のウィンドウで問題なく動作します。一部の「外部」ウィンドウでも機能します。しかし、ほんの一部です。

その例外が発生しています: 文法の言語が音声認識エンジンの言語と一致しません

自分の言葉を辞書に追加しました。

どうすれば修正できますか?

4

2 に答える 2

-1

友達のコンピューターでも同じ問題が発生しました。だから私はこれを作りました(すべてのコードが本当に長いので、これはコードの一部です):

...
RecognizerInfo recognizerInfo = null;

foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
{
   if ((ri.Culture.TwoLetterISOLanguageName.Equals("en")) && (recognizerInfo == null))
   {
      recognizerInfo = ri;
      break;
   }

}

SpeechRecognitionEngine SpeachRecognition = new SpeechRecognitionEngine(recognizerInfo);

GrammarBuilder gb = new GrammarBuilder(startLiserninFraze);
gb.Culture = recognizerInfo.Culture;
grammar = new Grammar(gb);
SpeachRecognition.RequestRecognizerUpdate();
SpeachRecognition.LoadGrammar(grammar);
SpeachRecognition.SpeechRecognized += SpeachRecognition_SpeechRecognized;
SpeachRecognition.SetInputToDefaultAudioDevice();
SpeachRecognition.RecognizeAsync(RecognizeMode.Multiple);
...

したがって、これは機能するはずです。私の友人の PC は、「en」または「eng」の 2 つのインスタンスをサポートしていました。理由がわからない。したがって、コードは最初のものを選択します。インターネットでいくつかのコードを見つけましたが、その一部は私が作成したものです。

 SpeachRecognition.SpeechRecognized += SpeachRecognition_SpeechRecognized;

すべてが認識されたときにイベントを作成するように作られています。次のように入力します。

SpeechRecognition.SpeechRecognized +=

TABボタンを(少なくともVS 2013では)数回押します。コードの最後に、次のようなものが生成されます。

void SpeachRecognition_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
   {
       //then will be some line that you need to replace with your code
   }

これが役立つことを願っています。:)

于 2014-08-15T17:23:12.130 に答える