Raspberry Pi Sprachsteuerung

Raspberry Pi Sprachsteuerung – Ziel

Mit Hilfe eines Raspberry Pi und ein wenig Zusatzhardware sollen Sprachkommandos abgesetzt und interpretiert werden. Zum Einsatz kommt das Open Source Projekt Jasper genutzt.

Voraussetzungen

  • Raspberry Pi
  • USB-Mikrofon
  • Lautsprecher / Kopfhörer

Vorbereitung

Ich folge halte mich bei der Installation an die Dokumentation. Zunächst benötigen wir ein paar Pakete:

Einige Sound-Optionen in /etc/modprobe.d/alsa-base.conf werden angepasst:

ALSA neustarten:

~/.bash_profile wird erweitert:

Ebenso ~/.bashrc:

Zusätzlich erweitern wir die Swap-Partition, um späteren Problemen beim Kompilieren entgegenzuwirken.

Jetzt kann die Installation von Jasper beginnen.

Installation Jasper

Wir besorgen uns jasper zunächst sowie einige benötigte Python-Bibliotheken und passen schließlich noch eine Dateiberechtigung an:

Das kann eine Weile dauern…

Konfiguration

Zunächst muss für Jasper ein sog. Profil erstellt werden.

Nun die Fragen beantworten soweit man das möchte.

Pocketsphinx

Zur Spracherkennung wird Pocketsphinx installiert.

Sphinxbase und Pocketsphinx bauen und installieren, danach den Raspberry Pi neustarten:

Dies kann wieder eine Weile dauern…

Schließlich müssen noch CMUCLMTK, OpenFST, MIT Language Modeling Toolkit, m2m-aligner und Phonetisaurus installiert werden.

Wir beginnen mit den Abhängigkeiten:

Danach die Installationen:

Weiter gehts mit der Sprachsynthese.

picopi –  Pico TTS für Raspberry Pi

Nachdem der Pi nun „hören“ kann soll er auch „sprechen“ lernen. Dies wird mit SVOX-Pico TTS realisiert.

Das Jasper-Profil .jasper/profile.yml wird entsprechen erweitert um folgende Zeile:

Das wars… Alternativ kann auch eSpeak eingesetzt werden.

eSpeak TTS

Installation:

Die Konfiguration erfolgt der Jasper-Profildatei .jasper/profile.yml :

Weiter mit Start und Test.

Autostart

Damit Jasper beim Booten mitstartet, wird mit crotab -e ein Cronjob erstellt:

System neustarten und es kann losgehen.

Test

Zunächst muss „Jasper“ beim Namen genannt  werden. Nachdem man „Jasper“ gesagt hat und dies erkannt wurde, ertönt ein hoher Piepton. Dann kommt eines der unten aufgeführten Kommandos. Wurde das Kommando erkannt, folgt ein tieferer Piepton.

Lt. Dokumentation bringt Jasper folgende Kommandos mit:

  • Uhrzeit: “What’s the time?”
  • Wetter: “How’s the weather?… What’s the weather like tomorrow?”
  • News: “What’s in the news?”
  • Gmail: “Do I have any email?”
  • Hacker News: “What’s on Hacker News?”
  • Facebook Notifications: “Facebook notifications?”
  • Geburtstage: “Who has a birthday today?”
  • Witze: “Tell me a knock-knock joke.”
  • Leben 🙂 : “What is the meaning of life?”

Daüber hinaus gibt es eine anprogrammierbare

Have fun!

6 Gedanken zu „Raspberry Pi Sprachsteuerung“

  1. Guten.
    Ich habe leider das Problem, dass ich die Dateien OpenFST bisPhonetisaurus nicht herunterladen kann.
    Scheinbar ist der Link veraltet. Ich erhalte folgende Fehlermeldung:
    HTTP request sent, awaiting response… 404 Not Found

  2. Hallo Stefan,
    super Tutorial! Habe nur Probleme mit m2m.. ich scheitere an der Installation.. Seit Anfang ´16 ist google code ja endgültig offline.. für den Rest finde ich Ausweichtquellen, dafür einfach nicht D:.. kannst du oder irgendwer sonst mir helfen?

  3. Ich habe gerade auch das Thema mit der deutschen Umsetzung.
    Es geht mit dem Google Speech API recht einfach.
    In der profile.yml sollte es in etwa so aussehen:

    stt_engine: google
    keys:
    GOOGLE_SPEECH: ‚your_google_speech_api_key_here_xyz1234‘
    tts_engine: google-tts
    language: ‚de‘

    Leider muss man in der Datei stt.py selbst die Sprache von „en-us“ auf „de-de“ ändern.
    Dann müssen alle Module noch auf deutsch angepasst werden.
    Dazu die Links auf deutsche Seiten umstellen, damit auch beim Wetter oder News die Infos richtig kommen.
    Und die jasper.py auch noch gleich abändern (Starttext / Key-word).

  4. Hallo Stefan,

    hast du eventuell auch Erfahrungen mit der deutschen Konfig, dass Jasper auf deutsch läuft?

    Mit freundlichen Grüßen

    Markus

    1. Hallo Markus,

      leider nein, bisher habe ich nur die englische Variante kurz angetestet. Jasper nutzt CMUSphinx zur Spracherkennung. CMUSphinx ist sprachunabhängig, es benötigt allerdings ein Akustik- und Sprachmodell. Deutsch steht zum Download bereit. Falls du das weiter verfolgen solltest, freue ich mich über ein kurzes Feedback.

Schreibe einen Kommentar

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