Bei Embedded-Projekten mit einer minimalen Benutzerschnittstelle liegt es nahe, für die Ausgabe Sprache zu nutzen. Das geht auf dem RasPi überraschend einfach.
Sprachrückmeldungen geben einer Anwendung nicht nur eine besondere Note, sondern machen kleine Projekte für Sehbehinderte sogar erst nutzbar. Auch auf den Pixel-Desktop-Varianten von Raspbian wird seit der Version von Februar 2020 zum ersten Mal der Screenreader Orca unterstützt, der aber im weiteren Verlauf des Artikels keine Rolle spielt.
Unabhängig von der Barrierefreiheit einer Anwendung erweisen sich Sprachausgaben für alle Anwender als nützlich, besonders dann, wenn die Wirkung auf eine Aktion erst verzögert erfolgt – etwa bei einem Tastendruck, der die Solltemperatur erhöht. Bis es wirklich warm wird, vergeht eine Weile. In der Zwischenzeit bestätigt eine Ansage die neue Solltemperatur.
Dieser Artikel beschäftigt sich deshalb mit der Sprachsynthese (Englisch Text-to-Speech, kurz TTS). Der umgekehrte Weg, also Sprache zu Text, ist ebenfalls interessant, aber wesentlich aufwendiger umzusetzen, wie ein früherer Artikel [1] in diesem Magazin gezeigt hat.
Qual der Wahl
Für Linux und im speziellen Raspbian gibt es Pakete für die Sprachausgabe. Die folgenden Abschnitte vergleichen die Lösungen hinsichtlich der Installation, der Qualität und der Performance. Als Basis dient eine Raspbian-Lite-Installation der Version vom 13.02.2020 auf einem Pi Zero W. Die großen RasPi-Modelle mit ihrer höheren Leistung funktionieren auch, stellen aber keine Herausforderung mehr an die Performance dar.
Der Artikel geht von einer erfolgreichen Konfiguration der Audioausgabe aus, entweder über HDMI, Bluetooth oder über einen Audio-HAT, wie etwa den Pirate-Audio-HAT mit Mini-Lautsprecher von Pimoroni (Abbildung 1). Tutorials zur Audioeinrichtung finden Sie entweder in der Installationsanleitung oder an zahlreichen Stellen im Netz.
Als Testkandidaten treten Festival, Espeak-ng, Pico und – als einziger Online-Dienst – Google Translate an. Um die Latenz zu ermitteln, messen wir die Zeit bis zur Ausgabe des Worts “Pi”, die Qualität anhand der (in keinem Wörterbuch enthaltenen) merkelschen Neuschöpfung “Ausgangssperrenlockerungsdiskussionsorgie” sowie mit dem Goethe-Gedicht “Wanderers Nachtlied”.
Festival
Das Paket Festival ist seit Langem Teil von Debian und damit auch Raspbian. Sie installieren und testen es mit den Kommandos aus Listing 1. Beim Test fällt die hohe Latenz von 3,9 Sekunden auf, bis die Sprachausgabe beginnt.
Listing 1
$ sudo apt-get -y install festival $ echo "Pi" | festival --ts
Des Weiteren fehlt Festival eine deutsche Stimme und damit auch ein entsprechendes Wörterbuch. Während es ein “Hallo Bernhard” noch problemlos wiedergibt, geht es bei “Option 1 ausgewählt” dazu über, das letzte Wort zu buchstabieren. Damit fällt Festival für deutsche Anwender durch. Rein theoretisch ließe es sich mit weiteren Stimmen beziehungsweise Sprachen nachrüsten; allerdings gibt es dafür keine funktionierende Anleitung im Netz, und angesichts der verfügbaren Alternativen erscheint der Aufwand dafür nicht angemessen.
Die weibliche Stimme hört sich bei englischen Texten zwar ganz ordentlich an, bleibt aber qualitativ vom Klang einer menschlichen Stimme weit entfernt.
Espeak
Die TTS-Engine Espeak gibt es im Raspbian-Repository in zwei Versionen: einmal als Paket espeak und einmal als espeak-ng (next generation). Die Bedienung und die Qualität der Ausgabe fallen bei beiden Paketen gleich aus. Allerdings hat das ältere Probleme mit der direkten Audioausgabe, weshalb Sie lieber zur Ng-Variante greifen sollten. Wenn im Weiteren von Espeak die Rede ist, meint der Autor immer die Ng-Version.
Espeak bietet eine Reihe von Optionen, mit denen Sie die Sprachausgabe beeinflussen. Im Beispiel aus Listing 2 wählt der Parameter -v die deutsche Stimme aus. Die Option -s verlangsamt die Ausgabe etwas – als Standardwert gilt 150. Die Tonhöhe, deren Grundwert bei 50 bis 99 liegt, verändert -p (pitch).







