Sprachsteuerung auf dem Raspberry Pi mit Jarvis – Teil 1 Installation

Jarvis ist ein Projekt, mit dem eine Sprachsteuerung auf dem Raspberry Pi möglich ist. Die Projektwebseite ist derzeit leider nur auf französisch verfügbar. Hier zeige ich auf deutsch, wie Jarvis installiert und konfiguriert wird.

Voraussetzung für die Sprachsteuerung sind neben dem Raspberry Pi, ein Mikrofon, Lautsprecher und optional eine USB Soundkarte. Auf dieser Seite steht meine verwendete Soundkarte, Mikrofon und Lautsprecher: Produkte / Hardwareübersicht.

Hier zeige ich, wie eine USB Soundkarte installiert und konfiguriert wird. An die USB Soundkarte kann ein normales 3,5 mm Klinken Mikrofon und Lautsprecher angeschlossen werden. Die Soundkarte muss jedoch nicht als Standard definiert werden, weiter unten im Assistenten kann die Soundkarte für Jarvis ausgewählt werden.

1. Freier Speicherplatz überprüfen

Vor der Installation sollte überprüft werden ob das Dateisystem erweitert werden muss. Bei älteren Raspbian Installationen kann es vorkommen, dass nicht der komplette Speicherplatz der SD-Karte verwendet wird. Hier wird gezeigt, wie man den Speicherplatz der SD-Karte ermitteln kann: Raspberry Pi: Speicherplatz der SD Karte ermitteln. Wenn nicht der komplette Speicherplatz verfügbar ist kann das Dateisystem über

sudo raspi-config

Advanced Options –> Expand Filesystem

erweitert werden.

2. Jarvis herunterladen / klonen

Jarvis kann über den folgenden Befehl heruntergeladen werden:

git clone https://github.com/alexylem/jarvis.git

3. Jarvis installieren

Nach dem download kann diese Schritt für Schritt Installation ausgeführt werden:

In das Jarvis-Verzeichnis wechseln:

cd jarvis

Installation starten:

./jarvis.sh

Evtl. kommt die folgende Meldung, welche mit „y“ beantwortet werden muss:

Notice: you can use 'jarvis' instead of './jarvis.sh'
You must install missing dependencies before going further
jq: Not found
sox: Not found
libsox-fmt-mp3: Not found
Attempt to automatically install the above packages? [Y/n] y

Der Installationsassistent startet:

Im folgenden wird jeder Schritt mit einem Screenshot gezeigt. Bei der Auswahl der Schnittstellen und Engines zur Übersetzung der Sprache wurden die Standardeinstellungen beibehalten. Später kann jede Einstellung über die Konfiguration geändert werden.

Die Audiokonfiguration beginnt. Lautsprecher und Mikrofon werden eingestellt und kalibriert:

Wenn etwas gehört wird, dann können die nächsten 5 Bilder übersprungen werden.

Wenn nichts gehört wurde, muss die richtige Soundkarte ausgewählt werden:

Sound-Karte für die Lautsprecher auswählen:

Hier geht es weiter, wenn etwas gehört wurde:

Wenn noch kein Mikrofon gefunden werden kann, muss es ausgewählt werden. Wenn ein Mikrofon von dem Installationsassistenten gefunden wurde entfallen die nächsten 3 Bilder.

Hier geht es weiter, wenn ein Mikrofon gefunden wurde:

Evtl. kommt es vor, dass die Audioeingabe zu leise oder zu laut ist. Dann erscheint das folgende Fenster:

Wenn das obere Fenster erscheint muss die Eingabe angepasst werden, ansonsten können die nächsten 4 Bilder übersprungen werden.

Hier geht es weiter wenn die Audioeingabe angepasst wurde, oder dies nicht nötig war:

Die Audiokonfiguration ist abgeschlossen. Jetzt kommen die Schnittstellen / Engines:

Das Aktivierungswort wird vorerst auf dem Standardwort belassen:

Jetzt kann die Spracherkennungsengine ausgewählt werden. Getestet habe ich die offline Spracherkennung von snowboy sowie die online Spracherkennung von bing (Microsoft).

Die nächsten 2 Bilder sind für die online Spracherkennung von bing, die Einrichtung und Konfiguration der offline Spracherkennung von snowboy gibt es hier: http://schmidt-feldberg.de/sprachsteuerung-auf-dem-raspberry-pi-mit-jarvis-teil-3-offline-spracherkennung/

Einen kostenlosen Bing-API-Key für die Umsetzung von der Sprache in Text kann hier geholt werden: https://azure.microsoft.com/de-de/try/cognitive-services/?api=speech-api

Der Key wird hier eingegeben:

Hinweis: Dieser Schritt kann einige Zeit benötigen.

Die Installation ist beendet.

Weitere Beiträge zu dem Projekt Sprachsteuerung mit Jarvis:
Teil 1 – Installation
Teil 2 – Start und Konfiguration
Teil 3 – offline Spracherkennung
Erweiterungen:
Raspberry Pi – Shell Script zum steuern der GPIOs
Jarvis automatisch starten
Raspberry Pi – Sprachausgabe von Textdateien / Vorlesefunktion


33 Kommentare

MadM4x · 20. Mai 2018 um 12:38

Hallo,

erstmal Vielen Dank für die doch ausführliche Anleitung.

Da ich seit kurzem auch wieder mit dem Gedanken spiele mir eine Sprachsteuerung zu zulegen,
wollte ich dich mal Fragen, ob du mit der Wahl deines Mikrofons zufrieden bist?

Für mich ist das mit dem Mikrofon immer noch ein Faktor der mich irgendwie abschreckt 🙁
Denn ich denke das die Grundfunktion einer solchen Sprachsteuerung eben auch von der Qualität des Mikros abhängt 😉

Mit freundlichen Grüßen

Max

    CS · 20. Mai 2018 um 22:00

    Hallo Max,

    danke für Dein Interesse an dem Projekt.
    Derzeit benutze ich das Mikro und Jarvis noch in der Testphase. Dazu liegt der Raspberry und das Mikrofon auf dem Schreibtisch und ich sitze unmittelbar davor. Hierbei ist das Mikro mehr als ok. Die Qualität ist gut.
    Wie es aussieht wenn das Mikrofon weiter weg ist bzw. wenn der Raspberry und Mikro in einem Gehäuse verbaut ist kann ich noch nicht sagen.

    Aber für den günstigen Preis des Mikros kannst Du glaube ich nicht viel falsch machen.

    Gruß Christian

Manfred v.Raven · 24. Juli 2018 um 16:06

Guten Tag Christian,
herzlichen Glückwunsch zu deiner guten, schrittweisen Beschreibung.
Damit ist es mir gelungen auf meinem Raspberry 3B Jarvis zu installieren bis zum 3. Schritt der
Spracherkennung mit snowboy.
Anwendung soll das ganze evtl. mal finden zur Steuerung meiner „Modelleisenbahn im Koffer“.
Die Weichen und den Start u. Stopp der Lok’s per Sprachbefehl zu kontrollieren ist das Ziel.
Die Anlage wird im neuen MagPi-Heft 4 beschrieben.
Gruß aus Franken.
Manfred
24.07.2018

CS · 25. Juli 2018 um 6:34

Hallo Manfred,

danke für die netten Worte. Dein Projekt klingt ja interessant, das Heft schaue ich mir bei Gelegenheit an.
Was klappt denn mit snowboy nicht?

Gruß Christian

    Manfred v.Raven · 25. Juli 2018 um 17:12

    Hallo Christian,
    es muss heißen, bis einschließlich snoboy zu installieren, Deutsche Sprache, schwere Sprache, heißt es…
    Hab dabei gelernt, dass man offline dann nicht mit Wikipedia „sprechen“ kann. Das war der einzige Stolperstein.
    Hast du inzwischen evtl. schon einige Code-Anweisungen um z.B. Musik abspielen oder um GPIO’s per Sprachbefehl steuern kann?

      CS · 27. Juli 2018 um 14:56

      Hallo Manfred,

      Deine Mail habe ich bekommen, danke dafür.
      Code-Beispiele für ein sh-script habe ich derzeit noch nicht. Ich habe mich nach dem erfolgreichen Einsatz von jarvis direkt um den FHEM-Server gekümmert. Mit der Spracherkennung mache ich erst später weiter. Jetzt im Sommer ist es allerdings schwierig am Pi zu sitzen, wahrscheinlich komme ich erst im Herbst/Winter oder bei längeren Regenperioden wieder dazu etwas zu machen.

      Allerdings habe ich heute morgen bzgl. der Steuerung von GPIOs über ein Script diesen Beitrag verfasst:
      https://schmidt-feldberg.de/2018/07/27/raspberry-pi-shell-script-zum-steuern-der-gpios/

      Ich hoffe das hilft Dir weiter.

      Gruß Christian

        Manfred v.Raven · 29. Juli 2018 um 11:31

        Hallo Christian,
        herzlichen Dank für den Beitrag.
        Hab die gleiche Situation, die Arbeiten gehen erst im Herbst-/Winterhalbjahr bei mir weiter.
        Werde berichten.
        Gruß bis dann.
        Manfred

      Cedric Bergner · 30. Juni 2019 um 21:01

      Ist Jarvis nur auf einem Rasberry Pi möglich zu installieren, bzw zu nutzen oder ist das ganze auch auf einem handelsüblichen Computer möglich?
      Kenne mich damit nicht besonders gut aus.

        CS · 1. Juli 2019 um 7:36

        Hallo Cedric,

        Du kannst Jarvis auch auf einem anderen Debian-System verwenden. Auf der Projekt-Homepage https://openjarvis.com/ links im Menü unter „Pré-requis“ (= Systemvoraussetzungen) steht auch noch, dass es unter MacOS laufen soll. Microsoft Windows wird allerdings nicht unterstützt.
        Falls Du Windows hast könntest Du Dir ein Debian emulieren, zum Beispiel mit dem Micorosft eigenen HyperV (je nach Windows Version dabei).

        Oder Du springst auf die tolle Welt des Raspis auf und kaufst Dir einen Raspberry Pi. Du wirst begeistert sein.

        Viele Grüße
        Christian

Walter · 15. August 2018 um 16:57

Hallo Christian,
mir ist es nicht möglich bei den Commandos 2 Wörter zu koppeln z.B *WOHNZIMMER*LICHTAN*==say „Ok“. Hast du das schon erfolgreich versucht ?

Gruß Walter

    CS · 16. August 2018 um 20:17

    Hallo Walter,

    eigentlich sollte es damit keine Probleme geben. Ich habe das schon erfolgreich im Einsatz, zum Beispiel mit diesem Text: *Warum geht das nicht*
    Versuche es mal bitte ohne den „*“ zwischen Wohnzimmer und Lichtan. Auch kannst Du versuchen anstatt „Lichtan“ „Licht an“ zu verwenden. Das sollte eigentlich auch klappen.
    Über Rückmeldung würde ich mich freuen.

    Viele Grüße Christian

Daniel · 13. September 2018 um 22:44

Hallo, ich habe eine kurze Frage: Wie ist es möglich die Erkennung über einen frei wählbaren Sprachbefehl zu starten? Also ähnlich wie „Siri“ oder „okay Google“ oder „Jarvis“ 😀

    CS · 14. September 2018 um 7:22

    Hallo Daniel,

    bei der Installation kannst Du das Schlüsselwort (Aktivierungswort, Hotword, Magicword) eingeben. Im obigen Installationsbeispiel heißt es „snowboy“. Es ist frei wählbar. Die Eingabe ist direkt vor der Auswahl der Sprachengine (z.B. snowboy, bing, google…).
    Wenn Du Jarvis schon installiert hast, kannst Du es wie folgt umstellen:
    Jarvis starten –> Settings –> Voice recognition –> Recognition of magic word

    Viele Grüße
    Christian

      CS · 14. September 2018 um 7:27

      Hallo Daniel,

      grade noch vergessen, Du musst dann das neue Wort natürlich auch trainieren / anlernen. Das geht unter:
      Jarvis starten –> Settings –> Voice recognition –> Snowboy settings –> Train a hotword / command

      Viele Grüße
      Christian

        Daniel · 15. September 2018 um 21:01

        Okay vielen Dank, nächsten Monat geht es in die neue Wohnung da wird es dann probiert

Daniel · 23. September 2018 um 17:39

Hallo ich hätte da nochmal eine Frage…
und zwar bekomme ich das mikrofon nicht zum laufen.. ich habe schon 2 USB soundkarten benutzt, kein Erfolg. Am Laptop funktioniert das Mikrofon selbst jedoch sehr gut.

ich hoffe es gibt eine einfache Lösung

Viele Grüße
Daniel

mayrst · 9. Januar 2019 um 3:38

Hi,
es funktioniert echt super. Kann man das Programm so einstellen, dass es beim Startvorgang vom Raspberry automatisch startet?
VG
mayrst

Marco · 29. Januar 2019 um 17:59

Wenn ich einen Bing API Key haben will, muss ich dafür doch bezahlen. Oder mache ich da was falsch

    CS · 30. Januar 2019 um 6:59

    Hallo Marco,

    der Bing API-Key sollte eigentlich kostenlos sein. Laut Webseite von Microsoft hast Du 2 Möglichkeiten.
    1. Du verwendest eine 30 Tage Testversion. Nach den 30 Tagen ist der Key ungültig.
    2. Du erstellst einen kostenlosen Azure Account. Mit diesem Account kannst Du ein Cognitive Services-Konto erstellen, welches den API-Key dauerhaft zu Verfügung stellen sollte.

    Gruß Christian

Max · 2. April 2019 um 19:53

Welches Betriebssystem läuft auf dem Rasperry Pi?
Linux?

Julian · 3. April 2019 um 23:37

Hallo,
welche Programmiersprache wird bei Jarvis verwendet?
Danke

Simon · 13. Juni 2019 um 9:30

Hallo, ich hoffe mir kann hier noch jemand helfen.
Erstmal vorne weg, tolle Anleitung! Wir wollen Jarvis in unserer Firma testweise zur Automatisierung verwenden. Jedoch haben wird Probleme mit dem Erkennen der Kommandos.
Die Installation von Jarvis hat soweit geklappt, als Engine verwenden wir Snowboy, da eine Anbindung ans Netz nicht möglich ist.
Das Hotwort wird noch relativ zuverlässig erkannt, jedoch werden keine Commands erkannt. Gibt es eine bestimmt Struktur wie die Commands geschrieben werden müssen? Eingelert/Eingesprochen haben wir die Commands im Snowboy setting schon. Auch haben wir Jarvis schon einmal neu aufgesetzt und den Token neu generiert. Der Speicherort der Commands müsste laut vorherigen Kommentaren auch passen. An den Audio Settings haben wir auch schon rumgespielt. Wir verwenden ein USB Headset für die Sprach Ein-und Ausgabe.
Würde mich sehr freuen wenn uns jemand weiterhelfen kann. Danke.

CS · 13. Juni 2019 um 14:08

Hallo Simon,

um was für Kommandos handelt es sich denn? Sollen Skripte ausgeführt werden? Liegt hier evtl. ein Fehler im Skript vor?
Probiere mal (falls noch nicht geschehen) eine einfache Sprachausgabe wie zum Beispiel „Test“, wenn ein Testkommando erkannt wird. Zum Testen der Kommandos würde ich das Wort „Test“ auf jeden Fall anlernen, das braucht man immer mal wieder.
Wenn das funktioniert, probiere ob Du die Kommandos ohne Leerzeichen schreibst.
Wenn selbst das nicht funktioniert, dann liegt es evtl. an der Geräuschkulisse. Probiere mal absolute Umgebungsruhe. Wenn es dann gehen sollte, dann versuche mal unterschiedliche Einstellungen beim Mikrogain.
Wenn auch das nicht geht, dann probiere mal ein anderes Mikrofon, ohne Headset, wobei es daran eigentlich nicht liegen sollte, da ja das Hotword funktioniert. Aber auf einen Versuch kommt es an.

Ich hoffe ich konnte helfen.

Gruß Christian

Stefan · 7. August 2019 um 11:40

Hallo,

erstmal Danke für die tolle Anleitung!
Kann ich dann mit Kommandos auch fertige nodes über Node-Red ausführen lassen?

    CS · 8. August 2019 um 7:37

    Hallo Stefan,

    ich hatte bisher zwar noch keine Berührungspunkte mit Node-Red und kann es somit nicht testen, aber theoretisch sollte alles ausführbar sein, was Du auch über das Terminal starten kannst.

    Gruß Christian

Maik · 17. August 2019 um 8:18

Hi und danke für das Tutorial es funktioniert alle bis auf eine Fehlermeldung mit der ich seid 2 Tagen kämpfe.

json={„error“:{„code“:“401″,“message“: „Access denied due to invalid subscription key or wrong API endpoint. Make sure to provide a valid key for an active subscription and use a correct regional API endpoint for your resource.“}}

Ich habe mir ein Azure Konto angelegt und entsprechend die Resource erstellt, allerdings meckert ehr bei den Keys.
Kann man irgendwo den Endpoint in „Jarvis“ ändern? Ich habe im source nichts dazu gefunden aber vielleicht hast du ja eine Idee.
Danke und Gruß

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Translate »