Ich hatte das gleiche Problem auf meinem Computer Freunde. Also habe ich das gemacht (es ist nur ein Teil des Codes, weil der Code wirklich lang ist):
...
RecognizerInfo recognizerInfo = null;
foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
{
if ((ri.Culture.TwoLetterISOLanguageName.Equals("en")) && (recognizerInfo == null))
{
recognizerInfo = ri;
break;
}
}
SpeechRecognitionEngine SpeachRecognition = new SpeechRecognitionEngine(recognizerInfo);
GrammarBuilder gb = new GrammarBuilder(startLiserninFraze);
gb.Culture = recognizerInfo.Culture;
grammar = new Grammar(gb);
SpeachRecognition.RequestRecognizerUpdate();
SpeachRecognition.LoadGrammar(grammar);
SpeachRecognition.SpeechRecognized += SpeachRecognition_SpeechRecognized;
SpeachRecognition.SetInputToDefaultAudioDevice();
SpeachRecognition.RecognizeAsync(RecognizeMode.Multiple);
...
Das sollte also funktionieren. Mein Freund PC unterstützt 2 Instanzen von "en" oder in "eng". Nicht sicher warum. Also wählt der Code den ersten aus. Ich habe ein paar Code-Stücke im Internet gefunden und einiges davon wurde von mir gemacht.
SpeachRecognition.SpeechRecognized += SpeachRecognition_SpeechRecognized;
wird gemacht, um ein Ereignis zu machen, wenn alles erkannt wird. nur Typ:
SpeachRecognition.SpeechRecognized + =
und die Presse TAB-Taste (atleast in VS 2013) einige Male. und dann in der Unterseite des Codes wird es so etwas wie folgt erzeugen:
void SpeachRecognition_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
//then will be some line that you need to replace with your code
}
Ich hoffe, das wird helfen. :)
Beeindruckende Ausnahme. Sie versuchen, Ihren chinesischen Benutzer Englisch sprechen zu lassen? –
@HansPassant Polnische Leute können Englisch sprechen, aber sie benutzen polnische Fenster. Dies ist ein Beispiel. – Hooch
Können Sie Code (und Grammatikfragmente) anzeigen? Abhängig davon, wie Sie Ihre Grammatik schreiben, kann dies ein erwarteter Fehler sein. –