Ich hab gestern mal versucht mittels ‚BuildIn‘ Funktionalitäten von IP-Symcon (TTS_GenerateFile & WFC_AudioNotification) Sprachnachrichten an das WebFront zu ‚pushen‘.
Ich muss sagen, das funktioniert ganz gut.
-
‚Text To Speech‘ Instanz hinzufügen
-
‚Text to Speech‘ Instanz konfigurieren
Sollte keine Deutsche Sprache verfügbar sein, muss diese Installiert werden.
siehe z.B. http://www.wintotal-forum.de/f42/windows7-sprachausgabe-deutsch-97633/
Steffi gibt es hier. Unter Windows 7 32-Bit funktioniert ‚Steffi‘ problemlos. Für 64-Bit Windows Versionen müsst ihr Goolge bemühen …
- Untenstehendes Skript in eine Skriptdatei stecken
3.1. Im Skript die ObjectID der ‚Text to Speech‘ Instanz ($varIdTextToSpeechInstanz) anpassen
3.2. Im Skript die ObjectID des ‚Web Konfigurator‘ ($WebFrontConfigurator ) anpassen
sieht dann so aus:
und dann sollte es schon klappen …
<?
//Ansagetext zusammensetzen ...
$ansageText = "";
$value = 2.3; //GetValueFloat(25336);
$valueTxt = number_format( $value, 1, ',', '.');
$ansageText .= "Die aktuelle Außentemperatur auf der Nordseite ist " . $valueTxt . " Grad Celsius. ";
$value = 3.4; //GetValueFloat(30940);
$valueTxt = number_format( $value, 1, ',', '.');
$ansageText .= "Die Außentemperatur im Garten ist " . $valueTxt . " Grad Celsius. ";
$value = 21.8; //GetValueFloat(36379);
$valueTxt = number_format( $value, 1, ',', '.');
$ansageText .= "Die Wohnzimmertemperatur ist " . $valueTxt . " Grad Celsius. ";
//Sprachdatei mittels TTS_GenerateFile erzeugen (wav Datei wird erzeugt)
$mediaFile = "media/WebFrontSprachausgabe.wav";
$mediaFilePath = IPS_GetKernelDir() . $mediaFile;
$format = 23;
$objIdTextToSpeechInstanz = 54122 /*Text To Speech]*/;
TTS_GenerateFile($objIdTextToSpeechInstanz ,$ansageText,$mediaFilePath,$format);
//Sprachdatei in Media Library aufnehmen
$mediaId = @IPS_GetMediaIDByFile($mediaFile);
if($mediaId == 0) {
$mediaId = IPS_CreateMedia(2);
}
IPS_SetMediaFile($mediaId, $mediaFilePath, true);
//Sprachdatei von der Media Library per WFC_AudioNotification an das WebFront schicken
$WebFrontConfigurator = 30984;
if(isset($_IPS['CONFIGURATOR'])) { $WebFrontConfigurator = $_IPS['CONFIGURATOR']; }
$result = WFC_AudioNotification($WebFrontConfigurator, $ansageText, $mediaId);
if(!$result) {
IPS_LogMessage("AudioNotification","AudioNotification konnte nicht ausgeführt werden");
}
?>
Details:
$format -> Der Format Parameter bestimmt die Qualität der Wav Datei und somit beeinflusst er direkt die Größe der Datei
siehe Details unter http://www.ip-symcon.de/service/dokumentation/modulreferenz/text-to-speech/tts-generatefile/