Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 语法的语言与语音识别器的语言不匹配_C#_Speech Recognition_Microsoft Speech Platform - Fatal编程技术网

C# 语法的语言与语音识别器的语言不匹配

C# 语法的语言与语音识别器的语言不匹配,c#,speech-recognition,microsoft-speech-platform,C#,Speech Recognition,Microsoft Speech Platform,你好!它是关于Microsoft Server Speech SDK v11.0(服务器版本)的 我已经在上运行了测试示例。 因此,英语短语——红色、蓝色——得到了广泛的认可。 但我也想识别俄语-安装Microsoft语音识别语言-TELE(ru-ru)并运行我的应用程序/ 代码: 那么,如何修复这个错误呢?我试图设置CultureInfo,但它不起作用。。。 谢谢大家! 看起来你需要 SpeechRecognitionEngine recognizer = new Speech

你好!它是关于Microsoft Server Speech SDK v11.0(服务器版本)的

我已经在上运行了测试示例。 因此,英语短语——红色、蓝色——得到了广泛的认可。 但我也想识别俄语-安装Microsoft语音识别语言-TELE(ru-ru)并运行我的应用程序/

代码:

那么,如何修复这个错误呢?我试图设置CultureInfo,但它不起作用。。。 谢谢大家!

看起来你需要

SpeechRecognitionEngine recognizer =
        new SpeechRecognitionEngine(
          new System.Globalization.CultureInfo("ru-RU")))

更改
GrammarBuilder.Culture
属性将解决此错误

之后:

GrammarBuilder gb = new GrammarBuilder();
加:


因此语法区域性与识别器匹配。

语法生成器区域性必须与语音识别器匹配。最简单的方法是将语法区域设置为与语音识别器相同,如下所示:

var sr = new SpeechRecognizer();
var gb = new GrammarBuilder();

// set the culture
gb.Culture = sr.RecognizerInfo.Culture;

这个答案是错误的。线程的文化是完全无关的,它可以是任何东西。您必须设置GrammarBuilder.Culture=myCulture和new SpeechRecognitionEngine(myCulture);那么例外就消失了。
GrammarBuilder gb = new GrammarBuilder();
gb.Culture = Thread.CurrentThread.CurrentCulture
var sr = new SpeechRecognizer();
var gb = new GrammarBuilder();

// set the culture
gb.Culture = sr.RecognizerInfo.Culture;