AWS Polly Modul (TTS)

Hallo GEMAG.

Anbei mal etwas zum Üben und verstehen:

Lies bitte unter https://www.symcon.de/forum/threads/33753-AWS-Polly-Modul-%28TTS%29?p=314090#post314090 die Einrichtung !

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>');

?>

Gruß
lueralba

Hallo!

Gestern noch das Modul angelegt und derzeit bin ich am Testen!
Ein kleines Problem habe ich!

Modul angelegt Parameter eingetragen:

Default Path: C:\IP-Symcon ts
Access Path: //192.168.1.47/IP-Symcon/tts/

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!

Mfg
Maxx

Keiner einen Plan? Ich bin Ratlos!

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

Morgen!

Wenn ich Polly neu anlege ist die Instanz Aktiv (schwarz) sobald ich beide Keys eingebe wird sie grau!

  1. AKIAIJ6WP3KI5MFSKXXX

  2. jpPx5WxqlNE+qxyZ7Sm4ZBOJMsHqpgPYI2oF+XXX

Beide Keys wurden von mir für das Forum leicht verändert!

Das bekomme Ich als Fehler!

13.07.2017 09:24:59 | PHP Exception | Class: Exception
Message: Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION)
File: C:\IP-Symcon\modules\SymconSonos\Sonos\sonosAccess.php
Line: 556

Mfg
Maxx

Hallo,

Polly scheint doch zu funktionieren, da die MP3 Datei erstellt wird. Meine Instanz ist auch hellgrau.

Die Fehlermeldung kommt ja von den Sonos Komponenten. Es muss also eher dort gesucht werden.

Hier wurde das schon mal im Sonos Modul-Thread besprochen:
Sonos Modul - Seite 41

Gruß
Christian

Hallo,

als deutsche Stimme gibt es nun auch noch „Vicky“.

Vielleicht könnte diese noch ins Modul aufgenommen werden.

Vielen Dank !!!

Gruß
Proxima

Hallo,

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?

Danke.

@Kugelberg:

Die Frage geht wohl eher an dich…

Ich habe mal die SSML Tags probiert, aber das erste ‚<‘ wird schon als „Kleiner“ gesprochen.
Kannst Du da helfen ?

Viele Grüße
lueralba

Hallo alle zusammen,

ich möchte Texte per Sonos ausgeben.
Ich habe eine SymBox.
Weiß noch einer was man bei
„Default Path“ und „Access Path“ eintragen muss?

Ich Vollidiot habe natürlich schon das IVONA Modul gelöscht.
Sonst hätte ich das von da kopieren können.
Aber das wäre ja zu einfach gewesen. :o

Für Eure Hilfe besten Dank.

Hallo alle zusammen,

mein Problem hat sich erledigt.

Die Antwort steht hier:

Hi,

von mir auch VIELEN DANK! :slight_smile:

Auch wenn Polly anstandslos funktioniert wäre mir trotzdem eine „Offline-Variante“ ohne dass irgendein Internetkonzern alle meine Texte kennt lieber :banghead:

Kennt irgendjemand ein (Windows-)Tool welches aus einem String eine MP3 macht?

Ciao
HerbertF

Hallo Thorsten,

bei mir läuft das Modul sehr gut.
Besten Dank für deine Arbeit!!

Hab auch umgestellt vom alten Ivona Skript auf das Polly Modul und funktioniert super. Vielen Dank dafür.

Gesendet von meinem ONEPLUS A3003 mit Tapatalk

Hallo,

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

Gruß,
Thorsten

Hallo Thorsten,

Ich verstehe deinen letzten Satz nicht.
Wäre XML schon heute möglich ?
(Bin unterwegs, kann grad nicht testen)

Ansonsten wäre ich für meinen Teil für eine SSML Variante zu begeistern, wenn deine Zeit und Lust es hergibt.

Ein schönes WE :slight_smile:
Gruss lueralba

Hallo,

ich habe mich doch dafür entschieden keine zweite Variante anzubieten.

POLLY_saveMP3(59146 /*[AWS Polly]*/,'<speak>Dies <break time="1000ms"/> ist nur ein test</speak>');

macht jetzt eine Pause.

POLLY_saveMP3(59146 /*[AWS Polly]*/,'Dies ist nur ein test');

funktioniert weiterhin.

Ich habe hinzugefügt, dass

"TextType": "ssml"

übergeben wird, wenn der auszugebene Text mit „<speak“ anfängt und mit „speak>“ aufhört.

So war es nur ein „if“, das ich hinzufügen musste.

Version 2.0 ist gerade hochgeladen.

Gruß,
Thorsten

Super genial :slight_smile:

Anbei ein paar Schnipsel zum Spielen und testen:

<?

	$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 :smiley:

lueralba

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.

Hallo Thorsten,

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!