Я пытаюсь написать программу, которая генерирует грамматику распознавания речи из файла и сохраняет фразы в словаре, где ключами являются фразы. Следующий код:
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)
И я понятия не имею, почему это происходит, потому что все сгенерированные фразы написаны на английском языке sh, а программа специально требует, чтобы SpeechRecognitionEngine
использовал RecognizerInfo
с культурой en-US (или Culture.TwoLetterISOLanguageName
из "en"
).
У меня MS-1033-80-DESK (en-US)
Microsoft Speech Recognizer 8.0 for Windows (English - US)
установлено.