我的语音识别有问题。它可以在“英文”窗口上正常工作。它也适用于一些“外国”窗口。但只有一些。
我得到了那个例外:语法的语言与语音识别器的语言不匹配
我将自己的单词添加到字典中。
我该如何解决?
我的语音识别有问题。它可以在“英文”窗口上正常工作。它也适用于一些“外国”窗口。但只有一些。
我得到了那个例外:语法的语言与语音识别器的语言不匹配
我将自己的单词添加到字典中。
我该如何解决?
我在朋友的电脑上遇到了同样的问题。所以我做了这个(它只是代码的一部分,因为所有的代码都很长):
...
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 支持 2 个“en”或“eng”实例。不知道为什么。所以代码选择第一个。我在互联网上找到了一些代码,其中一些是我制作的。
SpeachRecognition.SpeechRecognized += SpeachRecognition_SpeechRecognized;
当一切都被识别时,它会制造一个事件。只需输入:
语音识别.语音识别 +=
并按 TAB 按钮(至少在 VS 2013 中)几次。然后在代码的底部,它将生成如下内容:
void SpeachRecognition_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
//then will be some line that you need to replace with your code
}
我希望这将有所帮助。:)
不确定您使用的是哪个版本的 .net,但我会尝试回答。
在您的英文 Windows 版本上,请导航到 C:\Program Files\Reference Assemblies\Microsoft\Framework[YOUR .NET VERSION]
你应该找到 System.Speech.dll,
确保将此 .dll 带到您的外国计算机上,一切都应该运行顺利。