Projekt: SONOS Sprachausgabe mit Amazon Polly

Mit ** gekennzeichne Links auf dieser Seite sind Affiliatelinks.

In einem vorigen Video habe ich die Integration von SONOS in die verschiedenen Systeme gezeigt. Dabei habe ich bewusst nur Google TTS (Text to Speech) genutzt, da dies die einzige Variante ist, welche von FHEM im Standard unterstützt wird. Das klingt leider oft etwas abgehackt und künstlich, also suchen wir eine bessere Lösung. Wenn man nach weiteren Diensten sucht, stolpert man immer wieder über Amazon Polly. Und die Ergebisse können sich sehen lassen (bzw. hören). Daher stelle ich Dir jetzt vor, wie Du in den Genuss von Amazon Polly in deiner FHEM, ioBroker oder auch NodeRed-Umgebung kommst.

Die Basis für dieses Tutorial ist dennoch der vorige SONOS-Teil. Dieser Beitrag ist also eine Erweiterung dazu.

Was Du brauchst?

  • Einen Raspberry Pi
  • Einen Sonos Play:1 / Sonos One
  • FHEM, ioBroker oder NodeRed

Video

Arduino-Kurs

Produkte

Die Preise halte ich für wirklich fair. Für meine einfachen Nubert-Lautsprecher (ohne irgendwelchen technischen Schnickschnack) habe ich jedenfalls mehr bezahlt. Für die Größe ist der Klang auch wirklich gut.

Kosten

Da Amazon Polly NICHT kostenlos ist, brauchst du ein AWS-Konto und eine Kreditkarte, welche bei der Registrierung auch angegeben werden muss. Aber keine Sorge: Im ersten Jahr werden für die Nutzung keine Kosten anfallen. Danach zahlst Du (Stand 02/2019) 4$ für 1 Million Zeichen. Also ebenfalls extrem wenig. Ich möchte dennoch darauf hinweisen. Im Video gibt es mehr Details dazu.

Befehle (für FHEM)

Folgende Pakete müssen installiert sein.

sudo pip3 install awscli
sudo aws configure

Dann können wir das Ergebnis testen, indem folgende mp3 generiert wird:

sudo aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text 'Hallo, ich bin dein erster Text mit der neuen Stimme' test1.mp3

Damit FHEM ebenfalls mit sudo auf aws zugreifen darf, muss in einer sudoers-Datei der Zugriff auf awscli erlaubt werden.

Alternativ könnte man bestimmt auch aws configure als fhem-Benutzer ausführen und könnte sich danach die sudo-Konfiguration sparen (und aws einfach ohne sudo aufrufen).

sudo nano /etc/sudoers.d/010_fhem-nopasswd
fhem ALL=(ALL) NOPASSWD: /usr/local/bin/aws

Möglichkeit 1: Marlene fix hinterlegen

attr Sonos Speak1 mp3:sudo /usr/local/bin/aws polly synthesize-speech --output-format mp3 --voice-id Marlene --text '%text%' %filename%
70 de Was geht ab

(der Parameter Sprache spielt in diesem Beispiel keine Rolle)

Möglichkeit 2: Sprach-Parameter durchreichen (empfohlene Variante)

attr Sonos Speak1 mp3:sudo /usr/local/bin/aws polly synthesize-speech --output-format mp3 --voice-id %language% --text '%text%' %filename%
70 Hans Was geht ab
70 Marlene Was geht ab
70 Vicki Was geht ab

Möglichkeit 3: Auf SSML umstellen, um Betonung und Effekte nutzen zu können

attr Sonos Speak1 mp3:sudo /usr/local/bin/aws polly synthesize-speech --output-format mp3 --voice-id %language% --text-type ssml --text '%text%' %filename%
70 Hans <speak>Was geht ab</speak>
70 Marlene <speak>Was geht ab</speak>
70 Vicki <speak>Was geht ab</speak>
70 Hans <speak>Was geht ab <amazon:effect name="whispered">Ich flüstere</amazon:effect></speak>
70 Marlene <speak>Was geht ab <amazon:effect name="whispered">Ich flüstere</amazon:effect></speak>
70 Vicki <speak>Was geht ab <amazon:effect name="whispered">Ich flüstere</amazon:effect></speak>

Newsletter

Trage Dich jetzt in den Newsletter ein und genieße dadurch viele Vorteile:

  • 5€-Gutschein als Dankeschön
  • Zugang zu exklusiven Inhalten
  • Rabattaktionen für Kurse
  • Angebote für Produkte

* Durch Angabe meiner E-Mail-Adresse erkläre ich mich damit einverstanden, dass mir regelmäßig Informationen und Produktempfehlungen aus dem Fachgebiet Smart Home zugesendet werden. Mit dem Eintrag akzeptieren Sie unsere Datenschutzbestimmungen. Meine Einwilligung kann ich jederzeit widerrufen.

Matthias Kleine

Matthias Kleine

Großer Fan und Anhänger von OpenSource-Projekten und erweiterbaren Haus-Automatisierungskomponenten. Je offener und flexibler das System, desto besser. Ich lege mich nicht auf einzelne Protokolle oder Standards fest, sondern probiere aus allen Welten das Beste zu verheiraten. Unterwegs als Softwareentwickler, Trainer und Blogger im Bereich Smart Home.

Auf YouTube und hier im Blog gibt es bereits unzählige kostenlose Videos, Informationen und Tutorials. Wenn Dir das noch nicht reicht, ist ein Training genau das richtige für Dich! Die folgenden Trainings haben den Vorteil, dass immer von Anfang an gestartet wird und Du ohne Vorwissen teilnehmen kannst.