0

現在、音声認識アプリケーションを開発しています。このために、ユーザーが名前などの特定の単語の文字を綴ることができるようにする必要があります。grammarbuilder を使用してアルファベットを選択肢として追加しようとしましたが、特定の 1 つの文字しか認識しません。

以下は私のコードです

    public static class GrammarManager{
            public static GrammarBuilder getAlphabet()
            {
                Settings.CultureInfo = "en-GB";

                GrammarBuilder dictaphoneGB = new GrammarBuilder();
                dictaphoneGB.Culture = new System.Globalization.CultureInfo(Settings.CultureInfo);
                dictaphoneGB.Append(new Choices("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"));

                return dictaphoneGB;
            }
    }

public class SpeechEngine{
        static System.Speech.Recognition.SpeechRecognitionEngine recognizer = null;
        private void initializeEmulator()
        {
            GrammarBuilder builder = new GrammarBuilder();
            builder.AppendDictation();

            recognizer = new System.Speech.Recognition.SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-GB"));
            recognizer.RequestRecognizerUpdate();
            recognizer.LoadGrammar(new Grammar(GrammarManager.getAlphabet()));
            recognizer.SpeechRecognized += recognizer_SpeechRecognized;
        }

        public void startEmulatorRecognition(string word)
        {
            recognizer.EmulateRecognizeAsync(word);
        }
}

特定の文字列パラメーターを開始して startEmulateRecognition() メソッドを呼び出しています。「A」、「G」、「B」などの値をその特定のメソッドに渡すと、認識されます。しかし、「AB C」や「ABC」、または「GOOGL E」などの単語を渡すと、認識されません。

「GOOGL E」などのスペルされている単語を認識できるようにするために、誰かがこれを達成する方法を提案していただければ幸いです。

前もって感謝します!

4

1 に答える 1

0

繰り返しシーケンスに一致する文法を構築するには、繰り返し用に別の GrammarBuilder とコンストラクターを使用する必要があります。

private void lettterGrammar() {
    GrammarBuilder letterGb = new GrammarBuilder();
    Choices letterChoices = new Choices("A", "B", "C", "D);
    GrammarBuilder speellingGb = new GrammarBuilder(
                 (GrammarBuilder)letterChoices, 1, 50);
    Grammar grammar = new Grammar(spellingGb);
}

詳細については、MSDN のドキュメントを参照してください

于 2013-06-13T16:38:11.893 に答える