Das Modul von Kugelberg musst Du unter „Kerninstanzen - Modules“ hinzufügen,
als Instanz in deinen Objektbaum (sonstige - Polly) hinzufügen (bei mir die ID16959).
Dann noch Einrichten (Accesskey und Secretkey ist bei AWS neu zu registrieren !).
Und zum guten Schluss noch ein Script welches die Zeit auf einem WFE ausgibt.
Das WFE muss dafür eine HTML-Box (bei mir die ID54517) haben.
<?
$timestamp = time();
$uhrzeit = date("H:i", $timestamp);
if (strpos( IPS_GetKernelDir(),":"))
{
//echo "Win";
$pfad=POLLY_saveMP3(16959 /*[x_Spielerchen und Tests\TTS AWS Polly]*/, 'Es ist jetzt '.$uhrzeit." Uhr");
}
else
{
//echo "Pi";
$pfad=POLLY_saveMP3(16959 /*[x_Spielerchen und Tests\TTS AWS Polly]*/, 'Es ist jetzt '.$uhrzeit." Uhr");
// '/var/lib/symcon/webfront/ vorn abschneiden
$pfad = str_replace ('/var/lib/symcon/webfront/' , '' , $pfad);
}
setvalue(54517 /*[WFE Kju\Info\Audio Out]*/, '<audio controls autoplay> <source src="'.$pfad.'" type="audio/mpeg"> Your browser does not support the audio element. </audio>');
?>
Wenn ich jetzt das Skript ausführe:
<?
SNS_PlayFiles(37249 /[Sonos\Sonos]/, array(POLLY_saveMP3(11902 /[Polly]/,„Test“),
POLLY_saveMP3(11902 /[Polly]/,„Test“)), 15);
?>
Was komisch ist das die Instanz Polly Grau und nicht Schwarz ist
Ich erhalte keine Fehlermeldung Juhu!
aber es wird auch nix ausgegeben
MP3 ist im Ordner vorhanden wenn ich dann aber rechtes klick mache und sage Wiedergabe auf Sonos wird der Text auf dem Sonos ausgegeben!
Hallo Maxx
die Fehlermeldung wird in der Log Datei stehen.
Du musst erstmal die Instance aktiv bekommen.
Geht den die Spachausgabe (siehe weiter oben) im WFE?
Gruss lueralba
ich scheitere hier noch an einem Problem mit Polly. Ich möchte zwischen bestimmten Sätzen kleine Sprechpausen einbauen.
Lt. Amazon-Doku wäre das ein Tag a´la <break time=„1s“/>.
Wenn ich den Tag direkt in den Text einfüge funktioniert es nicht: Beispiel:
$texttospeech = „Test <break time=„1s“/> Du hast keinen Text übergeben“;
Wenn ich den Tag in die Variable einfüge funktioniert esauch nicht: Beispiel:
$texttospeech = „Test „.<break time=„1s“/>.“ Du hast keinen Text übergeben“;
Kann mir hier jemand helfen, wie ich solche Tags reinbekomme oder wie ich sonst Sprechpausen einbauen kann?
ich bin mir bewusst, eine Fragen sind schon recht alt…
Das ist bei Polly leider sehr viel komplizierter.
Dann müsste man echt rumtricksen. Kannst ja mal in der Amazon Doku schauen wie das aussehen müsste… SynthesizeSpeech - Amazon Polly
–> also eher nicht.
Ich habe mal den Aktuellen Satz an Stimmen hinzugefügt.
Da ich den „TextType“ nicht übergebe, wird angenommen dass es sich um „plain text“ handelt. Das ist der Default.
„ssml“ muss man angeben.
Mit SSML hätte man noch viel mehr Möglichkeiten (z.B: auch Volume), hielt ich aber für übertrieben.
Braucht ihr das? Dann würde ich noch eine zweite Funktion mit SSML einbauen. Ansonsten müsste man den Text immer als „XML“ mitgeben: Using SSML - Amazon Polly
<?
$timestamp = time();
$uhrzeit = date("H:i", $timestamp);
// $pfad=POLLY_saveMP3(16959, "<speak>Es ist <break time='1s'/> jetzt ".$uhrzeit." Uhr</speak>");
// $pfad=POLLY_saveMP3(16959, "<speak><amazon:effect name='whispered'>Wenn du ein Geräusch machst, </amazon:effect> sagte sie, <amazon:effect name='whispered'>wird er uns hören.</amazon:effect></speak>");
// $pfad=POLLY_saveMP3(16959, "<speak>Prosody kann verwendet werden um die Art, wie sich Worte anhören, zu ändern. Die folgenden Worte sind <prosody volume='x-loud'> etwas lauter als der Rest der Passage.</prosody> Jeden Morgen wenn ich aufwache, <prosody rate='x-slow'> spreche ich ganz langsam und bewusstbis ich meinen Kaffee habe.</prosody> Ich kann auch die Tonhöhe meiner Stimme ändern mit prosody. Magst du <prosody pitch='+5%'> mit einer höheren Tonlage sprechen, </prosody> oder <prosody pitch='-10%'> ist eine niedrigere Tonlage gewünscht?</prosody></speak>");
$pfad=POLLY_saveMP3(16959, "<speak><prosody volume='+6dB'> Lauter Text. </prosody> <prosody volume='-6dB'> Leiser Text. </prosody> </speak>");
$pfad = str_replace ('/var/lib/symcon/webfront/' , '' , $pfad);
// (41511 ist eine Stringvariable Typ:HTML)
setvalue(41511 /*[WFE Zählerstände\Audio]*/, '<audio controls autoplay> <source src="'.$pfad.'" type="audio/mpeg"> Your browser does not support the audio element. </audio>');
?>
Bitte auf die Gänsefüsse und Hochkommata achten…
Einen schönen Abend und
Dir Thorsten tausend Dank für Deine Arbeit
Danke für die Schnippsel zum testen. Alles im allen ist das ja gut nutzbar.
$pfad=POLLY_saveMP3($PollyID, "<speak>Prosody kann verwendet werden um die Art, wie sich Worte anhören, zu ändern. Die folgenden Worte sind <prosody volume='x-loud'> etwas lauter als der Rest der Passage.</prosody> Jeden Morgen wenn ich aufwache, <prosody rate='x-slow'> spreche ich ganz langsam und bewusst bis ich meinen Kaffee habe.</prosody> Ich kann auch die Tonhöhe meiner Stimme ändern mit prosody. Magst du <prosody pitch='+5%'> mit einer höheren Tonlage sprechen, </prosody> oder <prosody pitch='-10%'> ist eine niedrigere Tonlage gewünscht?</prosody></speak>");
Das Beispiel hört sich imho aber doch sehr künstlich und nach Computerstimme an.
Mir ist gerade aufgefallen, dass mein System ziemlich viel Daten zwischen Amazon und IPS verschiebt.
Kannst du das erklären?
Mitschnitt ist über ca. 5 Minuten ohne einen Text auszugeben!