[Gelöst] Sonos Speak - Probleme bei Umlauten

Begonnen von tfriedrich85, 15 August 2021, 22:00:34

Vorheriges Thema - Nächstes Thema

tfriedrich85

Hallo zusammen,

ich nutze Sonos Speak schon mehrere Jahre und seit kurzem gibts neue Probleme:

  • Wie hier https://forum.fhem.de/index.php/topic,121192.0.html beschrieben ist die Stimme langsam und klingt sehr "künstlich" / gibts mittlerweile die Möglichkeit eine andere TTS Engine zu verwenden?
  • Beim Ausgeben von z.B. Wetteransagen kommt das Modul mit Umlauten nicht mehr klar. Beispiel: Ich lasse mir aus dem Modul Wetter die den Text zum aktuellen Wetter zusammenbauen https://wiki.fhem.de/wiki/SONOS und sobald im Text ein Umlaut vorkommt, wird der gesamte Text nahezu unverständlich.
    Frage: Wisst ihr wie man bei einem Text string die Umlaute jeweils durch ae oe oder ue ändert? Das würde mir schon helfen, denn oe wird durch Sonos Speak als ö ausgesprochen.
Danke

Maui

#1
Ich hab grad mal den Standard bei Speak (google) getestet und ja, das ist wirklich schrecklich :D
Hab jetzt nicht weiter geguckt, aber gefühlt wird google da was umgestellt haben.
Ich würde einfach auf espeak bzw. gleich auf pico2wave umstellen, dann hast du auch gleich eine Offline-Fähigkeit, was in manchen Fällen sehr praktisch sein kann (in meinem Fall zb. wenn das Internet ausfällt kommt so trotzdem noch die Meldung, dass es weg ist und wann es wieder da ist)
EDIT: Das mit den Umlauten liegt wohl an dem Sonos Modul, also an dem Umgang mit dem Text für die URL.
Mit pico2wave ist das aber auch kein Problem, da du ja lokal den Text auf deinem Rechner erstellst.

Jamo

Hallo Friedrich,
das gehts so. In der 99_MyUtils.pm, in der subroutine, wo Du den Wettertext zusammenbaust:
$wettertext enthaelt dabei die Sprachausgabe, die Du nachher mit speak über Sonos ausgeben willst.
Hier werden alle umlaute in wettertext durch ae/ue/usw ersetzt.
my %umlaute    = ("ä" => "ae", "Ä" => "Ae", "ü" => "ue", "Ü" => "Ue", "ö" => "oe", "Ö" => "Oe", "ß" => "ss");
my $umlautkeys = join ("|", keys(%umlaute));
$wettertext=~ s/($umlautkeys)/$umlaute{$1}/g;
Bullseye auf iNUC, Homematic + HMIP(UART/HMUSB), Debmatic, HUEBridge, Zigbee/ConbeeII, FB, Alexa (fhem-lazy), Livetracking, LaCrosse JeeLink, LoRaWan / TTN / Chirpstack

Maui

Alternativ kannst du das Modul auch ein wenig anpassen.
Wenn du aus Zeile 4584 folgendes änderst, von

my $url = sprintf(SONOS_Client_Data_Retreive('undef', 'attr', 'SpeakGoogleURL', $SONOS_GOOGLETRANSLATOR_URL), SONOS_URI_Escape(lc($language)), SONOS_URI_Escape($text));

in

my $url = sprintf(SONOS_Client_Data_Retreive('undef', 'attr', 'SpeakGoogleURL', $SONOS_GOOGLETRANSLATOR_URL), SONOS_URI_Escape(lc($language)), SONOS_URI_Escape(SONOS_Latin1ToUtf8($text)));

Dann gehen Umlaute ohne das du den Text anpassen musst.

tfriedrich85

Zitat von: Maui am 16 August 2021, 21:48:20
Alternativ kannst du das Modul auch ein wenig anpassen.
Wenn du aus Zeile 4584 folgendes änderst, von

my $url = sprintf(SONOS_Client_Data_Retreive('undef', 'attr', 'SpeakGoogleURL', $SONOS_GOOGLETRANSLATOR_URL), SONOS_URI_Escape(lc($language)), SONOS_URI_Escape($text));

in

my $url = sprintf(SONOS_Client_Data_Retreive('undef', 'attr', 'SpeakGoogleURL', $SONOS_GOOGLETRANSLATOR_URL), SONOS_URI_Escape(lc($language)), SONOS_URI_Escape(SONOS_Latin1ToUtf8($text)));

Dann gehen Umlaute ohne das du den Text anpassen musst.

Hallo Leute,

Ich habe beide Lösungsmöglichkeiten getestet, sie funktionieren super!
Danke euch!

MadMax-FHEM

Zitat von: tfriedrich85 am 17 August 2021, 10:20:50
Hallo Leute,

Ich habe beide Lösungsmöglichkeiten getestet, sie funktionieren super!
Danke euch!

Dann nicht vergessen: exclude_from_pdate ;)

Oder: immer wieder nachpatchen (bis es evtl. übernommen wurde)...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Maui

Hab schon im sonos-thread nen patch zur Verfügung gestellt aber der Maintainer scheint nicht mehr sehr aktiv zu sein

shamal2008

Hallo Maui,

zuerst mal danke für deinen Patch - hab ihn angewendet, allerdings in Zeile 4854 (da dürfte bei dir ein Zahlendreher drin sein), FHEM restarted, leider ohne Erfolg. Das Sonos-Modul neigt bei mir sowieso immer wieder zum "ich vergesse, dass ich existiere" (soll heißen, die Player sind angeblich alle appeared, aber man kann nichts steuern)...

Gibts da noch einen Workaround?

Danke, Thomas
FHEM auf RasPiI 3+, MapleCUL 868+433MhZ, MAX! via CUL, LD686 LED-Controller, GHoma Plugins,, Shelly, ConbeeII + IKEA + Xiaomi, div. Infodienste & Google Assistant via FHEM;