.net 3.0 SpeechRecognition

Hi,

hat jdm von euch Erfahrung mit der SpeechRecognitionEngine ?

Ich nutze VS2005 mit C# und bin gerade dabei das auszuprobieren.
Funktioniert auch ganz gut.

Nur wenn ich die Spracheingabe bekomme kann man auch per Confidence Level die Näherung prüfen.

Nur ich bekomme jedes mal -1.

Wie stelle ich das an ?

hier ein bischen Code:


recognizer_engine = new SpeechRecognitionEngine(new System.Globalization.CultureInfo(„en“));

Grammar customGrammar = CreateCustomGrammar();

recognizer_engine.UnloadAllGrammars();
recognizer_engine.LoadGrammar(customGrammar);
recognizer_engine.SpeechRecognized += new EventHandler(recognizer_SpeechRecognized);
recognizer_engine.SpeechHypothesized += new EventHandler(recognizer_SpeechHypothesized);

Thread t1 = new Thread(delegate()
{
recognizer_engine.SetInputToDefaultAudioDevice();

});
t1.Start();
t1.Join();

recognizer_engine.RecognizeAsync(RecognizeMode.Multiple);

private Grammar CreateCustomGrammar()
{
GrammarBuilder grammarBuilder = new GrammarBuilder();
System.Globalization.CultureInfo info = new System.Globalization.CultureInfo(„en“);
grammarBuilder.Culture = info;
grammarBuilder.Append(new Choices(„test“, „start“, „end“));

return new Grammar(grammarBuilder);
}

private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
{
MessageBox.Show(e.Result.Text + " - " + e.Result.Confidence.ToString());
//immer -1 ?
}

danke im vorraus
Martin

Hi,

hat jdm von euch Erfahrung mit der SpeechRecognitionEngine ?

Ich nutze VS2005 mit C# und bin gerade dabei das
auszuprobieren.
Funktioniert auch ganz gut.

Nur wenn ich die Spracheingabe bekomme kann man auch per
Confidence Level die Näherung prüfen.

Nur ich bekomme jedes mal -1.

Wie stelle ich das an ?

hier ein bischen Code:

[…]

danke im vorraus
Martin

Hallo!
Kann es sein, dass Du bei diskreten Grammatiken keinen Confidence Level bekommst, sondern nur bei Dictation-Grammars?
Nur mal so als Schuss ins Blaue…

Martin

P.S.: Warum setzt Du eigentlich die Audioquelle in einem separaten Thread?

Danke schonmal,

Ganz ehrlich ?
Keine Ahnung.
Ich bekomme jedes mal eine Exception wenn ich es ohne seperaten Thread mache.
„Wert liegt außerhalb des erwarteten Bereichs“

Nach Recherche im Internet bin ich auf den Tipp, aber leider ohne Erklärung, gestoßen.
Ich nutze Windows XP und Angaben zu folge gibt es da auch ein paar Probleme. Diese Geschichte soll eher bei Vista funktionieren.
Naja viel habe ich über das Thema noch nicht herausfinden können.
Ich habe einfach mal herum probiert :smile:

Grüße
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke schonmal,

Hi,

hat jdm von euch Erfahrung mit der SpeechRecognitionEngine ?

Ich nutze VS2005 mit C# und bin gerade dabei das
auszuprobieren.
Funktioniert auch ganz gut.

Nur wenn ich die Spracheingabe bekomme kann man auch per
Confidence Level die Näherung prüfen.

Nur ich bekomme jedes mal -1.

Wie stelle ich das an ?

hier ein bischen Code:

[…]

danke im vorraus
Martin

Hallo!
Kann es sein, dass Du bei diskreten Grammatiken keinen
Confidence Level bekommst, sondern nur bei Dictation-Grammars?
Nur mal so als Schuss ins Blaue…

Martin

P.S.: Warum setzt Du eigentlich die Audioquelle in einem
separaten Thread?

Ganz ehrlich ?
Keine Ahnung.
Ich bekomme jedes mal eine Exception wenn ich es ohne
seperaten Thread mache.
„Wert liegt außerhalb des erwarteten Bereichs“

Nach Recherche im Internet bin ich auf den Tipp, aber leider
ohne Erklärung, gestoßen.
Ich nutze Windows XP und Angaben zu folge gibt es da auch ein

Aha. Ich dachte bisher immer, die Spracherkennung ließe sich überhaupt nur unter Vista nutzen und beim Versuch, eine RecognitionEngine unter XP zu instanziieren gäbe es eine „NotSupportedException“ (oder so).
Dann kann es natürlich schon sein, dass die SREngine, die Du verwendest (ist dann die bei Office 2003 enthaltene, oder?) grundsätzlich keine Confidence Levels liefert.
Bei der Vista Engine glaube ich schon mal einen ConfidenceLevel gesehen zu haben, aber meine Versuche waren damals eben ausschließlich mit einer DictationGrammar…

paar Probleme. Diese Geschichte soll eher bei Vista
funktionieren.
Naja viel habe ich über das Thema noch nicht herausfinden
können.
Ich habe einfach mal herum probiert :smile:

Grüße
Martin

Martin

P.S.: Warum setzt Du eigentlich die Audioquelle in einem
separaten Thread?

Ganz ehrlich ?
Keine Ahnung.
Ich bekomme jedes mal eine Exception wenn ich es ohne
seperaten Thread mache.
„Wert liegt außerhalb des erwarteten Bereichs“

Nach Recherche im Internet bin ich auf den Tipp, aber leider
ohne Erklärung, gestoßen.
Ich nutze Windows XP und Angaben zu folge gibt es da auch ein

Aha. Ich dachte bisher immer, die Spracherkennung ließe sich
überhaupt nur unter Vista nutzen und beim Versuch, eine
RecognitionEngine unter XP zu instanziieren gäbe es eine
„NotSupportedException“ (oder so).
Dann kann es natürlich schon sein, dass die SREngine, die Du
verwendest (ist dann die bei Office 2003 enthaltene, oder?)
grundsätzlich keine Confidence Levels liefert.
Bei der Vista Engine glaube ich schon mal einen
ConfidenceLevel gesehen zu haben, aber meine Versuche waren
damals eben ausschließlich mit einer DictationGrammar…

paar Probleme. Diese Geschichte soll eher bei Vista
funktionieren.
Naja viel habe ich über das Thema noch nicht herausfinden
können.
Ich habe einfach mal herum probiert :smile:

Grüße
Martin

Ja, sollte unter Office XP zu finden sein aber ich habe es mit seperat gedwonloaded.
Habe auch das komplette SAPI SDK 5.1 heruntergezogen.

Naja Sprachaufnahme ist eh nicht all zu wichtig.
Hauptsache die Ausgabe funktioniert.

mfg und schönen Tag noch …
Martin