jarvis-03

Mein ganz persönlicher Jarvis

Von am 14.03.2017

Google, Apple’s Siri oder auch Amazon Echo bieten mobile Applikationen bzw. smarte Lautsprecher, sogenannten sprachgesteuerten Assistenten. Sie bieten in Verbindung mit unterschiedlichen Diensten viele Funktionen, die das Leben vereinfachen können. Diese Systeme können verwendet werden, um Musik abzuspielen, Wetter und News abzufragen, oder um sie mit einem Smart Home System zu verbinden.

jarvisscreen-02

Im Zuge meines Semesterprojekts für Mobile habe ich einen eigenen, ganz privaten Assistenten entwickelt und ihn Jarvis genannt. Dazu habe ich eine Android App entwickelt, die mittels Spracherkennung gesteuert wird.

Verwendet wird die von Android bereitgestellte SpeechRecognizer API, die Zugriff auf die Google Spracherkennung ermöglicht. Diese API ist nicht für die kontinuierliche Erkennung gedacht, da diese die eine erhebliche Menge an Batterie und Bandbreite verbrauchen würde.

In meinem Projekt wird das Programm jedoch rein durch Sprachsteuerung navigiert. Dadurch wird die Pocketsphinx Library benötigt. Diese ermöglicht, dass die App im Hintergrund kontinuierlich zuhört und durch ein spezielles Keyword erwacht und danach die darauffolgenden Anweisungen lauscht und ausführt. Die Library stellt eine Assets Datei zur Verfügung, die eine Liste mit sämtlichen englischen Wörtern und Begriffen enthält. In diesem Projekt wird die App mit dem Stichwort „Jarvis“ zum Zuhören gezwungen.

Ein AsynkTask ermöglicht hier in der doInBackground() Methode, dass dies ständig im Hintergrund überprüft wird.

pocketshinx

Diese Spracherkennung ermöglicht so die Kommunikation mit Jarvis. Durch Abfragen kann Jarvis auf verschiedenste Aussagen antworten oder Befehle ausführen. Außerdem wurde die Spotify API eingebunden. Wenn das Wort „Play“ und „Chainsmokers“ erkannt wird, wird im Hintergrund ein zufälliges Lied von den Chainsmokers abgespielt. Über „Stop Musik“ kann die Musik wieder gestoppt werden.

playsong

Mittels eines Bluetooth HC-05 Moduls kann die App auch mit einem Arduino Uno kommunizieren. An dem Arduino sind eine einfache LED und ein Thermistor angeschlossen. Zu Beginn muss das Smartphone mit dem Bluetooth Modul gekoppelt werden. Danach wird beim Starten der App automatisch eine Verbindung hergestellt. Um mit dem Arduino zu kommunizieren, wird über einen BluetoothSocket ein String geschickt. Wird Jarvis der Befehl „Turn the lights on“ übermittelt, wird ein String mit dem Wert „1“ an das Bluetooth Modul geschickt.

turnledon

Das Arduino Board liest über Serial.read() die Daten vom Bluetooth Modul aus und schaltet so zum Beispiel eine LED an oder aus. Über Serial.println(tempData) können Daten, wie zum Beispiel die Temperatur vom Thermistor über Bluetooth verschickt werden.

arduino

Jarvis_Steckplatine

The comments are closed.