shortc-button

Amazon Alexa Text to Speech (TTS) übers Smart Home nutzen

Wir zeigen Dir, wie Du eine TTS-Funktion mit Amazons Alexa umsetzen und in Dein Smart Home integrieren kannst.

Eine Text-to-Speech-Funktion (TTS) haben wir bereits in einem vergangenen Tutorial über das Bose Soundtouch System umgesetzt. Heute wollen wir diese Funktionsweise auch mit Amazons Alexa verwirklichen. Dabei werden wir über einen HTTP-Aufruf die Alexa-Geräte mit unserer Smart Home Zentrale verbinden und ins Smart Home einbauen. So lassen sich danach Texte über die URL eingeben, die anschließend vom jeweiligen Gerät ausgegeben werden.

In diesem Beitrag haben wir uns von einer Anleitung von Alexander Noack von Lötzimmer inspirieren lassen, der bereits eine Amazon Alexa Fernsteuerung mit Shell umgesetzt hat. Da Shell jedoch nicht mit allen Smart Home Systemen kompatibel ist, werden wir die Umsetzung über PHP machen sodass man die Alexa Geräte einfach über einen HTTP Request steuern kann.

Unser Dank geht an:

Alexander Noack für seine Skriptvorlage sowie an openHab, die eine TTS Umsetzung mit Amazons Alexa erstmalig etabliert haben.

Die Einrichtung des Skripts

Um das PHP-Skript nutzen zu können, benötigst Du einen PHP Webserver. Wir nutzen dazu eine Einrichtung über eine Synology Nas Station. Du kannst aber auch einen Webserver über einen Raspberry Pi installieren.

Außerdem benötigt Du folgende ZIP-Datei, die zwei Dateien enthält. Die alexa.php und die cookies.txt, welche wir im Anschluss überschreiben werden. Diese beiden Dateien kannst Du nun in Deinem Webserver hochladen und extrahieren:

Hier findest Du die ZIP-Datei!

Hier findest du das Ganze via GitHub:
https://github.com/RalfsDev/AlexaTTS/tree/master

Wenn man die Datei nun aufruft, erscheint noch eine Fehlermeldung, da die cookies.txt-Datei noch nicht überschrieben wurde. Um das umzusetzen, benötigst Du ein passendes Add-on für Firefox oder Google Chrome. Wurde dieses passend installiert, wird Dir in Deinem Browser in der Übersichtleiste, rechts in der Ecke ein Icon angezeigt.

Als nächstes laden wir die cookies.txt-Datei unter der Amazon-Alexa-Seite herunter. Dafür müssen wir uns zunächst einloggen. Im Anschluss speichern wir diese Datei und ersetzen sie gegen die bereits auf dem Server gespeicherte. Wenn Du die Datei nun aufrufst, tauchen auch die passenden Echo-Geräte in der Übersicht auf.

Wie bereits erwähnt, ist die Session nicht dauerhaft aktiv. Wichtig ist, dass Du Dich nicht manuell ausloggst, dann würde die Datei beispielsweise ungültig werden. Um eine Gültigkeit der Session garantieren zu können, muss man regelmäßig (alle 4 bis 8 Wochen) die Cookies erneuern und kann so die Funktionalität aufrecht erhalten.

Alexa TTS nutzen

Das Skript ist nun funktionsfähig. Wenn Du nun einen HTTP-Request eines Echo-Geräts aufrufst, wird Dein Text über Alexa ausgegeben. Diesen HTTP-Aufruf kannst Du anschließend über Dein Smart Home System ansprechen.

Wir hoffen, Dir gefällt diese Funktion genauso gut wie uns. Sollte sich an der Login-Problematik noch etwas ändern, halten wir Dich hier bei uns natürlich auf dem Laufenden!

Wenn Du gerne wissen möchtest, wie Du Alexa Text-to-Speech über Dein Fibaro Home Center umsetzen kannst, haben wir hier ein passendes Video für Dich vorbereitet!

Update (28.04.2020)

Für alle, die Probleme mit den Cookies haben, am besten noch einmal bei alexa.amazon.com ausloggen.

Danach sollten alle bisher gesetzten Cookies für die Seite in den Einstellungen unter “Cookies und Website-Daten” gelöscht werden.

Bei Firefox geht man dann auf den Button “Daten verwalten” und im sich anschließend öffnenden Fenster nach “alexa” suchen und alle bisherigen Cookies löschen.

Anschließend neu einloggen. Hier darauf achten, dass der Haken bei “Angemeldet bleiben” gesetzt wurde. Dann die Cookies.txt neu herunterladen und in den alexa_tts-Ordner kopieren.

Anschließend sollte der “Your cookie information has expired”-Fehler nicht mehr auftauchen und die Alexa-Geräte gelistet werden.

Die mobile Version verlassen