hallo,
ich wollte ein programm schreiben das auf Sprachbefhele reagieren kann und hab folgenes gefunden dazu gefunden:
private void StartListening()
{
SpeechRecognizer SR = new SpeechRecognizer();
// die Befehle registrieren
Choices Commands = new Choices();
Commands.Add("Stop");
Commands.Add("Los");
GrammarBuilder GB = new GrammarBuilder(Commands); // die Befehle mit einem GrammerBuilder laden
Grammar CommandGrammar = new Grammar(GB); // eine Grammatik über den GrammarBuilder erstellen
SR.LoadGrammar(CommandGrammar); // die Grammatik laden
SR.SpeechRecognized += CommandRecognized; // Funktion zur Behandlung des Ereignisses
SR.Enabled = true;
}
private void CommandRecognized(object sender, SpeechRecognizedEventArgs e)
{
string Command = e.Result.Text;
// hier weiterer Verarbeitungscode ...
}
das problem dabei is nur leider das die Windows interne Sprachsteuerung aufgerufen wird ... also dann geht dieses fenster davon auf und so ... das will ich natürlich nich, kennt jemand ne möglichkeit das fenster zu verstecken oder vieleicht ne ganz andere möglichkeit?
Hallo Cooder,
du verwendest die Klassen aus System.Speech?
Probiere es testweise mal mit einer SpeechRecognitionEngine - vielleicht unterdrückt deren Verwendung die Anzeige der Windows Erkennung.
ja das funktioniert theoretisch. das problem is nur das er so gerne mal etwas falsch versteht und so oft "quatsch" dabei herrauskommt
gibt es aber vieleicht eine möglichkeit das, ich nenne es mal verständnis, zu erhöhen?
Threads zusammengefügt
hi leute 😃
ich suche grad (bisher mit keinem erfolg) nach einer möglichkeit ein Systemtray ausblenden zu lassen. Und damit mein ich nich mein eigenes, sondern von einem anderen programm.
kurz zur erläuterung:
Ich will ein programm schreiben das auf Spracheingaben reagiert, das problem dabei is wenn man die passende .net funktionalität nutzt öffnet sich die Windows-Spracherkennung ... das is natürlich mehr als unschön deswegen will ich das die Form davon minimieren lassen und das Tray ausblenden.
hat jemand einen Lösungsvorschlag dafür?
Also ich arbeite mit Spracherkennung erfolgreich ohne dass sich die Spracherkennung öffnet, es nutzt eben die Dateien der Spracherkennung. Du kannst ja mal etwas Code posten, wo sich die Spracherkennung startet.
Ansonsten hier schauen:
pinvoke.net: Search Results for "itaskbarlist" in [All]
ITaskbarList interface
Damit sollte man auch irgendwie auf die Tray Icons zugreifen können.
UZI
also ohne an den trays und so rumzufummeln wär mir auch viel lieber ehrlich gesagt!
aber naja ich versuchs wie auf der seite Spracherkennung Part 2: Command Mode beschrieben
und bei der zeile
SpeechRecognizer SR = new SpeechRecognizer();
öffnet er ja schon die windowsspracherkennungs-sofware 😕
Hiermit sollte es funktionieren ohne das starten von der Windows-Spracherkennung:
System.Speech in .NET 3 zur Spracherkennung
Bei mir klappts, aber wozu setzt du die Spracherkennung denn ein? Nur für Befehle oder zum erkennen von ganzen Texten?
UZI
nur um befehle zu verabreiten.
ich werds mal versuchen wie es in deinem link beschrieben is versuchen, wenn ich zeit hab
wie sicher erkennt er denn die wörter so?
ich hab bisher die erfahrung gemacht das ganze sätze besser erkannt werden als einzelne wörter
Wie gesagt, es verwendet die Daten von der Windows Spracherkennung, d.h. wenn diese gut auf die Stimme konfiguriert ist, ist es das Programm auch. Da machen Sätze oder Wörter keinen Unterschied.
UZI
ahh ok, .. und kann diese konfiguration nur über die windowsspracherkennung direkt vorgenommen werden? oder kann man das auch selber irgent wie verbessern?
Bitte immer nur ein Thema pro Thread und nicht einfach alles fragen, was einem im Zusammenhang mit der Spracherkennung so einfällt. Ich habe die Erkennungsleistung mal in den Titel aufgenommen, aber eigentlich wäre das ein eigener Thread.
Alos ich habe mich mit dieser Frage noch nicht allzusehr miteinander ausgesetzt, aber soviel ich weiß ist das nicht/nur sehr schwer möglich. Da kann ich aber wie gesagt nicht Sicheres sagen.
Aber du könntest ja auch einfach das Lernprogramm der Windows-Sprachsteuerung zum Konfigurieren starten.
UZI