1

Microsoft Speech Platform を使用して、画面に出力するときに音声を認識します。しかし、問題があります: たとえば、文法があります (GrammarBuilder と Choices による構造体 - "red"、"green"、"black")

「赤緑黒」と言うと、「赤」、おそらく「赤緑」しか得られませんが、「赤緑黒」は得られません。

いくつかのコード:

Thread.CurrentThread.CurrentCulture = new CultureInfo("ru-RU");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("ru-RU");

// Create a new SpeechRecognitionEngine instance.
_sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("ru-RU"));

_sre.SpeechHypothesized += _sre_SpeechHypothesized;
_sre.SpeechDetected += _sre_SpeechDetected;
//_sre.SetInputToWaveFile(@"c:\Test\Wavs\Wavs-converted\file.wav");
_sre.SetInputToDefaultAudioDevice();

public void LoadGrammarIntoEngine(IEnumerable<String> textColl)
{
    Choices choices = new Choices();
    GrammarBuilder gb = new GrammarBuilder();
    gb.Culture = new CultureInfo("ru-RU");


    if (choices != null && textColl != null)
    {
        choices.Add(textColl.ToArray());
        gb.Append(choices);
    }

}
public void Recognize() {
   if (_sre != null && _sre.Grammars.Count != 0) {                   
       _sre.RecognizeAsync(RecognizeMode.Multiple);                    
   }
}

では、この問題を解決するにはどうすればよいでしょうか。ルールのある SGRS 文法を作成する必要がありますか? 文法ファイルは、次のような単語を含む txt ファイルです。

Dictionary.txt

green
black
yellow
red
some other words
4

1 に答える 1

1

Repeat で Append メソッドを使用できます。

 gb.Append(choices, 1, 10);
于 2015-01-10T18:37:56.480 に答える