Text2Speech mir Raspberry Pi3 und Debian Jessie mit OnBoardBluetooth

Begonnen von yellowpinky, 17 März 2016, 21:34:48

Vorheriges Thema - Nächstes Thema

yellowpinky

Hallo;
Ich möchte mein fhem vom Pi2 auf den Pi3 und  auf Debian 8 (Jessie) umstellen.
In DebianJessie wird aber Bluetooth, so wie ich es verstanden habe, als Alsa Device nicht mehr unterstützt sondern die Bluetooth Devices werden über bluetoothctl konfiguriert.
Abgesehen davon, dass ich es nicht geschafft habe, den Bluetooth Lautsprecher beim Neustart des Pi automatisch zu verbinden (ich muss connect immer von Hand ausführen !?) , schaffe ich es auch nicht ihn in Text2Speech einzubinden.
Hat das von euch schon jemand probiert ?
So habe ich mein Bluetooth konfiguriert:
[b]sudo apt-get install mplayer
sudo usermod -aG audio fhem
sudo apt-get install mp3wrap
sudo apt-get install lame
sudo apt-get install espeaksudo apt-get install bluetooth pulseaudio pulseaudio-module-bluetooth alsa-base alsa-utils blueman pavucontrol[/b]

[b]bluetoothctl[/b]
[bluetooth]# power on
[bluetooth]# scan on
[bluetooth]# pair <MAC des Lautsprechers>

[b]pulseaudio –start[/b]

[b]bluetoothctl[/b]
[bluetooth]# connect < MAC des Lautsprechers >


Wenn ich mit mplayer teste funktioniert der Sound:
mplayer -ao alsa:device=pulse http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi

mit fhem funktioniert es nicht.
#Text to Speech
define MyTTS Text2Speech pulse
attr MyTTS TTS_Language Deutsch
attr MyTTS TTS_UseMP3Wrap 1
attr MyTTS room Tests
attr MyTTS verbose 1


Daniel

Otto123

Hi Daniel,

hast Du mplayer unter jessie überhaupt "verzögerungsfrei" und ohne Fehlermeldung hinbekommen?
Daran scheitere ich eigentlich. Auch ohne Bluetooth, es dauert ein paar Sekunden bis der Sound gespielt wird und er wirft Fehlermeldungen.
Was sagt die Fehlermeldung von FHEM wenn Du verbose hochdrehst?

Ich setze mich morgen mal dran und versuche das nachzuvollziehen.

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

yellowpinky

Hallo Otto;

mplayer funktioniert bei mir unter Jessie fehlerfrei und es gibt auch kein Unterbrüche. Ich muss jedoch gestehen, dass ich keinen "Langzeittest" gemacht habe und ich ihn nur im Zusammenhang mit Bluetooth verwende. Der Pi 3 ist auch etwas schneller, was aber wohl nicht der Grund sein dürfte.
Für die Sprachausgabe versuche ich zur Zeit alle Möglichkeiten auszuloten, weiß aber noch nicht wo ich landen werden.
Zur Zeit im Test am Pi2:
Text2Speech mit Bluetooth, WebViewControl, TTS über Google
Noch angedachte Tests wenn ich Zeit habe:
Squeezy,   TTS lokal am Raspberry

Otto123

Wie schon gesagt, ich setze den mplayer heute mal noch auf dem Pi3 neu auf.
Mit Bluetooth generell würde mich stören, dass es auch immer etwas dauert bis die "schlafende" Verbindung neu aufgebaut ist. Diese Verzögerung hat man nicht wenn der Lautsprecher direkt  dransteckt.
Das ist meine Erfahrung bisher. Das spielt für Musikausgaben überhaupt keine Rolle, aber bei Text ist das störend. Ich will eben auch so etwas wie "Quittung", dass heißt ich drücke einen Knopf und brauche ein Signal.

Ich verwende Text2Speech seit 1,5 Jahren zu diversen Ansagen mit der Google Engine. Es gab vor einiger Zeit etwas Trouble mit der Google abfrage, aber jetzt läuft das außerordentlich gut. Unter Wheezy läuft der mplayer optimal unter Jessie bisher leider nicht.
Ich verwende Text2Speech sowohl lokal als auch remote an einem anderen Pi.

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

Otto123

Ich will mal einen Zwischenstand geben, ich habe heute ziemlich viel probiert. Aber das Ergebnis ist frustrierend.
mplayer läuft in der aktuellen Jessie UND auf dem PI 3 besser als bei meinem Versuch Anfang des Jahres auf dem PI B. Aber er lief auf dem PI B unter wheezy viel besser!
Ich bekomme BT gekoppelt und mplayer verwendet es vom System sogar als Standard Audio Ausgang.
Aber irgendwo auf der Strecke bei der Installation der Pakete für FHEM und der Installation FHEM an sich wird bluetoothctl "zerstört" dann geht die Kopplung mit BT und dem Lautsprecher nicht mehr.
Ich habe jetzt alles bestimmt 10 mal in verschiedenen Varianten neu installiert und bin derzeit etwas hilflos.

Mal sehen ob ich morgen eine neue Idee habe.

Gute Nacht
Otto

Update:
So jetzt ist zumindest eins klar: Der automatische Start von FHEM verursacht das Problem mit Bluetooth. Ich habe den Start jetzt auf manuell gestellt und siehe da: BT startet normal und automatisch verbinden zum Lautsprecher funktioniert auch. Allerdings ist er nicht mehr Standard Audio Ausgang
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

Intruder1956

#5
hallo Otto, ich habe mir gerade einen Bluetooth Lautsprecher gekauft.
Ich warte jetzt auf dein Blogeintrag um eine Sprachausgabe durch Fhem zu erzeugen ***hahaha***

Gruß Werner

EDIT: versuche gerade den Lautsprecher zu pairen  :-[
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

rip

+1
Warte auch sehnsüchtig :D
Danke!

Gesendet von meinem Mi-4c mit Tapatalk


Otto123

Naja ich bin immer noch dran. Ich versuche das Soundsystem von Linux zu verstehen - warum muss das so kompliziert sein  :'(

Also wer nur mal sound will, das hier geht nachvollziehbar:

Ausganglage großes Jessie Image vom 26.2.2016 und Raspberry PI 3
sudo apt-get update
sudo apt-get install pulseaudio pulseaudio-module-bluetooth # Ist nur nötig für Lautsprecher pairen. Maus und Tastatur geht sofort
sudo reboot  # ob das nötig ist weiß ich nicht
bluetoothctl # es kommt eine extra Konsole
BT Lautsprecher anschalten Pairingmodus
scan on # Der scan Vorgang muss sein, egal ob die MAC bekannt ist. Er muss die MAC mal sehen.
pair MAC # ne Weile warten, da müssen ein paar Ausgaben kommen
trust MAC
connect MAC
exit #bluetoothctl konsole

sudo apt-get install mplayer
und jetzt geht BT mit
mplayer http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi

sudo apt-get install libdevice-serialport-perl libwww-perl libio-socket-ssl-perl # Vorbereitung für FHEM
sudo apt-get install mp3wrap

nach einem sudo reboot muss ein erneutes
bluetoothctl
und dann connect MAC gemacht werden
dann geht mplayer wieder und BT ist default Audio Out
Wenn blos der BT Lautsprecher ausgeschaltet ist, wird nach dem Einschalten BT wieder automatisch verbunden.

speaker-test -t sine -f 440 -c 2 -s 1
funktioniert auch auf Bluetooth

Sobald FHEM installiert und gestartet wird geht das alles nicht mehr, da bin ich jetzt dran zu ermitteln...
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

Otto123

Also ich gebe jetzt auf. Hier noch in Kurzform meine Ergebnisse:
Ausgangspunkt Jessie Image 26.2.2016 Raspberry 3 + Bose Mini Soundlink
sudo apt-get update && sudo apt-get install pulseaudio pulseaudio-module-bluetooth mplayer
Jetzt reboot!
Pairing Dialog siehe Bild, dass muss in etwa so aussehen. Da muss man etwas Wartezeit drin haben!
(https://forum.fhem.de/index.php?action=dlattach;topic=50967.0;attach=48935;image)
Dann geht sofort so etwas über Bluetooth
mplayer http://1live-diggi.akacast.akamaistream.net/7/965/119435/v1/gnl.akacast.akamaistream.net/1live-diggi
aplay -Dpulse /usr/share/scratch/Media/Sounds/Animal/Bird.wav
speaker-test -t sine -f 440 -c 2 -s 1

Mit pacmd kann man sich die Sache anschauen und die Ausgabe zwischen BT und Soundkarte umschalten
pacmd list-sinks
pacmd set-default-sink 0

Leider alles nur für den user pi. Legt man einen neuen user an:
- kann man den in die Gruppe audio packen. Dann kann er Sound abspielen aber nicht über BT!
- Man kann ihn die Gruppe bluetooth packen, dann kann er das Tool bluetoothctl benutzen.
Nach dem Gruppe hinzufügen muss man neustarten, ich habe es zumindest nicht anders hinbekommen.

Der BT Lautsprecher wird meistens auch immer wieder automatisch verbunden. Zumindest wenn er wieder eingeschaltet wird. Wenn er beim reboot in den Pairing Modus geht wird es schwierig.

Insgesamt höre ich auch deshalb auf, weil für mich das ganze für FHEM unbrauchbar ist. Der BT Lautsprecher hat zwei Stufen standby, nach kurzer Zeit ist Stufe eins, er sieht aus wie verbunden. Wenn man jetzt einen Sound abspielt wird der Anfang verschluckt, der Text "Was ist denn hier los" wird bloß als "os" ausgegeben. Nach längere Zeit geht er komplett aus wenn er nicht bespielt wird, dann muss man ihn wieder einschalten. Zusätzlich hat man dann noch den Zeitraum für den reconnect.

Der automatische Start von FHEM (Standardinstallation) verhindert die Funktion von Bluetooth ziemlich. Wenn man den Start auf manuell stellt und irgendwann später startet geht BT ganz normal. Das ist wahrscheinlich auch so ein "Jessie" Phänomen, wo sich die Dienste beim parallelen Start gegenseitig rauskugeln. Die Konfiguration in raspi-config mit aufs "Netzwerk warten" hat da bei mir nichts gebracht.

Wenn noch einer eine Idee hat, warum alle User außer pi den BT Ausgang nicht "sehen" wäre das toll. Es interessiert mich natürlich. Ich habe wirklich viele Berechtigungen (Gruppen) und Konfigurationsdateien ausprobiert. Alles was man im Internet an Anleitungen findet funktioniert praktisch nicht. Ist immer ganz speziell auf eine (ältere) Version zugeschnitten.

Ich habe viel über PulseAudio gelernt aber nix gekonnt  :'(

Gruß Otto
Hier scheint die eigentliche Doku zu PulseAudio zu sein, aber auch die hat mir nicht geholfen
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

yellowpinky

Hallo Otto;

Das autoconnect funktioniert bei mir überhaupt nicht, und ich kann den BT Lautsprecher nur als root nach dem Neustart verbinden.
Das funktioniert wie gesagt so:
pulseaudio –start
bluetoothctl
[bluetooth]# scan on
[bluetooth]# connect <MAC>

Ich kann dann die Soundausgabe mit:
pactl set-default-sink 1
auf BT oder mit:
pactl set-default-sink 0
auf den HDMI schalten.
Unter dem user Pi oder fhem kann ich bluetoothctl zwar aufrufen, jedoch werden dann keine TastaturEingaben mehr angenommen.

LG
Daniel

Otto123

Hallo Daniel,

welche Version Jessie hast Du? Beim dem Image vor dem 26.2.2016 (war glaube ich vom 25.9.2015) war das genau so.
Witzigerweise geht bluetoothctl da nur nicht im Terminal, mit Tastatur und Bildschirm geht es.
Wenn Du FHEM auf dem Raspi hast geht es auch nicht.

Ich kann Dir nur sagen, so wie ich es beschrieben habe und nur exakt so, habe ich es mindestens 10 mal nachvollziehbar installiert. Und ich hatte auch viele Varianten wo es gar nicht ging.

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

yellowpinky

Hallo Otto;

Hab ich schon gelöst.
Funktioniert ab dem Moment ab dem man das erste Mal...
sudo bluetoothctl -a
eingibt.
Dann geht auch nur bluetoothctl
Ich kann zwar nun manuell mit connect <MAC> auf meine BT Lautsprecher (Raikko) verbinden.
Ich sehe ihn aber nicht mit..
pactl list sinks short
Als root funktioniert das !?

LG
Daniel

Otto123

wie gesagt, ging bei mir alles als pi und ohne sudo.
Aber ja, wenn man (warum auch immer) keinen Zugriff auf bluetoothctl hat dann geht die Version mit sudo und -a.

Ob das irgendeinen Sinn macht?

Ich habe den BT Speaker  immer nur als User pi gesehen!
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

carlos

Hallo,
Ich habe folgendes in /etc/dbus-1/system.d/pulseaudio-system.conf stehen:
<busconfig>

  <!-- System-wide PulseAudio runs as 'pulse' user. This fragment is
       not necessary for user PulseAudio instances. -->

  <policy user="root">
    <allow own="org.pulseaudio.Server"/>
    <allow send_destination="org.bluez"/>
    <allow send_interface="org.bluez.Manager"/>
  </policy>

  <policy user="pulse">
    <allow own="org.pulseaudio.Server"/>
    <allow send_destination="org.bluez"/>
    <allow send_interface="org.bluez.Manager"/>
  </policy>

  <policy context="default">
    <deny own="org.pulseaudio.Server"/>
    <deny send_destination="org.bluez"/>
    <deny send_interface="org.bluez.Manager"/>
  </policy>

</busconfig>

Damit geht das unter root besser, evtl sollte man hier noch fhem mit dazu nehmen.
Trozdem kriege ich keinen sound auf meine BT Lautsprecher.
Guß
Carlos
FHEM svn auf Intel NUC mit proxmox, 3 Raspberry Pi, signalduino, nanoCUL,  toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Otto123

Wenn ich die Theorie zu PulseAudio richtig verstanden habe:
PulseAudio ist ein Software Server der die Hardware Zugriffe quasi abstrahiert.
Es gibt den User pulse unter dem PulseAudio auf die HW (Alsa) zugreift. (Wobei Alsa auch schon eine Software ist, die den Zugriff auf die Hardware abstrahiert)
Es gibt die Gruppe pulse-access unter der offenbar der Zugriff auf PulseAudio geregelt wird?
Der Benutzer der PulseAudio verwenden will, muss eventuell in pulse-access sein - aber darf nicht in Gruppe audio sein.
Bei PulseAudio Einsatz soll nur pulse in der Gruppe audio sein und kein andere User!? (Bei Alsa und damit überhaupt was geht muss der User der Audio machen will, aber unbedingt in audio sein!)
Zumindest für pi geht bei mir alles!
Wenn ich einen zweiten Benutzer anlege und den mit den gleichen Gruppen wie pi ausstatte geht es für den nicht!
Wenn ich dem zweiten Benutzer zusätzlich pulse-access gebe geht es auch bloss nicht.
Vielleicht muss man pi in pulse-access stecken und aus audio rausnehmen!?
In den vielen conf Files die existieren (es gibt die, die carlos gepostet hat und mindestens "5" andere)  für jeden Benutzer rum zu ändern kann kein Konzept sein, da weigere ich mich!

Wenn man das mit den Usern und pulse-access macht wie oben beschrieben. Kann zwar pi immer noch alles, aber ein anderen user sieht nicht mal die Audio Ausgänge. So einfach war es nicht  :'( Offenbar muss man doch mehrere conf Files anpacken. Und offenbar bekommt der User conf Files als Kopie beim ersten Start die sich nie wieder von selbst aktualisieren. "System-wide PulseAudio" ist offenbar nicht per default und könnte ein Ansatz sein...

Ich wollte doch bloß einen Lautsprecher anstöpseln  :o

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