SpeechRecognitionEngine识别器
我刚刚下载了fr-FR运行时语言包,以便通过我的程序识别法语语音。
但是,我的程序抛出了错误
附加信息:找不到所需ID的识别器。
在
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("fr-FR"));
en-US和en-GB之所以有效,是因为它们已经预先安装了我的系统,我只是安装了这些新的语言包,但它们仍然会抛出这个exception。
此外,如果这有帮助,当我这样做
foreach (var x in SpeechRecognitionEngine.InstalledRecognizers()) { Console.Out.WriteLine(x.Name); }
它打印
MS-1033至1080年,DESK
编辑:这不是一个可能的重复,因为这不是没有安装识别器,它是关于C#SAPI没有看到我有当前语言的已安装包
我能够让它工作……还有一个额外的步骤。
由于您使用的是System.Speech,因此它使用Windows附带的已安装桌面语音识别function。 您获得的错误不是因为您没有安装语言,而是因为您没有安装该语言的语音识别器。
因此,请转到设置>时间和语言>区域和语言(可能是您安装语言的地方)。 安装语言后,选择语言,然后单击“选项”。 您应该看到下载语言包,拼写检查以及我们感兴趣的语音选项 。 单击“下载”,然后等待下载/安装完成。
完成后,您将不会收到通知,但您可以进入设置>时间和语言>语音并在那里查看已安装的识别器,或者您可以转到设置>语音识别>高级语音选项以查看相同的列表。
现在,当你运行你的程序时,它应该工作。 顺便说一句,如果你想在代码中看到已安装的语音识别器,请改用:
foreach (var x in SpeechRecognitionEngine.InstalledRecognizers()) { Console.WriteLine(x.Culture.Name); }
在询问识别器名称时,您只需获取代码,您需要文化名称。 (如您所见, MS-1033-80-DESK
对应于en-US。作为参考,fr-FR是MS-1036-80-DESK
)。
您是否可以安装Microsoft Speech Platform法语语言包? 比如这里看到的? MS语音平台语言包
如果是这种情况,则它不会显示为您正在执行的操作的已安装语言。 为了使它工作,根据我的理解,您将需要为法语安装的语言包,如果您使用的是非法语版本的Windows,则仅适用于Windows Ultimate和Enterprise版本。
如果这是不可能的,那么您可能必须弄清楚如何使用Microsoft Speech Platform SDK与Windows / SAPI。 现在,您似乎正在尝试将Windows / SAPI与语音平台识别器配合使用。 这是MS页面,显示了MS语音平台与Windows / SAPI之间的区别
上述就是C#学习教程:SpeechRecognitionEngine识别器分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/943157.html