ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#-SpeechRecognitionEngine识别器

2019-11-19 15:07:22  阅读:790  来源: 互联网

标签:sapi speech-recognition c


我刚刚下载了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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有