C# 如何为SpeechRecognitor创建自定义词典?

C# 如何为SpeechRecognitor创建自定义词典?,c#,speech-recognition,C#,Speech Recognition,我用下面的代码创建了一个语音识别器,但我只想让它识别3个东西,即驾驶执照、邮政编码和格式中的日期 M1234-56789-01234 L9B 2X5 yyyy/mm/dd 我不在乎这些字符“/”、“-”。(如中所示,它们不应包含在识别器识别的文本中) 我只关心字母和数字 我创建了一个只有数字和字母的语法,但是当说话时,识别器会创建像“TO”或“THERE”这样的单词。有没有办法限制只识别单个字母和数字 SpeechRecognizer sr = new SpeechRecogn

我用下面的代码创建了一个语音识别器,但我只想让它识别3个东西,即驾驶执照、邮政编码和格式中的日期

M1234-56789-01234
L9B 2X5
yyyy/mm/dd
我不在乎这些字符“/”、“-”。(如中所示,它们不应包含在识别器识别的文本中)

我只关心字母和数字

我创建了一个只有数字和字母的语法,但是当说话时,识别器会创建像“TO”或“THERE”这样的单词。有没有办法限制只识别单个字母和数字

        SpeechRecognizer sr = new SpeechRecognizer();

        Choices chars = new Choices();
        chars.Add(new string[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "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" });

        GrammarBuilder gb = new GrammarBuilder();
        gb.Append(chars);

        // Create the Grammar instance.
        Grammar g = new Grammar(gb);

        sr.LoadGrammar(g);

        sr.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sr_SpeechRecognized);
SpeechRecognizer sr=新的SpeechRecognizer();
选项字符=新选项();
字符添加(新字符串[]{“0”、“1”、“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“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”);
GrammarBuilder gb=新的GrammarBuilder();
gb.附加(字符);
//创建语法实例。
语法g=新语法(gb);
高级语法主任(g);
sr.speechrecogned+=新事件处理程序(sr_speechrecogned);

您的识别器是否将短语
识别为2012/02/12
作为
['to','2','0','1','2','0','2','1','2']
。所以我想知道是否有一种方法可以提供一个自定义词典,这样它就只能输出那些单词(单个字母和数字)。语法是限制语音识别引擎识别的方式。我不明白为什么它会返回“语法错误”的项目。ASR是表示这些内容不符合语法,还是认为它具有有效的识别?你有没有试过拼写语法中的数字(“零”、“一”、“二”…)?