簡體   English   中英

語音識別語法的 InvalidOperationException

[英]InvalidOperationException for Speech Recognition Grammar

我正在嘗試編寫一個程序,該程序從文件生成語音識別語法並將短語存儲在字典中,其中鍵是短語。 以下代碼:

sre.LoadGrammarAsync(new Grammar(new GrammarBuilder(new Choices(commands.Keys.ToArray()))));

拋出此異常:

System.InvalidOperationException: The language for the grammar does not match the language of the speech recognizer.
   vid System.Speech.Recognition.RecognizerBase.ThrowIfSapiErrorCode(SAPIErrorCodes errorCode)
   vid System.Speech.Recognition.RecognizerBase.LoadSapiGrammarFromCfg(SapiGrammar sapiGrammar, Grammar grammar, Uri baseUri, Boolean enabled, Single weight, Int32 priority)
   vid System.Speech.Recognition.RecognizerBase.LoadSapiGrammar(Grammar grammar, SapiGrammar sapiGrammar, Boolean enabled, Single weight, Int32 priority)
   vid System.Speech.Recognition.RecognizerBase.LoadGrammarAsyncCallback(Object grammarObject)

而且我不知道為什么會發生這種情況,因為所有生成的短語都是英文的,並且該程序特別要求SpeechRecognitionEngine使用具有en-US文化的RecognizerInfo (或Culture.TwoLetterISOLanguageName"en" )。

我安裝了MS-1033-80-DESK (en-US) Microsoft Speech Recognizer 8.0 for Windows (English - US)

我只需要指定我的語法文化 這是工作代碼:

sre.LoadGrammarAsync(new Grammar(
    new GrammarBuilder(new Choices(commands.Keys.ToArray())) {
        Culture = new System.Globalization.CultureInfo(Settings.CompatibleCultureInfo)
    }
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM