Sprachsteuerung

  • Hallo zusammen!

    Ich habe ein paar Fragen. Ich plane ein Skript zu schreiben, dass auf das Mikrofon zugreift und festellt, ob die Audiosignale mit denen aus bestimmten Dateien gänzlich oder teilweise übereinstimmen. Falls ja, soll das Skript benutzerdefinierte Ereignisse auslösen. Meine Fragen sind jetzt:
    1.Ist das überhaupt mit AutoIt möglich?
    2.Wenn ja, wie mache ich das?

    Danke schonmal im Vorraus!

  • Ich hatte so etwas einmal zur Steuerung des Windows MCE umgesetzt. Allerdings rein mit Autoit wird das nicht.

    Kann dir aber mal kurz erklären wie ich es gemacht hatte. Vorraussetzung ist allerdings die Windows Spracherkennung. Ich habe ein Script geschrieben das Parameter entgegennimmt und entsprechend den übergebene Werten dann eine Aktion ausführt. Dann habe ich mit dem Tool "Windows Speech Recognition Macros" einen bestimmten Sprachbefehl an die Option "Run a Programm" gekopellt und über diese Option dann das Script+entsprechdenem Parameterwert aufgerufen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hallo Malacath,

    herzlich willkommen im Forum und viel Erfolf bei deinem Projekt.

    Hier kannst du dir die Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    Das obige sind allgemeine Links zu den Grundlagen, jetzt zu deinen Fragen:

    mfg (Auto)Bert

  • Schade. Dann muss ich doch mit anderen Sprachen ran. Mit Windows Speech Recognition Macros wird das nichts, da ich noch XP-Nutzer bin. Anfänger bin ich nicht gerade. Ich arbeite gerade zusätztlich mit einem Freund an einem Spiel, aber der ist gerade in Spanien. Da muss ich mich anderweitig beschäftigen. Trotzdem Danke für die Hinweise.

  • Es gibt doch ein Open Source Spracherkennungsprogramm (< oO) namens "Simon". Das greift per TCP/IP auf einen Server zu der die Julius-Engine installiert hat.
    Mit Autoit ist es möglich etwas aufzunehmen.
    Mit Autoit ist es möglich etwas per TCP/IP zu senden.
    D.h. es ist grundsätzlich möglich!
    Wenn du es geschafft hast oder Probleme hast, immer schön Scripte posten ;)
    (Hatte auch mal daran gedacht, jedoch ist es mir zu langwidrig geworden, jedoch wollte ich das noch mit einem Chatbot verbinden, welcher mit mir dann Spricht) (Nein, ich bin kein Keller-Kid das keine Freunde hat ;) )

  • "Simon" ist doch nur unter Linux verfügbar.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Das muss ja garnicht alles so kompliziert sein. Ich hatte mir das ganze eher so vorgestellt:

    1.->Das Skript ruft Audiodaten vom Mikro ab.
    2.->Das Skript ließt Audidaten aus einer .wav-Datei und vergleicht diese mit denen vom Mikro.
    3.->Das Skript ermittelt einen Prozentwert der Ähnlichkeit der beiden Daten.
    4.->Sobald der Prozentwert über einem Schwellwert liegt, ruft das Skript eine mit der bestimmten Sounddatei verknüpfte Aktion auf.

    Es wäre natürlich schön, wenn das Skript gesprochene Texte zurückgeben könnte, aber das hatte ich eigentlich garnicht geplant. Vieleicht funktioniert meine Vorstellung ja auch nicht. Dann müsste ich doch irgendwie mit SAPI oder etwas vergleichbarem arbeiten.

  • Zitat

    3.->Das Skript ermittelt einen Prozentwert der Ähnlichkeit der beiden Daten.

    Darin liegt deas "sprachenunabhängige" Problem! Zwei Dateien miteinander zu vergleichen ist die eine Sache, zwei Audiodateien zu vergleichen eine andere. Im WAV-Format kommt man sehr einfach an die rohen Audio-Daten, irgendwo hier im Forum schwirren Scripte von Wellengeneratoren u.ä. herum, die das Prinzip verdeutlichen.
    Ich würde für den Anfang jeweils 10x ein Wort aufnehmen, "Marmeladenglas", "Wellensittich", "Matsch", "Tasche", "Flasche" und die Wellen bzw Frequenzen (Verläufe) analysieren, und die "Problemlaute" finden. Wenn man in der Lage ist, einzelne Laute sicher zu trennen, dann ist der "Vergleich" relativ simpel