Ein kurzes Bsp zur Spracherkennung,
wenn ich mehr zeit habe, werde ich vlt ein umfangreiches Beispiel einstellen, wie man Grammatiken im Code schreibt, komplexere Konstrukte bildest,...
Aber als kleiner Einblick, dürfte dieses Beispiel recht nützlich sein
private SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
//--------Beim laden aufrufen----------
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
Grammar grammar = new Grammar("grammar.xml", "Befehle");
recognizer.UnloadAllGrammars();
recognizer.LoadGrammar(grammar);
//--------------------------------------
private void btnListen_Click(object sender, EventArgs e) {
recognizer.SetInputToDefaultAudioDevice();
recognizer.RecognizeAsync(RecognizeMode.Multiple);
}
private void btnStop_Click(object sender, EventArgs e) {
recognizer.RecognizeAsyncCancel();
}
[DllImport("user32.dll")]
public static extern void LockWorkStation();
private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) {
if (e.Result.Text == "Schließen") {
recognizer.Dispose();
this.Close();
} else if (e.Result.Text == "Sperren") {
LockWorkStation();
}
}
-----------------XML-Datei-------------------
<grammar xmlns="http://www.w3.org/2001/06/grammar"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3.org/2001/06/grammar
http://www.w3.org/TR/speech-grammar/grammar.xsd"
xml:lang="de-DE" version="1.0">
<rule id="Befehle" scope="public">
<one-of>
<item>Schließen</item>
<item>Sperren</item>
</one-of>
</rule>
</grammar>
10 Kommentare zum Snippet