Android Studio: Sprache erkennen und auswerten?
Hallo!
In meiner App möchte ich, dass wenn ich etwas sage, das Gesagte ausgewertet wird. (Vergleichbar mit dem "Okay, Google")...jedoch möchte ich nicht erst auf einen Button klicken. Weiß jemand wie das geht? Geht das überhaupt?
Vielen Dank!
3 Antworten
Das geht ganz bestimmt, nur bin ich mir nicht ganz sicher, ob es empfehlenswert wäre, da du dabei ziemlich viel Ressourcen verschleuderst. Die App muss ja durchgehend aktiv Ton aufnehmen und auswerten.
Ein kurzes, einfaches Tutorial findet sich hier. Das Klickevent kann man durch jedwediges beliebige andere Event austauschen. Vielleicht schaust du dabei mal, ob du das Ganze auch in einen extra Thread verschieben kannst.
Dann hast du die Artikel nicht durchgelesen. Threads ermöglichen die parallele Ausführung von Code. Ich habe mir gedacht, dass deine App vielleicht noch etwas anderes macht, als nur auf den Sprachinput zu warten. Sollte dem nicht so sein, brauchst du doch keinen Thread.
Ich sehe gerade, ich habe in meiner Antwort oben vergessen, den Link zu posten:
https://stackoverflow.com/questions/11798337/how-to-voice-commands-into-an-android-application
Wenn du nicht unbedingt den Ton auswerten und durch jede Wortliste jagen willst, um nach einer Übereinstimmung zu suchen, dann schau einfach, welche Sprache für das System angegeben ist.
Klar gibt es sowas. Google zum Beispiel hat ein riesiges neuronales Netz aufgebaut und dauerhaft mit Fragen trainiert. Sprache zu Text und dann die Erkennung. Sprache zu Text ist an sich schon schwer genug, den Erkennungsschritt könntest du vereinfachen, indem du den Text per Google Übersetzer erkennen lässt und dann zurücklieferst. Ansonsten musst du dich mehr einlesen und sehr viel Arbeit reinstecken
Ja, das habe ich (glaube ich) auch schon gemacht...wie aber kann ich einen "Speech Recognition Listener" setzen, falls es sowas in der Art gibt?
Schau dir das mal an: https://stackoverflow.com/questions/30689606/android-app-integrated-with-ok-google
Danke für deine Antwort...aber die hilfreichen Links, die dort angegeben sind verstehe ich nicht :(
Die erste Antwort behandelt die Voice Actions API. Damit kannst du zu "OK Google" eigene Commands für deine App hinzufügen. D.h. deine App wird aufgerufen: https://www.youtube.com/watch?time_continue=45&v=PS1FbB5qWEI
Die zweite Antwort ist, glaube ich, mehr oder weniger das, was du machen möchtest.
Bei der zweiten Antwort steht am Schluss noch:
"To make it look more intelligent you can implement a background service and keeps listening to user's voice input. "
Das ist ja eigentlich das was ich will...Aber es wurde (glaube ich) nicht beschrieben, wie man das machen kann... :(
Erstmal Vielen Dank für Deine Antwort! :) Auch wenn es sicher viele Ressourcen verschwendet, ist das Ziel meiner App "mit der App zu kommunizieren" ohne das Gerät bedienen zu müssen.
"Vielleicht schaust du dabei mal, ob du das Ganze auch in einen extra Thread verschieben kannst."
Habe ich leider noch nie gemacht...meine Erfahrung ist leider noch nicht ganz so groß in Sachen Java...könntest du mir eventuell ein konkretes "Codebeispiel" geben? Nur wenn es nicht zu viel Aufwand ist ;)