Raspberry Pi per Sprache steuern

© Jozef Polc, 123RF

Aufs Wort

Siri, Alexa, Cortana und OK Google – digitale Assistenten mit Sprachfähigkeiten infiltrieren auf allen Plattformen das Privatleben des Benutzers. Anwender eines Raspberry Pi nutzen dagegen freie Software, ohne dass internationale Konzerne mithören.

Computer per Sprache statt per Tastatur zu steuern ist ein alter Traum, zuerst in zahlreichen Science-Fiction-Serien der späten Sechzigerjahre verwirklicht. Inzwischen sind sowohl die Rechner als auch die Sprachforscher so weit, dass die Idee tatsächlich im Alltag funktioniert. Technisch kommen hier zwei Komponenten zum Einsatz: Eine sogenannte STT-Engine (englisch für "speech-to-text", Sprache-zu-Text) wandelt die gesprochene Sprache in Text um. Die andere Richtung übernimmt eine TTS-Engine ("text-to-speech", Text-zu-Sprache). Dazwischen sitzt ein Programm, das den eingegebenen Text interpretiert und den Ausgabetext erzeugt.

Sowohl für STT als auch für TTS gibt es On- und Offline-Lösungen. Insbesondere die Sprachanalyse benötigt viel Know-how, ein gutes Sprachmodell und ein Lexikon, damit die Spracheingabe nicht zum sinnlosen Silbenbrei verkommt. Diverse Anbieter wie Google erlauben – nicht ganz uneigennützig – die Integration ihrer Online-Engines in selbst geschriebene Programme. Wer jedoch nicht möchte, dass der Anbieter mithört, benötigt eine Offline-Engine.

Zum Glück gibt es mit Pocketsphinx [1] und Julius [2] zwei quelloffene Engines, die autark arbeiten. Die Latte für die Hardware-Anforderungen liegt dabei erfreulich niedrig: Für beide reicht die Rechenleistung eines Raspberry Pi aus. Darüber hinaus gibt es mit dem Jasper-Projekt [3] eine Python-Lösung, die diese (und andere) TTS- und STT-Engines über einen simplen Mechanismus verbindet und so die Sprachsteuerung eines RasPi recht einfach macht. In den folgenden Abschnitten geht es um die Hardware, die Installation der Software sowie um ein kleines Beispiel für die Sprachverarbeitung.

Hardware-Voraussetzungen

Für den normalen Betrieb genügt die Rechenleistung eines Raspberry Pi der ersten Generation. Möchten Sie die Software selbst kompilieren (mehr dazu im nächsten Abschnitt), benötigen Sie aber sehr viel mehr Geduld als beim RasPi 2. Im Betrieb verhielt sich der Ur-Pi ein wenig besser, da bei ihm anders als bei seinem Nachfolger keine Brummgeräusche auftraten. Hier fehlt dem RasPi 2 offensichtlich eine ordentliche Abschirmung der Audiobuchse.

Da der Raspberry Pi im Gegensatz zu anderen SBCs wie etwa dem Banana Pi nicht über ein eingebautes Mikrofon verfügt, stehen entweder eine kleine USB-Soundkarte plus Mikrofon (Abbildung 1) oder gleich ein USB-Mikrofon auf der Einkaufsliste. Die Kombi in Abbildung 1 mit der USB-Soundkarte Creative Soundblaster Play und dem Notebook-Mini-Mikrofon von Hama kostet 17 Euro plus 6 Euro für das Mikro. Das USB-Mikro Akiro von Kinobo in Abbildung 2 gibt es für etwa 18 Euro im Handel.

Abbildung 1: USB-Soundkarte mit Mini-Mikrofon direkt in der Mikrofonbuchse.
Abbildung 2: USB-Mikrofon zum Aufstellen auf dem Schreibtisch und Mini-Lautsprecher.

Die Sprachausgabe erfolgt über den HDMI-Ausgang oder per 3,5-mm-Klinke. Besondere Ansprüche an die Lautsprecher gibt es nicht, hier tun es selbst einfache "Brüllwürfel": Die synthetischen Stimmen der meisten Sprachausgabe-Engines hauen audiophile Nutzer sowieso nicht vom Hocker. Freilich spricht nichts gegen bessere Lautsprecher, etwa falls das System später sprachgesteuert Musik abspielen soll.

Der richtige Ton

Um später nicht irgendwelche Fehler in der Software zu suchen, sollten Sie Aufnahme (Mikrofon) und Wiedergabe richtig konfigurieren. Das folgende Setup geht von der Ausgabe über die interne Soundkarte mithilfe der 3,5-mm-Klinkenbuchse aus. Die Konfiguration klappt am bequemsten über Raspi-config und dessen Menüpunkt zum Steuern der Ausgabe. Letztlich besteht die Konfiguration nur aus dem Ändern eines Werts in /etc/modprobe.d/alsa-base.conf: Raspi-config stellt dort die Option snd-usb-audio von -2 auf 0.

Schließen Sie das Mikrofon über eine unterstützte USB-Soundkarte an, können Sie sich eine weitere Konfiguration sparen. Dasselbe gilt für USB-Mikrofone, die quasi ein auf das Eingabeteil reduziertes Sound-Device enthalten. Für einen ersten Test und zum Einstellen der Aufnahme- und Wiedergabelautstärke greifen Sie zum Programm alsamixer. Mit [F6] wählen Sie das Sound-Device aus, mit [Tab] gelangen Sie zu den einzelnen Geräten für Ein- und Ausgabe. Über die Pfeiltasten ändern Sie die Einstellungen (Abbildung 3). Taucht statt des Mixerprogramms nur eine Fehlermeldung auf, gehört typischerweise der angemeldete Nutzer nicht zur Gruppe audio – wer mit dem Standardnutzer pi arbeitet, hat dieses Problem nicht.

Abbildung 3: Mit dem Alsamixer stellen Sie den Schallpegel des Mikrofons ein.

Hilfreich für die Einrichtung ist das Programm mic-test aus dem zu diesem Artikel entstandenen Github-Projekt des Autors [4]. Das Programm nimmt für fünf Sekunden auf und spielt die Aufnahme anschließend gleich wieder ab – damit lässt sich dann sowohl die Aussteuerung des Mikros als auch die Ausgabelautstärke per Alsamixer den eigenen Bedürfnissen anpassen. Anschließend speichert der Befehl sudo alsactl store die Einstellungen. Beim nächsten Bootvorgang lädt das System diese automatisch wieder.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Aktuelle Ausgabe

08/2017
Überwachung

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial eines Mini-PC. Mit der Heft-DVD erhalten Sie nicht nur die neusten Distributionen für den RasPi und Co., sondern gleichzeitig auch die passenden Programme zu den Artikeln.

  • Wo bin ich?

    Gyroskope dienen dazu, Positionsveränderungen wahrzunehmen. Dafür war früher eine recht aufwendige und teure Apparatur erforderlich, heute übernimmt das ein winziger Chip für wenige Euro.

  • Vergissmeinnicht

    Legen Sie Daten im EEPROM des ESP8266 ab, dann überstehen diese selbst einen Stromausfall.

  • Angeschaut

    Das offizielle Raspberry-Pi-Display bietet nur eine geringe Auflösung. Das gleichgroße 7-Zoll-Display von Waveshare kann deutlich mehr und dient zudem als Touchscreen für den RasPi.

  • ESP++

    Espressif mischte bereits mit dem WLAN-fähigen ESP8266 die Mikrocontroller-Gemeinde ordentlich auf. Jetzt legt der Hersteller mit dem ESP32 noch einmal nach.

  • Auf und nieder

    Mit einem PiXtend-Board und der Codesys-IDE bauen Sie den RasPi zur professionellen Steuereinheit für Aufgaben im Smart Home aus.

  • Halali!

    In einem Naturschutzgebiet bedrohen Fuchs und Marder seltene bodenbrütende Vögel. Als Gegenmaßnahme dienen Lebendfallen, die ein Tandem aus Mikrocontroller und RasPi überwacht.

  • Sicheres Zuhause

    Günstige IP-Kameras vom Discounter erkennen und melden zwar Bewegungen, doch die Fehlerrate fällt dabei recht hoch aus. Eine selbst entwickelte Bewegungserkennungssoftware für den RasPi beseitigt das Problem.

  • Tunnelbauer

    Ein Virtual Private Network schützt Ihre Daten vor neugierigen Blocken Dritter. PiVPN übernimmt dabei das Einrichten und Managen von OpenVPN.

  • Wolken

    NextcloudPi erleichtert Ihnen die Installation einer privaten Cloud. Das RasPi-Image bringt alle wichtigen Funktionen von Haus aus mit.