Hallo zusammen,
ich habe Titus gebeten sein Script (TTS mit Amazon / Ivona statt Google Translate) in ein Modul kippen zu dürfen, und hier ist es:
tkugelberg/SymconIvona · GitHub
Bei der Konfiguration kann man fogendes angeben:
Access und Secret Key bekommt man bei IVONA Text-to-Speech, wenn man sich registriert.
Language, Voice, Rate und Volume/Lautstärke dürften selbsterklärend sein.
Default Path ist das Verzeichnis, in das gespeichert werden soll. Wenn es nicht gepflegt wird, wird das Temp Verzeichnis verwendet.
Delete Files bedeuete, dass die erzeugten Dateien im „Default Path“, „Delete minutes after access“ minuten nach dem letzen Zugriff gelöscht werden.
Hierfür wird alle 300 Sekunden ein Script unter der Ivona Instanz eingeplant.
Wenn „Access Path“ ist für den Rückgabewert der erzeugten Datei wichtig.
Es gibt 2 Funktionen:
IVNTTS_getMP3(InstanceID; Text);
Hier kommt der inhalt des MP3 zurück und kann nach belieben weiterverarbeitet werden.
IVNTTS_saveMP3(InstanceID; Text);
Hier wird aus dem Inhalt des MP3 eine Datei erzeugt.
Sie wird im angegebenen Verzeichnis (bzw. Temp) mit dem „md3hash“.mp3 abgelegt. Falls die Datei schon existiert, wird sie nicht erneut erzeugt.
Die Rückgabe ist der Dateiname inklusive Pfad.
Falls ein „Access Path“ angegeben ist, wird dieser mit dem Dateinamen zurückgeliefert.
Dadurch kann man es z.B. direkt mit der „SNS_PlayFiles“ Funktion des Sonos Moduls verwenden:
SNS_PlayFiles(31596 /*[Sonos_neu\Küche]*/ , array(IVNTTS_saveMP3(55186 /*[Ivona]*/,"Geht das so?"),
IVNTTS_saveMP3(55186 /*[Ivona]*/,"Jepp!")) );
Probiert es mal aus, bei mir geh es gut.
Gruß,
Thorsten
Edit 31.12.2015: Vorraussetzung des lokalen PHP rausgenommen, da hash im IPS jetzt vorhanden ist.