Raspberry Pi Sprachausgabe – der Pi lernt sprechen

In diesem Tutorial zeige ich euch wie Ihr eurem Raspberry Pi das sprechen beibringen könnt. Das hört sich jetzt kompliziert und langwierig an, ist aber mit nur wenigen Kommandos möglich. Sprechen lernt der Raspberry Pi mit einer OpenSource Bibliothek genannt eSpeak. Dieser Speech Synthesizer ist in vielen unterschiedlichen Sprachen erhältlich und ist in der Basisversion auf Englisch installiert. Vergleichbar ist diese Sprachausgabe mit denen anderer Betriebssysteme. eSpeak wird vor allem für die Ausgabe von Texten verwendet oder zur Sprachausgabe bei Robotern. Siehe dazu dieses Buch: Raspberry Pi Robotic Projects

sprachausgabe

Sprachausgabe installieren

Der erste Schritt ist die Installation der notwendigen Software. Diese ist bei Raspbian Linux noch nicht installiert. Die Installation ist sehr einfach und mit dem folgendem Kommando möglich:

Mit der Standardinstallation ist nur die englische Sprache installiert.

Verwendung

Das Kommandozeilen Programm espeak ist sehr einfach zu verwenden. Um einen einfachen Text auszugeben reicht folgender Befehl:

Um das zu hören muss man entweder Kopfhörer an den Audioausgang des Raspberry Pis anstecken oder besser noch ein Audiosystem oder eine einfache Box. Der Grund warum ich den ersten Text auf Englisch geschrieben habe erklärt sich folgendermaßen: probiert doch einfach mal das selbe auf deutsch aus:

Das klingt weniger gut. Der englische Akzent ist vielleicht lustig, aber nicht sonderlich gut, wenn man längere Texte auf Deutsch vorgelesen haben möchte.

Andere Sprache verwenden

eSpeak unterstützt eine große Anzahl unterschiedlicher Sprachen, so auch Deutsch. Den Text können wir uns also mit dem Parameter -v und dem Ländercode in einer anderen Sprache vorlesen lassen:

Wem das noch nicht reicht, der kann noch mit anderen Stimmen (Männer- und Frauenstimmen) oder Effekten experimentieren. Eine Liste der Sprachen und Parameter ist in der Dokumentation nachzulesen.

Sprachausgabe in der Praxis

Neben den Spielereien kann man diese Funktion auch sehr sinnvoll einsetzen. Mit dem Parameter -f kann man sich beispielsweise ganze Textdateien vorlesen lassen. Eine sehr gute Möglichkeit um eine Barrierefreie Applikation zu entwickeln welche auch sehbeeinträchtigte Menschen verwenden können. Als Geschichtenerzähler ist der Raspberry Pi zugegebenermaßen eher schlecht.

Bildschirmlose Ausgabe

Die Sprachausgabe ist eine wirklich praktische Funktion, falls am Raspberry Pi aus irgend einem Grund gerade kein Monitor angeschlossen werden kann und beispielsweise der Netzwerkzugriff nicht funktioniert. Was tun? In diesem Fall könnte man eine Tastatur anschließen und sich die IP Adresse vorlesen zu lassen (falls man zufällig auch gerade seine Kopfhörer vom iPod mit hat). Die IP Adresse kann man sich folgendermaßen ausgeben lassen:

Und so kann man zumindest schon mal versuchen ob man den Pi im Netzwerk pingen kann. Wer mutig ist könnte sich auch Logdatei vorlesen lassen:

Man benötigt dafür etwas Zeit und sollte sehr aufmerksam zuhören.

(Visited 5.135 times, 10 visits today)

Das könnte auch interessant sein...

8 Antworten

  1. der Alte sagt:

    Guten Abend. Ich lasse den Raspi jede 1/4 Stunde die Uhrzeit ansagen. Habe das auch mit espeak gemacht, aber während der Ansage wird die Ausgabe immer undeutlicher, als ob die Geschwindigkeit der Ansage langsamer wird. Das ist so nicht zu gebrauchen. Habe jetzt die Stimme von Google abgerufen, gespeichert, setzte mittels bas-script die Ansage zusammen und lasse mit aplay ausgeben. Ist aber immer noch unbefriedigend. Nach einen Neustart ist der Raspi schön still, hat er aber erst einmal geredet ist immer ein ritmisches Blub Blub zu höhren. Genauso ist Internettzuriff zuhöhren. Und ein kreischen und feifen. Sehr lästig. Als ob der Ausgabekanal geöffnet und anschliepend nicht geschlossen wird. Damit Erfahrung?
    MfG der Alte (weil ich so alt bin, nicht weise)

    • das mit der langsamer und undeutlicher werdenden Stimme scheint ein Bug zu sein der bei manchen Systemen auftritt (Quelle).

      • der Alte sagt:

        Danke für die Antwort, es tritt zumindest bei meinen zwei Raspis auf, nicht aber am PC mit Debian. Werde mal auf einen ein anderes Betriebssystem versuchen. Und versuchen, die Quelle zu übersetzten, bin halt alt und hab in der Schule russisch gelernt (das kann ich aber auch nicht richtig, ich komme einfach mit fremden Sprachen nicht zurecht – habs oft probiert).

    • Heiner sagt:

      Die Standardversion von espeak ist nur sehr schlecht zu verstehen.
      Mit mbrola kann man aber recht gute Ergebnisse erzielen. Eine gute Anleitung ist unter http://espeak.sourceforge.net/mbrola.html.
      Die deutsche Stimme de6 ist am besten. Ich habe mbrola unter Intel-Linux schon lange am laufen. Auf dem Raspberry lief mbrola nach der Installation einwandfrei. Die Aussprache ist zu verstehen. Sie ist aber zu schnell. Leider muss man das System überlisten:

      which mbrola

      liefert bei mit /usr/local/bin/mbrola

      sudo su
      /usr/local/bin/mbrola /usr/local/bin/mbrola_bin
      echo „mbrola_bin -t 1.0 $*“ > /usr/local/bin/mbrola
      chmod 755 /usr/local/bin/mbrola
      exit

      Die Sprachausgabe ist dann gut zu verstehen.

  2. Heiner sagt:

    Es geht einfacher.

    Den Workaround mit /usr/local/bin/mbrola_bin kann man sich sparen.

    espeak -v mb-de6 -s 160 -g 6 „Hallo welt, es ist 7 uhr 30“

    liefert ein recht gutes Ergebnis.

    Das Wimmern in der Stimme ist vermutlich der zu geringen Rechenleistung des Raspberry Pi geschuldet. Unter Linux kling es etwas besser. Verwendet man unter Linux allerdings txt2pho klingt es noch besser. Leider ist txt2pho nur als Binärversion für Intel zu erhalten.

Schreibe einen Kommentar

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