Laden...

Spracherkennung in eigenem Programm nutzen, ohne dass Systemfenster erscheinen / Erkennung erhören

Erstellt von Coooder vor 12 Jahren Letzter Beitrag vor 12 Jahren 6.424 Views
C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren
Spracherkennung in eigenem Programm nutzen, ohne dass Systemfenster erscheinen / Erkennung erhören

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?

5.742 Beiträge seit 2007
vor 12 Jahren

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.

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren

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?

Hinweis von herbivore vor 12 Jahren

Threads zusammengefügt

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren
fremde System Trays verstecken

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?

U
189 Beiträge seit 2011
vor 12 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren

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 😕

U
189 Beiträge seit 2011
vor 12 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren

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

U
189 Beiträge seit 2011
vor 12 Jahren

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

C
Coooder Themenstarter:in
180 Beiträge seit 2011
vor 12 Jahren

ahh ok, .. und kann diese konfiguration nur über die windowsspracherkennung direkt vorgenommen werden? oder kann man das auch selber irgent wie verbessern?

Hinweis von herbivore vor 12 Jahren

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.

U
189 Beiträge seit 2011
vor 12 Jahren

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