AWS Polly Modul (TTS)

Habe ja versucht den JSON String folgendermaßen anzugeben:

SNS_PlayFiles(38951, '["(POLLY_saveMP3(17893, "<speak>Guten Morgen</speak>"))"]', 10);

Wahrscheinlich nicht richtig.
Wenn ich

SNS_PlayFiles(38951, '["//DS216-BUERO/docker/symconBETA/data/Sprachnachrichten/trockner.mp3"]', 20);

eingebe, wird die trockner.mp3 angesagt. Da Polly bei mir aber jedesmal eine neue Datei anlegt, habe ich ja keinen Dateinamen, den ich angeben könnte.

Grüße

Die Funktion „POLLY_saveMP3“ hat als Rueckgabewert den kompleten Pfad mit Dateiname.

Und wie kann ich das jetzt nutzen?

Probiere es mal so:

        $file = POLLY_saveMP3(17893, 'Guten Morgen');
        SNS_PlayFiles(38951, [$file], 20);

@bumaas ,
funktioniert leider auch nicht :confused:

Wie lautet denn die exakte Fehlermeldung?

Ich vermute, der SNS_PlayFiles Aufruf ist noch falsch. In der aktuellen Version erwartet die Funktion das Array jetzt in json kodierter Form.

Probiere es mal so:

$file = POLLY_saveMP3(17893, 'Guten Morgen'); 
SNS_PlayFiles(38951, json_encode([$file]), 20);  

Das war´s. Vielen, vielen Dank. :smiley:

Grüße,
Jürgen

Fatal error:  Uncaught Exception: Response from Ivona is no mp3: {"message":"Invalid SSML request"} in /var/lib/symcon/modules/AWSPolly/Polly/polly.php:105
Stack trace:
#0 /var/lib/symcon/modules/AWSPolly/Polly/polly.php(42): POLLY_TTS->get_mp3('<speak><amazon:...')
#1 /var/lib/symcon/modules/AWSPolly/Polly/module.php(90): POLLY_TTS->save_mp3('<speak><amazon:...', '/home/shares/ip...')
#2 /var/lib/symcon/scripts/__generated.inc.php(439): Polly->saveMP3('<speak><amazon:...')
#3 /var/lib/symcon/scripts/50160.ips.php(131): POLLY_saveMP3(26374, '<speak><amazon:...')
#4 {main}
  thrown in /var/lib/symcon/modules/AWSPolly/Polly/polly.php on line 105
Abort Processing during Fatal-Error: Uncaught Exception: Response from Ivona is no mp3: {"message":"Invalid SSML request"} in /var/lib/symcon/modules/AWSPolly/Polly/polly.php:105
Stack trace:
#0 /var/lib/symcon/modules/AWSPolly/Polly/polly.php(42): POLLY_TTS->get_mp3('<amazon:...')
#1 /var/lib/symcon/modules/AWSPolly/Polly/module.php(90): POLLY_TTS->save_mp3('<amazon:...', '/home/shares/ip...')
#2 /var/lib/symcon/scripts/__generated.inc.php(439): Polly->saveMP3('<amazon:...')
#3 /var/lib/symcon/scripts/50160.ips.php(131): POLLY_saveMP3(26374, '<amazon:...')
#4 {main}
  thrown
   Error in Script /var/lib/symcon/modules/AWSPolly/Polly/polly.php on Line 105

Aufruf:

$pfad1=POLLY_saveMP3(26374,"<speak><amazon:breath duration='long' phonation='soft' volume='default'/>".$uhrzeit."<break> ".$willkommen." ".$nombre."</speak>");  
$pfad2=POLLY_saveMP3(26374,"<speak>Hello</speak>");  
$pfad = POLLY_saveMP3(26374, 'Guten Morgen');

IPS_Sleep(3000);
SNS_PlayFiles(30832, json_encode([$pfad]), 25);

Vielen Dank!

Hallo,

Fatal error:  Uncaught Exception: Response from Ivona is no mp3: {"message":"Invalid SSML request"} in /var/lib/symcon/modules/AWSPolly/Polly/polly.php:105

→ das bedeutet, dass von Polly (oops, da steht ja noch Ivona…) die Fehlermeldung „Invalid SSML request“ anstelle eines mp3 kommt.

auch kommt das scheinbar vom

<speak><amazon:breath duration='long' phonation='soft' volume='default'/>".$uhrzeit."<break> ".$willkommen." ".$nombre."</speak>

Das würde ich mal genauer untersuchen…

Gruß,
Thorsten

Hi Thorsten,

ja du hattest wiedermal recht. Amazon muss da etwas verändert haben. Wie gesagt hat es ohne meine Veränderung noch bis Gestern funktioniert!

Der Fehler lag an:
<amazon:breath duration=‚long‘ phonation=‚soft‘ volume=‚default‘/> und <break>

Besten Dank! lg

Hallo,

hab ich immer :cool:

Gruß,
Thorsten

Habe jetzt aber noch ein anderes Problem:

Nach dem ekey fingerscan sollte es eine Willkommensdurchsage geben. Geht ja jetzt wieder dank deiner Hilfe.

Und nach 3 Sekunden sollte dann ein „Klassik - Healing“ Sender abgespielt werden.

Macht er aber nicht:



$radiolili = "Tropicalisima 104.5";
$radiochris = "Klassik Radio - Healing";

IPS_Sleep(3000);
switch ($nombre)
{ 
case ("Chris"): 
SNS_SetRadio(30832, $radiochris);
SNS_SetVolume(30832, 10);
SNS_Play(30832);  
break;  
case ("Lili"): 
//Musik für Lili
SNS_SetRadio(30832, $radiolili);
SNS_SetVolume(30832, 10);
SNS_Play(30832);  
break;

… und hat vor einigen Tagen auch schon funktioniert…
Idee?

Das hat mit dem Thread hier wohl nichts zu tun.

Wo wird denn $nombre gefüllt?

Ja, sorry… Habe soviele Baustellen, das mir alles durch einander kommt…

$nombre =GetValueString(30097);

Da würd ich mal auf Groß-/Kleinschreibung tippen.

„CHRIS“ ist nicht das gleiche wie „Chris“.

Gruß,
Thorsten

Danke, habe ich aber auch schon probiert. (Screenshot ist leider der Alte)
Funktioniert nicht!

Hallo Zusammen,

ich habe letzte Woche mein System von Win 7 auf Win 10 neu installiert und das IPS-Backup wieder eingespielt.
Irgendwie funktioniert jetzt Polly nicht mehr, keine Ahnung woran es liegt und bräuchte jetzt eure Hilfe.

Die MP3 sollen auf die NAS unter Sonos gespeichert werden.

Beim Sonos-Modul funktioriert das Abspielen von früher generierten Dateien.

$post 		= "//192.168.178.7/Sonos//Post ist da.mp3";
SNS_PlayFiles($IDSonos, json_encode(Array($post, $post)), 40);

Wenn ich jetzte eine Datei generieren möchte kommt ein Fehler

$Text = Polly_saveMP3(29854 ,"Das Flusensieb im Trockner reinigen");
15.05.2020, 23:38:06 | PHP | Error: Warning: file_put_contents(//192.168.178.7/Sonos/66ec9851e10e97c6affc18cfcc7f1005.mp3): failed to open stream: Invalid argument
   Error in Script C:\ProgramData\Symcon\modules\AWSPolly\Polly\polly.php on Line 43
  134 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
      in IPSLogger_PhpErrorHandler
   43 in modules\AWSPolly\Polly\polly.php (call file_put_contents)
   90 in modules\AWSPolly\Polly\module.php (call save_mp3)
  3811 in scripts\__generated.inc.php (call saveMP3)
    3 in scripts\37709.ips.php (call POLLY_saveMP3)

Als Default und Access-Path habe ich: //192.168.178.7/Sonos/

Wo liegt mein Fehler?

VG Alex

Dein Dienst läuft bestimmt noch als System Dienst. Dieser hat keinen Zugriff auf Netzlaufwerke.

paresy

Danke paresy
und wie kann ich das ändern?
Ich habe jetzt im IP-Symcon-Dienst den Haken eingeschaltet, aber das hat nichts gebracht.
Dienst.PNG

Ich steh irgendwie auf dem Schlauch.
Kannst du mir das bitte genauer erklären?

VG Alex

Update: Eine Anmeldung als Benutzer im Dienst direkt unter dem Ausschnitt den ich gepostet habe, hat leider auch nichts gebracht.

Update: Es hat jetzt doch geklappt, danke paresy. Ich habe den Dienst „nur“ beendet und neugestartet. Nach einem Neustart vom Server hat es funktionert :loveips:.

Hallo,

ich habe genau das gleich Problem. Wo finde ich aber diese Eigenschaften???