Android Studio: Sprache erkennen und auswerten?

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.

Jul8910 
Fragesteller
 02.10.2017, 21:59

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 ;)

0
regex9  02.10.2017, 22:06
@Jul8910

Schau einfach mal in die Dokumentation von Java oder besser Java für Android. Dort werden Threads oder BackgroundWorker in eigenen Artikeln erklärt.

0
Jul8910 
Fragesteller
 02.10.2017, 22:24
@regex9

Ich habe schon einige Artikel über Threads gefunden. Das Problem ist dabei nur, dass ich nicht richtig weiß, wozu ich den Thread brauche...

0
regex9  02.10.2017, 22:27
@Jul8910

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.

0
Jul8910 
Fragesteller
 02.10.2017, 22:30
@regex9

Doch da hast du Recht...es sollen natürlich noch aqndere Sachen ablaufen. Aber nun stellt sich, denke ich erstmal die Frage, wie ich den Speech Recognizer "code". Kannst du mir da helfen? :)

0
Jul8910 
Fragesteller
 02.10.2017, 22:36
@regex9

Ich werde es mir morgen anschauen und mich dann nochmal melden...:)

0
Jul8910 
Fragesteller
 03.10.2017, 12:57
@Jul8910

Habe mir jetzt das "Tutorial" durchgelesen und die Anleitung befolgt...(jedoch noch nicht mit den Threads :) )...Nun meine Frage: wie kann ich das ändern, dass ich nicht auf den Button drücken muss...(oder geht das mit dem Thread?)

0
regex9  03.10.2017, 13:26
@Jul8910

Das habe ich in meiner obigen Antwort bereits geschrieben.

0
Jul8910 
Fragesteller
 03.10.2017, 13:31
@regex9

Meinst du das hier:

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.

..?

0

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.

Jul8910 
Fragesteller
 02.10.2017, 22:13

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?

0
EisteeZitrus  02.10.2017, 22:23

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

0
Jul8910 
Fragesteller
 02.10.2017, 22:17

Danke für deine Antwort...aber die hilfreichen Links, die dort angegeben sind verstehe ich nicht :(

0
Jul8910 
Fragesteller
 03.10.2017, 13:19
@tavkomann

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... :(

0
regex9  03.10.2017, 13:28
@Jul8910

Der Background Service ist ein Thread / Background Worker.

1