Text2Speech gibt keinen Ton mehr aus (nach Upgrade von Jessie auf Stretch)

Begonnen von schenkl, 08 Juni 2020, 14:16:28

Vorheriges Thema - Nächstes Thema

schenkl

Hallo Liebe Forensmitglieder,

ich habe gestern mein Raspberry auf Stretch aktualisiert. Danach ging Text2Speech nicht mehr. Im Log erscheint der Fehler unten. Scheinbar mag der neue mplayer die bisherigen Optionen nicht (z.B. Sub-options for --vo and --ao were removed from mpv in release 0.23.0.).

Ich habe deswegen direkt in dem Perl-Modul 98_Text2Speech.pm hermugepfuscht und die Variablen $mplayerOpts und $mplayerAudioOpts auf "" leer gesetzt. Seit dem funktioniert Text2Speech wieder, d.h. gibt  korrekt Ton über den Klinkenstecker aus. Ich weiß aber nicht, ob das im Sinne des Erfinders ist. Was wäre der korrekte Weg den Fehler zu beheben?


# path to mplayer
my $mplayer               = 'sudo /usr/bin/mplayer';
#my $mplayerOpts       = '-nolirc -noconsolecontrols';
my $mplayerOpts       = '';
my $mplayerNoDebug    = '-really-quiet';
#my $mplayerAudioOpts  = '-ao alsa:device=';
my $mplayerAudioOpts  = '';


Error Log vor meiner Anpassung der 98_Text2Speech.pm Änderung:

2020.06.07 16:45:57 4: MyTTS: /usr/bin/mplayer -ao alsa:device=hw=0.0  -nolirc -noconsolecontrols -softvol -softvol-max 110 -volume 10 cache/79ada86e8413a5f0223b9eaa7379a3f9.mp3
2020.06.07 16:45:57 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:3
2020.06.07 16:45:57 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
Option ao: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
Error parsing option ao (option could not be parsed)
Setting command line option '--ao=alsa:device=hw=0.0' failed.


Otto123

Hi,

die Fehlermeldung hat meist recht :
ZitatSub-options for --vo and --ao were removed from mpv in release 0.23.0.
See https://0x0.st/uM for details.
...
Setting command line option '--ao=alsa:device=hw=0.0' failed.

Setze das attribute mplayercall so das es wieder passt.

Meine Meinung:
Oder nimm besser einen anderen player. Den mplayer habe die Entwickler die letzten Jahre immer kaputter entwickelt!
So habe ich das umgestellt, einfach auf der Seite nach mplayercall suchen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

schenkl

Hi Otto123,

wenn ich versuche die mp3 Dateien aus dem /opt/fhem/cache wiedrzugeben mit play statt mplayer wiederzugeben kommt folgende Meldung:
play FAIL formats: no handler for file extension `mp3'


Ich habe jetzt aber noch weiter auf Raspbian STRECH geupgradet, und dabei von einem Raspi 3 auf ein Raspi 4 gewechselt. Jetzt kommt tatsächlich keine Fehlermeldung mehr im FHEM log bei TEXT2SPEECH. Allerdings höre ich keinen Ton auf dem Lautsprecher. Wenn ich mit meinem eigenen User direkt die Dateien abspiele funktioniert alles einwandfrei. Allerdings nur mit Card 1 in der meiner .asoundrc.

pcm.!default {
        type hw
        card 1
}

Nun hat mein fhem User keine .asoundrc (der hat nicht mal ein Homeverzeichnis). Ich vermute es liegt daran. Kann ich das Attribut Card 1 dem mplayer irgendwie anders (z.B. beim Aufruf) mitgeben.

Hier noch die aktuelle Log-Ausgabe unter STRETCH:
2020.06.09 14:51:10 4: MyTTS: /usr/bin/mplayer    -softvol -softvol-max 110 -volume 100 cache/245705c0113dd947c236e3bef9d6b877.mp3
2020.06.09 14:51:10 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:duration Val:1
2020.06.09 14:51:10 5: MyTTS: readingsSingleUpdateByName: Dev:MyTTS Reading:endTime Val:00:00:00
Warning: option --softvol is deprecated and might be removed in the future (softvol is always active, and behaves as if --softvol=yes is always set).
Warning: option --softvol-max was replaced with --volume-max and might be removed in the future.
Playing: cache/245705c0113dd947c236e3bef9d6b877.mp3
[ffmpeg/demuxer] mp3: Estimating duration from bitrate, this may be inaccurate
(+) Audio --aid=1 (mp3)
AO: [alsa] 24000Hz mono 1ch s16
A: 00:00:00 / 00:00:01 (1%)
A: 00:00:00 / 00:00:01 (7%)
A: 00:00:00 / 00:00:01 (12%)
A: 00:00:00 / 00:00:01 (16%)
A: 00:00:00 / 00:00:01 (20%)
A: 00:00:00 / 00:00:01 (25%)
A: 00:00:00 / 00:00:01 (29%)
A: 00:00:00 / 00:00:01 (33%)
A: 00:00:00 / 00:00:01 (38%)
A: 00:00:00 / 00:00:01 (43%)
A: 00:00:00 / 00:00:01 (48%)
A: 00:00:00 / 00:00:01 (53%)
A: 00:00:00 / 00:00:01 (58%)
A: 00:00:00 / 00:00:01 (64%)
A: 00:00:00 / 00:00:01 (69%)
A: 00:00:01 / 00:00:01 (75%)
A: 00:00:01 / 00:00:01 (79%)


Exiting... (End of file)
2020.06.09 14:51:12 4: MyTTS: Es wurden alle Teile ausgegeben und der Befehl ist abgearbeitet.

schenkl

So jetzt habe ich das Problem selbst gelöst - wer lesen kann ist klar im Vorteil. Anscheinen hat sich durch die vielen Wechsel (Jeezy --> Stretch --> Buster --> Raspi 3 auf Rapsi 4). Die Reihenfolge der Soundkarten im System geändert (Card 1 statt Card 0).

Statt der lokalen .asoundrc die der FHEM-User nicht hat. Kann man eine globale /etc/asound.conf verwenden. Die wie folgt konfigurieren und das ganze ist gelöst (card 1):

pcm.!default {
        type hw
        card 1
}

Falls noch jemand Tipps zum Upgrade von FHEM auf ein Raspberry 4 braucht kann er sich gerne melden.

Otto123

wir reden von dem gleichen play ?
play --version
play:      SoX v14.4.2
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz