更改语音识别引擎库的语言

6

我正在编写一个用C#语言的程序,可以通过声音命令来让电脑执行操作。例如,当用户说出“开始菜单”时,电脑会打开开始菜单。

我发现了一个很棒的库:SpeechRecognitionEngine,用于语音识别。问题是,我也需要能够识别西班牙语,有没有办法更改语音识别的语言?

1个回答

10
你可以使用SpeechRecognitionEngine(CultureInfo)重载方法。
var speechRec = new SpeechRecognitionEngine(new CultureInfo("es-ES")));

这假定用户已安装西班牙文化环境,否则将引发一个 ArgumentException 异常。 SpeechRecognitionEngine 类实现了 IDisposable 接口,因此建议在完成后调用 speechRec.Dispose() 或在 using 语句中使用它。


"Spanish culture"是什么意思?你是指Windows系统使用了西班牙语吗? - Fernando Santiago
是的,用户需要安装西班牙语语音识别器。如果您在西班牙购买Windows PC,则我猜这是标准安装的,但我在我的PC(位于英国)上没有安装西班牙语语音识别器,因此如果我运行那段代码,我会收到异常。我认为Windows 7 Ultimate用户可以下载其他语言包。如果您未指定区域设置,则将使用用户机器上安装的默认区域设置。 - keyboardP
哦,我明白了,谢谢你!顺便问一下,在C#中有没有其他识别语音的方法? - Fernando Santiago
没问题。还有其他第三方库可用,但是 SpeechRecognitionEngine 是来自微软的,我认为它实际上非常好用。我正在我的当前项目中使用它。你可以使用 System.Speech 或者 Microsoft.Speech(https://dev59.com/hXA85IYBdhLWcg3wBO3h)。两者都有优缺点。 - keyboardP
如果你的Windows 10(或更高版本)是英文的,你可以通过输入“向此设备添加语言”的方式添加更多语言。在下载新语言时,请确保勾选“语音”选项以下载语音识别器。 - Ji_in_coding

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接