Spracherkennung/steuerung

alexknep01

Mitglied
Hallo, ich hab eine Frage zum Thema Spracherkennung. Ich würde gern ein Programm schreiben, dass per Sprachsteuerung etwas ausführt. Wenn ich z.B sage Internet öffnen (oder etwas ähnliches) soll sich mein browser öffnen und die startseite laden. Gibt es für sowas Tutorials wie man sowas programmiert?. Ich meine auch keine TTS, TextToSpeach, sonder eine Art Speech recognition. Ich will das ganze machen ohne irgendeine teure Engine oder so zu kaufen.
:-D
 

Tobse

Top Contributor
Dass du dem Computer einen Text vorgibst "internet öffnen", er dann die von dir gesagten Worte erkennt und richtig zuordnet, ist imho als Hobbyprojekt undenkbar. Bestehende Software wie Siri, Google Now und Cortana haben riesige Datenbanken mit Sprachsamples um das zu bewerkstelligen. Sich eine solche Datenbank anzuschaffen ist ein enormer aufwand und kostet wahrscheinlich eine riesen Haufen Kohle.

Was aber ggf. möglich ist:
Mithilfe eines Equalizers ( = FFT) kannst du schwache Umgebungsgeräusche filtern; somit bekommst du ein klareres Audio-Signal deiner Stimme (nützlich wenn z.B. der Nachbar grade bohrt, ein FLugzeug vorbei fliegt oder der Fernseher läuft).
Aus diesem Audiosignal kannst du dann eine Signatur rausrechnen. Wie das geht - keine Ahnung - aber dass es geht weiss ich, denn das konnte schon mein Simens ME-25.
Wenn du die Parameter für diese Signatur geschickt festlegst bekommst du für leicht andere Audiosignaturen der selben Lautfolge die selbe oder eine sehr ähnliche Signatur. Die kannst du dann gegen die bekannten Signaturen abgleichen und entsprechend Dinge ausführen. Google Now erkennt das "Okey, Google" ebenfalls über diese Technik.
 

alexknep01

Mitglied
Danke, ok schade, dass das nicht möglich ist. Aber ich hab eine andere Frage dazu. Kann man es nicht so machen, dass man einen Sound aufnimmt und java ihn mit dem sound des microfon abgleicht. Und wenn der SOund z.B zu 80 oder 90 % übereinstimmt oder ähnlichkeit auwweist dann einen befehl auszuführen? Geht das????
 

Tobse

Top Contributor
Danke, ok schade, dass das nicht möglich ist. Aber ich hab eine andere Frage dazu. Kann man es nicht so machen, dass man einen Sound aufnimmt und java ihn mit dem sound des microfon abgleicht. Und wenn der SOund z.B zu 80 oder 90 % übereinstimmt oder ähnlichkeit auwweist dann einen befehl auszuführen? Geht das????
Das ist genau das, was ich beschrieben habe. Die Audio-Rohdaten zu vergleichen wird dir aber nichts bringen; da brauchst du einiges an Mathematik um das Audiosignal auf etwas herunterzubrechen, was man sinnvoll und zuverlässig vergleichen kann.
 

Tobse

Top Contributor
Sich die Algorithmen selbst zu erarbeiten wird für einen normal-sterblichen nicht möglich sein. Aber im Netz sind mit sicherheit ein paar Algorithmen beschrieben, mit denen man so eine Audiosignatur berechnen kann. Die musst du dann nurnoch implementieren.

Für die FFT gibts mit sicherheit fertige libraries.
 

Sogomn

Bekanntes Mitglied
Du könntest es mit einem lernenden Programm versuchen. Also z.B. einem Backpropagation-Netz.
Funktioniert bei Dingen wie Gesichtserkennung. Lässt sich bestimmt auch in irgendeiner Weise auf Audio anwenden.
 

mrBrown

Super-Moderator
Mitarbeiter
Zumindest unter Unix dürfte es einige SpeechToText-Pakete geben, Macs haben zusätzlich auch noch was eigenes integriert. Bei Windows keine Ahnung, da dürfte es aber sicherlich auch was geben...
Dann bleibt nur noch die Anbindung an Java, der Aufwand dürfe aber im Vergleich zur Spracherkennung minimal sein...
 

windl

Bekanntes Mitglied
Hallo,

es ist sehr wohl möglich dies zu programmieren - auch mit sehr einfachen Bordmitteln (habe es bereits erfolgreich getan).
Trick hierbei ist es genau wie meine Vorredner geschrieben haben - sich den Akt der eigentlichen Spracherkennung zu entledigen.
Hierfür bietet Dir GOOGLE ein umfangreiches Paket an (https://cloud.google.com/speech/)
Einfach sein Projekt bei Google anmelden und den aufgenommenen Text an Google-Speech-Api senden und du erhälst in überschaubaren delays den gesprochenen Text als String zurück.
Jetzt kannst Du diesen Parsen und daraufhin deine Aktionen steuern. Einziger Nachteil - du musst immer Online sein.

Viel Erfolg damit
Uwe
 

Thallius

Top Contributor
Hallo,

es ist sehr wohl möglich dies zu programmieren - auch mit sehr einfachen Bordmitteln (habe es bereits erfolgreich getan).
Trick hierbei ist es genau wie meine Vorredner geschrieben haben - sich den Akt der eigentlichen Spracherkennung zu entledigen.
Hierfür bietet Dir GOOGLE ein umfangreiches Paket an (https://cloud.google.com/speech/)
Einfach sein Projekt bei Google anmelden und den aufgenommenen Text an Google-Speech-Api senden und du erhälst in überschaubaren delays den gesprochenen Text als String zurück.
Jetzt kannst Du diesen Parsen und daraufhin deine Aktionen steuern. Einziger Nachteil - du musst immer Online sein.

Viel Erfolg damit
Uwe

Zweiter Nachteil: Google weiß genau was Du machst und was Dich interessiert. Noch besser gehts kaum für die.
 

Ähnliche Java Themen

Neue Themen


Oben