语音识别引擎识别器 [英] SpeechRecognitionEngine recognizers

查看:29
本文介绍了语音识别引擎识别器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚下载了fr-FR运行时语言包,以便可以通过我的程序识别法语语音。

但是,我的程序抛出错误

其他信息:找不到所需ID的识别器。

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-办公桌

编辑:这不是可能的副本,因为这不是没有安装识别器的问题,而是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)。

这篇关于语音识别引擎识别器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆