C#-SpeechRecognitionEngine识别器
作者:互联网
我刚刚下载了fr-FR运行时语言包,以便可以通过程序识别法语.
但是,我的程序抛出错误
Additional information: No recognizer of the required ID found.
在
SpeechRecognitionEngine recognizer =
new SpeechRecognitionEngine(new System.Globalization.CultureInfo("fr-FR"));
en-US和en-GB之所以有效,是因为它们已预先安装在我的系统中,我刚刚安装了这些新的语言包,但它们仍然抛出此异常.
另外,如果这有帮助,我什么时候做
foreach (var x in SpeechRecognitionEngine.InstalledRecognizers())
{
Console.Out.WriteLine(x.Name);
}
它打印
MS-1033-80-DESK
编辑:这不是可能的重复,因为这与没有安装识别器无关,这是关于C#SAPI没有看到我已经安装了当前语言的包
解决方法:
我能够使它正常工作…涉及一个额外的步骤.
由于您使用的是System.Speech,因此它使用Windows随附的已安装的桌面语音识别.您得到的错误不是因为您没有安装该语言,而是因为您没有安装该语言的语音识别器.
因此,转到设置>时间和语言>区域和语言(可能是您安装语言的来源).安装语言后,选择语言,然后单击“选项”.您应该会看到用于下载语言包,拼写检查的选项,以及我们感兴趣的语音选项.单击下载,然后等待下载/安装完成.
完成后,您将不会收到通知,但可以进入“设置”>时间和语言>语音并在那里查看已安装的识别器,也可以转到“设置>语音识别>高级语音选项可查看相同列表.
现在,当您运行程序时,它应该可以工作了.顺便说一句,如果您想在代码中查看已安装的语音识别器,请改用以下代码:
foreach (var x in SpeechRecognitionEngine.InstalledRecognizers())
{
Console.WriteLine(x.Culture.Name);
}
当您要求识别器名称时,您仅会得到一个代码,而您想要的是文化名称. (如您所见,MS-1033-80-DESK对应于en-US.作为参考,fr-FR为MS-1036-80-DESK).
标签:sapi,speech-recognition,c 来源: https://codeday.me/bug/20191119/2036988.html