Странно, что моя программа может распознавать только китайский язык. Кстати, я в Китае.
Даже если я установлю английскую версию Visual C # 2010, она все равно сможет распознавать китайский язык.
Как изменить настройку языка?
private void InitializeRecognizerSynthesizer()
{
var selectedRecognizer = (from e in SpeechRecognitionEngine.InstalledRecognizers()
where e.Culture.Equals(Thread.CurrentThread.CurrentCulture)
select e).FirstOrDefault();
recognizer = new SpeechRecognitionEngine(selectedRecognizer);
recognizer.AudioStateChanged+=new EventHandler<AudioStateChangedEventArgs>(recognizer_AudioStateChanged);
recognizer.SpeechHypothesized += new EventHandler<SpeechHypothesizedEventArgs>(recognizer_SpeechHypothesized);
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
synthesizer = new SpeechSynthesizer();
}
Затем я меняю var selectedRecognizer = (с e в SpeechRecognitionEngine.InstalledRecognizers (), где e.Culture.Equals (Thread.CurrentThread.CurrentCulture) выберите e) .FirstOrDefault ();
в e.Culture.Equals ("en");
Но появляется исключение для распознавателя = new SpeechRecognitionEngine (selectedRecognizer); говоря, проверьте, является ли объект нулевым.
Я использую микрофон в качестве устройства ввода звука по умолчанию на панели управления.
Я пробовал этот простейший код в http://msdn.microsoft.com/en-us/library/ms554259.aspx прямо сейчас. Также возникает исключение, предупреждающее об отсутствии такого идентификатора языка и региональных параметров в предложении: SpeechRecognitionEngine распознаватель = new SpeechRecognitionEngine (new System.Globalization.CultureInfo ("en-US")))