Ivona TTS Modul

Puuuhhh…läuft! Vielen Dank. Irgendwas passte mit der Freigabe nicht. Hab jetzt eine neue erzeugt und es geht. Seltsame Kiste…

Aber eine Frage noch an Thorsten:

In Deinem Sonos Modul Thread beschreibst Du folgendes Script

SNS_Pause(31596 /*[Sonos_neu\Küche]*/);
SNS_ChangeGroupVolume(31596 /*[Sonos_neu\Küche]*/, 10);
SNS_PlayFiles(31596 /*[Sonos_neu\Küche]*/, Array( "//ipsymcon.fritz.box/sonos/temperatur/".GetValuefloat(23851 /*[Aussen\Garten\T: Außen\Temperature T]*/).".mp3"));
SNS_ChangeGroupVolume(31596 /*[Sonos_neu\Küche]*/, -10);
SNS_SetRadio(31596 /*[Sonos_neu\Küche]*/, 'SWR3');  

Wie müsste der Befehl für das Ivona Modul aussehen, damit die Temperatur ausgelesen wird?

Danke schon mal :slight_smile:

Hallo,

Nein! Musst Du nicht.
Meine Empfehlung wäre aber mittlerweile die Dateien ins WebFront Verzeichnis legen zu lassen und dann per http://… abspielen zu lassen…

Gruß,
Thorsten

Struktur ist jetzt folgende:

Default: /home/Benutzer/VerzeichnisfürSoundfiles
Access: IP.DES.PI´s/Home/Benutzer/VerzeichnisfürSoundfiles

Und den Acces Pfad hab ich auch in mein Sonos eingebunden

Ja, Sonos kann mittlerweile auch Dateien/Playlists direkt von einer „Webseite“ abspielen/streamen…
…aber (mag nur persönlicher Geschmack oder ein „Gefühl“ sein) mit der Freigabe finde ich es „sauberer“. Sonos greift so direkt auf das Share zu und streamt es nicht über einen WebServer…

Grüße,
Chris

Es läuft :slight_smile: Das ist die Hauptsache. Wenn mir jetzt noch jemand mit Post #22 helfen kann wär ich total happy :smiley:

Viele Grüße

Flo

Hi,

Uiuiui, geht das rund hier…
Access muss „//server.name/Path/to/file“ sein. „server.name“ kann natürlich auch mit der IP ausgetauscht werden.

Gruß,
Thorsten

Ist ja quasi so. Läuft :wink:

Na dann:
Die Temperatur kommt bei mir aus dem LCN Bus und liegt in der Variablen mit der ID 23851. Da steht dann also z.B. „1,9“ drin.
Irgendwann habe ich mir mal alle Ansagen von -30 bis 40 Grad in 0,1er Schritten erzeugen lassen. Die liegen jetzt alle auf meinem Share (z.B. „1,9.mp3“).
Und mit dem von Dir zitierten Schnipsel lasse baue ich einfach nur den Namen der richtigen Datei an.

Alles klar?

Gruß,
Thorsten

Ahhh! Also die Durchsage wird nicht dynamisch via Ivona erzeugt sondern sind alle schon fertig.

Wäre natürlich super wenn das gehen würde.

Dann spiel ich damit mal rum.

Aber, was ich ganz vergessen habe:

Vielen Dank für Deine Arbeit hier und mit dem Sonos Modul. Läuft Super!

Hat sich erledigt

Moin!

Ich habe gestern nach meinem Umzugsversuch das Ivona TTS (noch als script vom alt System) auf dem Pi unter Linux getestet.
Dort konnte ich aber einen deutlichen Qualitätsunterschied feststellen! Habt ihr da auch Probleme?

Als Beispiel lasse ich mir Morgens eine Ansage mit aktueller Aussentemperatur generieren. Das klang unter Windows echt super, so konnte Sie 5,2 °C wirklich gut aussprechen, aber unter Linux ist das grausam.

Hier mal als Beispiel (der February ist mein Fehler, da kam noch ein falscher Wert zurück):

https://dl.dropboxusercontent.com/u/2230943/tmp_guten_morgen.mp3

Muss da evtl. noch irgendwas angepasst werden!?

Hallo ChristianL.

Habe mir dass gerade mal angehört. Das mit dem Grad Zeichen hört sich bei mir auch komisch an.
War aber schon unter WinIPS so.

Aber das „zusammenrücken“ der Sprache ist ja spannend. Das passiert bei mir nicht.

Wie lautet den der Aufruf der es so generiert? Kann ich ja mal durch mein Ivona-Textscript durchschicken und mal anhören wenn Du magst.

Schönen Sonntag
lueralba

Hier mal zum Vergleich das ganze von meinem alten Windows-System:

https://dl.dropboxusercontent.com/u/2230943/tmp_guten_morgen_win.mp3

Generiert wird das ganze so:


include 'ivona_tts.ips.php';
....
	$a = new IVONA_TTS();
	$a->save_mp3("Guten Morgen! Heute ist ".$Wochentag." der ".date("j. F").", die aktuelle Außentemperatur beträgt ".$outtemp, "C:/IP-Symcon/media/TTS/tmp_guten_morgen.mp3");
...

–edit–

Wenn ich das ganze einfach mal live auf https://www.ivona.com generiere hört es sich auch vernünftig an! Komisch…

Hallo ChristianL

Schreib es mal so:

Aussentemperatur betraegt

Offensichtlich verpackt Linux die Umlaute/ß anders…

Schnelle Abhilfe:

$vorher=„äÄöÖüÜß“;
$nachher = strtr($vorher,array(‚Ä‘ => ‚Ae‘,‚Ö‘ => ‚Oe‘,‚Ü‘ => ‚Ue‘,‚ä‘ => ‚ae‘,‚ö‘ => ‚oe‘,‚ü‘ => ‚ue‘,‚ß‘ => ‚ss‘));
echo $nachher;

Gruß
lueralba

Hallo,

ich habe mal date() ersetzt, dann ist es zumindest mal auf Deutsch.


IVNTTS_saveMP3(55186 /*[Ivona]*/,"Guten Morgen! Heute ist ".strftime("%A der %e. %B").", die aktuelle Außentemperatur beträgt 15,3° C");

ergibt dann dieses MP3:
http://www.kugelberg.de/secret/309f0fa5a7473299b9e13fd866d17e1b.mp3

Das hängt bestimmt davon ab, wie Du die locales auf dem Rasperry konfiguriert hast.

print system("env");

ergibt bei mir


OLDPWD=/
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=de_DE.UTF-8
PWD=/var/lib/symcon/scripts
PWD=/var/lib/symcon/scripts

Gruß,
Thorsten

Hi Thorsten,

das passt bei mir so weit:


OLDPWD=/
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
LANG=de_DE.UTF-8
PWD=/var/lib/symcon/scripts
PWD=/var/lib/symcon/scripts

Ich werd es gleich einfach mal mit dem Modul testen, vielleicht wirkt das ja :wink:

Okay, mit dem installierten Modul klingt es wie gewohnt! Tiptop.
Muss also an dem script gelegen haben…

Jetzt habe ich allerdings ein weiteres Problem. Früher habe ich die mp3 mit Ilona erstellt, unter einem bestimmten Namen gespeichert und dann mit der Mediaplayer Instanz direkt wieder abgespielt.

Das haut ja so nun nicht mehr hin. Wie bekomme ich das denn jetzt unter Linux am besten gelöst?
Als Mediaplayer „Ersatz“ habe ich mplayer installiert, damit kann ich wunderbar files vom filesystem wiedergeben.

Versuche ich das aber nun mit dem Ivona-Modul haut das nicht hin:


system("mplayer --af=volume=-20" (IVNTTS_saveMP3(42182,"Guten Morgen! Heute ist ".$Wochentag." der ".strftime("%e. %B").", die aktuelle Außentemperatur beträgt ".$outtemp,"")));

Hat jemand einen Plan für mich?

Hallo,

sehr gut :smiley:

[QUOTE=ChristianL;284914]
Jetzt habe ich allerdings ein weiteres Problem. Früher habe ich die mp3 mit Ilona erstellt, unter einem bestimmten Namen gespeichert und dann mit der Mediaplayer Instanz direkt wieder abgespielt.

Das haut ja so nun nicht mehr hin. Wie bekomme ich das denn jetzt unter Linux am besten gelöst?
Als Mediaplayer „Ersatz“ habe ich mplayer installiert, damit kann ich wunderbar files vom filesystem wiedergeben.

Versuche ich das aber nun mit dem Ivona-Modul haut das nicht hin:


system("mplayer --af=volume=-20" (IVNTTS_saveMP3(42182,"Guten Morgen! Heute ist ".$Wochentag." der ".strftime("%e. %B").", die aktuelle Außentemperatur beträgt ".$outtemp,"")));

Hat jemand einen Plan für mich?[QUOTE=ChristianL;284914]

Klar, Du musst das nur richtig konfigurieren.

Trage bei „Default Path“ das Verzeichis ein, in dem gespeichert werden soll. Dort entsteht dass die Datei „/.mp3“. Wenn „Default Path“ leer ist, wird es in TEMP Verzeichnis (sys_get_temp_dir():wink: geschrieben.
Wenn Du AccessPath leer lässt, bekommst Du von IVNTTS_saveMP3() genau diesen Pfad zurück.
Wenn sich der Rückgabe Pfad unterscheiden soll, kannst Du das mit „Access Path“ steuern. Dann kommt „/.mp3“ zurück.

Oder kann es sein, dass Du einen „.“ vergessen hast, zwischen „mplayer --af=volume=-20“ und IVNTTS_saveMP3?


system("mplayer --af=volume=-20" . IVNTTS_saveMP3(42182,"Guten Morgen! Heute ist ".$Wochentag." der ".strftime("%e. %B").", die aktuelle Außentemperatur beträgt ".$outtemp,""));

Gruß,
Thorsten

Ne, der Punkt hat leider auch nicht geholfen.
Wenn ich das ganze aber vorher über eine Variable erstelle klappt es:


$tts=(IVNTTS_saveMP3(42182,"Guten Morgen! Heute ist ".$weekday." der ".$date.", die aktuelle Außentemperatur beträgt ".$outtemp,""));
system("mplayer --af=volume=-18 $tts");

Evtl. kommt der „system“ call nicht damit klar!?

Allerdings bekomme ich anschließend noch einen Fehler zurück


Terminal type `unknown' is not defined.

Zudem ist mir aufgefallen das die Löschfunktion nicht greift. Egal welche Zeit ich einstelle, der Timer unterhalb des scripts bleibt immer bei 300 sek.!?
Und auch wenn das script ausgeführt wird, sind meine Dateien anschließend immer noch da…

Würde er eigentlich, wenn es löscht alle Dateien in dem Pfad löschen oder nur die selbst erstellten?