Ivona TTS Modul

Das ist die Ausgabe des Strings:

Tuesday 8. March

Und das die meines PI´s

pi@raspberrypi ~ $ date
Di 8. Mär 12:18:00 CET 2016

Ich habe nach der umstellung der LOCALE IPS und den Rapsi auch neu gestartet. Noch eine Idee was ich tun kann?

Verrückt, dein System steht richtig, aber IPS anscheinend nicht :confused:

Hallo,

ACHTUNG!

„pi@raspberrypi“ bedeutet, dass Du mit dem Benutzer pi angemeldet bist, nicht mit root!

Führ das mal mit root aus (z.B. über „sudo“ oder vorher ein „su -“), denn IPS läuft als root und jeder Benutzer hat sein eigenes environment!

Gruß,
Thorsten

DANKE!!

Das war es. Die LOCALE im root umstellen :slight_smile:

Läuft jetzt alles.

Tag gerettet von euch beiden :slight_smile:

Flo

Ja momentan kommt das total häufig vor. Ich starte mal IPS neu, vielleicht liegt da drin der Fehler.

EDIT: ändert sich nichts

Hi,

komisch, kommt bei mir nie vor. Und ich verwende die PlayFiles Funktion täglich.

Poste bitte mal in dem Sonos Thread Deinen Aufruf, mit dem was vorher und nachher passiert.

Gruß,
Thorsten

Edit: Doch noch eine Idee: Was ist den 27869 für eine Instanzt? Ist as evtl. Teil eines Stereo Paars?

Hallo,

tolles Modul, passt und werkelt

Hallo zusammen,

ich spiele gerade auch etwas mit dem Modul.
Kann mir jemand sagen, wie ich die erstellte mp3 in ein Mediaobject bekomme?

Die Idee ist einen Text im Webfront auszugeben. (WFC_AudioNotification)
Das System läuft auf einer Symbox

Gruß
Isi

Hallo zusammen,

Habe jetzt schon stundenlang mit dem Modul herumprobiert und bekomme leider nicht das hin, was ich will.
Wie viele möchte ich einen Text als MP3 generieren und dann auf einer Sonos Box wiedergeben.

Allerdings scheitere ich an der Konfiguration des Moduls:

Und zwar geht es um den Default Path, bzw. den Access Path.
Ich bekomme bei der Angabe von lokalen als auch Netzwerk-Pfaden (Synology Disk Station) immer wieder die Meldung:

... has to be located on a Samba share (e.g. //ipsymcon.fritz.box/tts/text.mp3) or a HTTP server (e.g. http://ipsymcon.fritz.box/tts/text.mp3)' 

Wie kann ich denn am schnellsten so ein Samba Share anlegen? Oder was habt ihr denn da so eingestellt?
Gibt es auch eine einfachere Möglichkeit?

Das Problem hatte ich auch. Hab einen Samba Share direkt auf dem Pi eingerichtet und die Pfade wie in Post Nr. 49 eingerichtet

Hallo,

das ist doch eigentlich ganz einfach.

„Default path“ ist das Verzeichnis, in dem standartmäßig dire Datei angelegt wird.
OK, der Name macht mittlerweile keinen Sinn mehr, da die Dateien nur dort abgelegt werden können… War ganz am Anfang mal anders.

„Access Path“ ist das prefix, unter dem das Verzeichnis im Netzwerk verfügbar ist.

Beispiel 1 (meine Konfiguration; IPS auf Raspberry):
Default path = „/var/lib/symcon/webfront/user/sonos/ivona/“
Access Path = „http://ipsymcon.fritz.box:3777/user/sonos/ivona

–> IVNTTS_saveMP3(55186 /[Ivona]/,„Blubber.“);

Beispiel 2:
Default path = „/data/sonos/ivona/“
Access Path = „//ipsymcon.fritz.box/sonos/ivona

Das Verzeichnis /data/sonos liegt lokal auf dem Raspverry und ist per Samba als „sonos“ freigegeben.

–> IVNTTS_saveMP3(55186 /[Ivona]/,„Blubber.“);

Beispiel 3:
Default path = „/mnt/synology/ivona/“
Access Path = „//synology.fritz.box/ivona

Das Verzeichnis „/mnt/synology/ivona“ ist von der Synology gemountet.
Damit ein Linux auf ein NFS Verzeichnis schreiben kann, muss es vorher gemountet werden…

–> IVNTTS_saveMP3(55186 /[Ivona]/,„Blubber.“);

  • legt die Datei „/mnt/synology/ivona/e8fad5b57fd8971605cee6d708906d1a.mp3“ an
  • hat als Rückgabe „//synology/ivona/e8fad5b57fd8971605cee6d708906d1a.mp3“
    Das kann ich dann direkt an das Sonos Modul übergeben und es wird abgespielt.

Beipiel 4 (windows)
Default path = „\synology\ivona“
Access Path = „//synology.fritz.box/ivona

–> Keine Ahnung ob das wirklich geht. Ich habe kein IPS auf Windows. Würde es aber erwarten…
Evtl. könnte das jemand mal bestätigen.

Ich würde zu Beispiel 1 raten, das ist meiner Meinung nach am einfachsten und auch am stabilsten…
Beispiel 3 8und 4), macht meiner Meinung nach keinen Sinn. Wozu Synology involvieren?!

Im Zusammenspiel mit Sonos wichtig zu verstehen: Dateien im Netzwerkverzeichnis müssen mit „//“ und nicht mit „\“ angegeben werden!

Gruß,
Thorsten

Habe ja einen Synology Disk Station und ich habe im Internet nun danach geschaut, wie ich mir ein Samba Share erzeugen kann. Bin den Anleitungen im Internet gefolgt und habe alles eingerichtet.
Allerdings habe ich keine Ahnung wie ich den Samba Share testen kann.

Wie sieht der eingerichtete Pfad aus?
Ich habs jetzt z.B. damit schon probiert …

//192.168.178.5/volume1/Temp
//192.168.178.5:volume1/Temp
192.168.178.5/volume1/Temp
192.168.178.5:volume1/Temp

Funktioniert jedoch nicht. Kann man auch von Windows aus den Zugriff testen, bzw. von Windows aus (z.B. Explorer) Daten lesen und schreiben?

Den Share hab ich ebenfalls zum testen in MacOS eingerichtet.

Ersteres Beispiel von Dir sollte eigentlich funktionieren wenn alles korrekt eingerichtet ist…

Ich hatte es mir der Syno auch versucht, habe es aber auch nicht zum laufen bekommen. Von daher hab ich den Share direkt auf dem Server eingerichtet. Kostet nicht viel Speicher, da durch das Script die Dateien eh gelöscht werden.

Hallo Thorsten,

Ist es möglich das Modul so zu erweitern, dass es ein Medienobjekt befüllen kann?
Dann könnte man eine Textausgabe am WebFront umsetzen.

Gruß
Isi

Hallo,

dafür sehe ich keinen Grund.
Ich habe es mal kurz ausprobiert, geht super:

  1. MP3 speichern und an Mediaobjekt übergeben:

$MediaID = IPS_CreateMedia(2);
IPS_SetMediaFile($MediaID, IVNTTS_saveMP3(38076 /*[Ivona_media]*/,"Erst MP3 speichern, dann weiter...") , true);
IPS_SetName($MediaID, "Test");
IPS_SetParent($MediaID, 19580 /*[Sonos]*/);

Vorraussetzung hierfür ist, dass der Parameter „Access Path“ leer ist, damit der Betriebsystempfad zurückkommt.

  1. MP3 Erzeugen und als Mediaobjekt speichern

$MediaID = IPS_CreateMedia(2);
$mp3 = IVNTTS_getMP3(38076 /*[Ivona_media]*/,"Geht das mit der Mediendatei?");
IPS_SetMediaFile($MediaID, 'test.mp3', false);
IPS_SetMediaContent($MediaID, base64_encode($mp3));
IPS_SetName($MediaID, "Test");
IPS_SetParent($MediaID, 19580 /*[Sonos]*/);

Beides funktioniert wunderbar.

Gruß,
Thorsten

servus zusammen,
ich bin jetzt total verwirrt…bei mir läuft es auch auf fehler…
Also ich hab die Symbox das Modul IVONA TTS Modul drauf Sonos Modul auch…sprach mp3 liegen auf einen Windows Homeserver 2011!
Modul default pfad ist „//IP-Sever/Sprachnachrichten/temp“
Modul access pfad ist „//IP-Sever/Sprachnachrichten/temp“

wenn ich nun das script rennen

SNS_PlayFiles(23612 /*[Hardware\sonos\Wohnzimmer Soundbar]*/ , array(IVNTTS_saveMP3(54495 /*[instanzen\Ivona]*/,"Geht das so?"),
                                                                     IVNTTS_saveMP3(54495 /*[instanzen\Ivona]*/,"Jepp!")) );

lasse dann geht auf folgenden fehler:
Warning: file_put_contents(//192.168.2.2/Sprachnachrichten/temp/4d43263a767a8eb105e1db791de7f507.mp3): failed to open stream: No such file or directory in /mnt/data/symcon/modules/SymconIvona/Ivona/ivona.php on line 32

Warning: file_put_contents(//192.168.2.2/Sprachnachrichten/temp/e6c2fae56dbd3d21a62c622078501024.mp3): failed to open stream: No such file or directory in /mnt/data/symcon/modules/SymconIvona/Ivona/ivona.php on line 32

Warning: Missing argument 3 for SNS_PlayFiles(), called in /mnt/data/symcon/scripts/45381.ips.php on line 3 and defined in /mnt/data/symcon/scripts/__generated.inc.php on line 535

Notice: Undefined variable: volumeChange in /mnt/data/symcon/scripts/__generated.inc.php on line 539

Fatal error: Uncaught exception ‚Exception‘ with message ‚Error during Soap Call: UPnPError s:Client 701 (ERROR_AV_UPNP_AVT_INVALID_TRANSITION)‘ in /mnt/data/symcon/modules/SymconSonos/Sonos/sonosAccess.php:552
Stack trace:
#0 /mnt/data/symcon/modules/SymconSonos/Sonos/sonosAccess.php(293): SonosAccess->processSoapCall(’/MediaRenderer/…’, ‚urn:schemas-upn…‘, ‚Play‘, Array)
#1 /mnt/data/symcon/modules/SymconSonos/Sonos/module.php(437): SonosAccess->Play()
#2 /mnt/data/symcon/scripts/__generated.inc.php(539): Sonos->PlayFiles(Array, NULL)
#3 /mnt/data/symcon/scripts/45381.ips.php(3): SNS_PlayFiles(23612, Array)
#4 {main}
thrown in /mnt/data/symcon/modules/SymconSonos/Sonos/sonosAccess.php on line 552

Musik auf Sonos geht aus…und ich sehe in der sonos app das er das erzeugte xxxxx.mp3 file abspielen will…sieht aus als hätte ips die rechte nicht,aber das Verzeichniss ist für alle offen…wenn ich selbst erzeugte mp3 dort ablege kann ich diese per ips auf der sonos abspielen lassen…bin rat los.

Hallo,

wilkommen in der Welt von Linux :smiley:

Dass man eine Netzwerkfreigabe direkt mit „//IP-Sever/Sprachnachrichten/temp“ ansprechen kann, und so auch etwas direkt dort hinschreiben oder lesen kann, ist eine Besonderheit von Windows. Das geht unter Linux so nicht.

Du musst zunächst das Verzeichnis mounten (zu vergleichen mit „Netzwerkpfad Mappen“ und kannst es dann praktisch wie ein lokales Verzeichnis behandeln.Wenn es von einer Synology kommt, solltest Du es aber als NFS (unix) und nicht CIFS (windows) mounten. Bringt mehrere Vorteile mit sich…

Aber diesbezüglich ist google euer Freund. Das gehört zu den Linux basics.

Es gibt noch etwas, das sich automounter nennt. Da muss dann aber konfiguriert sein, was wohin gemountet werden soll wenn auf das Verzeichnis zugegriffen wird. Eher zu komplex für diese Anwendung…

Gruß,
Thorsten

danke…
:banghead:
na mal sehen wie das auf der symbox hin bekomme…:rolleyes:

oder gibt es da eine alternative? du sprachst mal von default ablage…

evtl über die fritzbox mit einem usb stick…?

Hallo Thorsten

ich nasche gerade etwas von Deinem KnowHow, vielen Dank für das Modul! :o

Beispiel 1 wirft diesen Fehler aus:

Warning: Datei #/var/lib/symcon//tmp/6cbf13bb5d94b68a5c28f55fd727ae94.mp3 existiert nicht in /mnt/data/symcon/scripts/31671.ips.php on line 3

  1. MP3 Erzeugen und als Mediaobjekt speichern

$MediaID = IPS_CreateMedia(2);
$mp3 = IVNTTS_getMP3(38076 /*[Ivona_media]*/,"Geht das mit der Mediendatei?");
IPS_SetMediaFile($MediaID, 'test.mp3', false);
IPS_SetMediaContent($MediaID, base64_encode($mp3));
IPS_SetName($MediaID, "Test");
IPS_SetParent($MediaID, 19580 /*[Sonos]*/);

 

Beispiel Zwei habe ich um die Zeile:

WFC_AudioNotification(48050, ‚Gong!‘, $MediaID);

ergänzt. Das Script läuft fehlerfrei durch, im Webfront kommt dann im PopUp die Meldung:
Media #12345 not found.

Im Modul habe ich die Pfade leer gelassen. Mich macht das …/symcon//tmp/… stutzig.
Da scheint doch was im Pfad nicht zu stimmen? Ich habe die Symbox.
ist das ein Fehler auf der Symbox oder mache ich was falsch?

Loerdy

Hallo,

ich habe noch nie mit Medien Dateien gearbeitet und hatte beim ausführen wohl Glück.

Meine Dateien lege ich immer nach /var/lib/symcon/webfront/user/sonos/ivona.
Wenn Du den Default Path leer lässt, wird die Datei atomatisch nach /tmp gelegt. Anscheinend unterstützt das IPS nicht.
Die Datei muss unter /var/lib/symcon liegen…

hmpf… Genau so hatte ich das gemacht, und es ging.
kannst Du Dir mal die erstellte Datei anschauen? Ist die da und auch ein MP3?

hier noch mal mein code der 1:1 funktioniert:


$ivonaID    = 55186;
$webFrontID = 14414;

$MediaID = IPS_CreateMedia(2);
$mp3     = IVNTTS_getMP3($ivonaID,"So geht es bei mir...");

IPS_SetMediaFile($MediaID, 'test.mp3', false);
IPS_SetMediaContent($MediaID, base64_encode($mp3));
WFC_AudioNotification($webFrontID, 'Test', $MediaID);
IPS_Sleep(10000);
IPS_DeleteMedia($MediaID,true);

Dann wollte ich noch schlau sein, und habe am Ende noch ein „IPS_DeleteMedia($MediaID,true);“ dahintergehängt, und habe dann den gleichen Fehler bekommen wie Du…
Mit dem IPS_Sleep geht es dann wieder :wink:

Gruß,
Thorsten