[SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

[SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

PollyTTS ist eingebunden und say () Befehle laufen zuverlässlich via default WebAudio Kanal.

Sonos ist eingebunden (via Sonos.Thing und Sonos.Items, nicht via GUI, da ich da dort kein notification volume setzen kann) und ist online.
Thing:

Code: Alles auswählen

Thing sonos:CONNECTAMP:EZ_Sonos [udn="RINCON_000E58DA829401400", refresh=60, notificationVolume=50] 

Code: Alles auswählen

Group EZ_Sonos (Sonos)

Player EZ_Sonos_Control                 "Control"                   <sonos_control>      (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:control"}
String EZ_Sonos_CurrentAlbum            "Album [%s]"                <sonos_album>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX00:currentalbum"}
String EZ_Sonos_CurrentArtist           "Artist [%s]"               <sonos_artist>       (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:currentartist"}
String EZ_Sonos_CurrentTitle            "Title [%s]"                <sonos_title>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX1400:currenttitle"}
String EZ_Sonos_CurrentTrack            "Track [%s]"                <sonos_track>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:currenttrack"}
Switch EZ_Sonos_Led                     "Led"                       <sonos_led>          (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX00:led"}
Switch EZ_Sonos_Mute                    "Mute"                      <sonos_mute>         (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:mute"}
String EZ_Sonos_NotificationSound       "Notification Sound [%s]"   <sonos_notification> (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:notificationsound"}
Dimmer EZ_Sonos_Notificationsoundvolume "Notification Sound Volume" <soundvolume>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_0XX1400:notificationvolume"}
String EZ_Sonos_State                   "State [%s]"                <sonos_state>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX00:state"}
Switch EZ_Sonos_Stop                    "Stop"                      <sonos_stop>         (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX00:stop", autoupdate="false"}
Dimmer EZ_Sonos_Volume                  "Volume"                    <soundvolume>        (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:volume"}
String EZ_Sonos_ZoneName                "Zone Name [%s]"            <sonos_zone>         (EZ_Sonos)            {channel="sonos:CONNECTAMP:RINCON_XX400:zonename"}
Sitemap (wird angezeit im Browser, keine Errormeldung, aber auch keine Inhalte)

Code: Alles auswählen

sitemap Sonosvat label="Musik"
{
		Frame label="Sonos Esszimmer" {
			Default item=EZ_Sonos_Control
			Slider  item=EZ_Sonos_Volume
			Switch  item=EZ_Sonos_Mute
			Switch  item=EZ_Sonos_Led
			Text    item=EZ_Sonos_CurrentTrack
			Text    item=EZ_Sonos_State
		}
} 
bundle:list

Code: Alles auswählen

240 | Active   |  80 | 2.2.0.201712061958     | PollyTSS Voice Service
241 | Active   |  80 | 0.10.0.b1              | Sonos Binding

Say() in eine rule eingebunden (in dieser Rule klappt die Ausgabe an default spreaker, also ohne die beiden hinteren Argumente)

Code: Alles auswählen

say("Die Kinder haben den Eisschrank offengelassen", "pollytts:Marlene", "sonos:CONNECTAMP:EZ_Sonos")
Debug mode, wenn ich den Befehl auslöse:

Code: Alles auswählen

17:18:46.086 [DEBUG] [ice.pollytts.internal.PollyTTSService] - Synthesize 'Die Kinder haben den Eisschrank offengelassen' in format AudioFormat [codec=MP3, container=NONE, bitDepth=16, bitRate=64000, frequency=22050]
17:18:46.117 [DEBUG] [ice.pollytts.internal.PollyTTSService] - voice UID: 'pollytts:Marlene'   voice Label: 'Marlene'  voice Locale: de_DE
17:18:46.133 [DEBUG] [api.CachedPollyTTSCloudImplementation] - PollyTTS cache cleaner lastdelete 3378685
17:18:46.133 [DEBUG] [ice.pollytts.internal.PollyTTSService] - Audio Stream for 'Die Kinder haben den Eisschrank offengelassen' in format AudioFormat [codec=MP3, container=NONE, bitDepth=16, bitRate=64000, frequency=22050]
Warum sehe ich in der Sonos Sitemap keine Inhalte (keine Errormeldung) und warum höre ich bei der Ausgabe keine Sprache über Sonos?
Zuletzt geändert von AlcedoAttis am 18. Mai 2018 13:17, insgesamt 1-mal geändert.

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: PollyTTS via Sonos gibt keine Sprache aus

Beitrag von udo1toni »

Da Du die udn schon im Thing stehen hast, könnte ich mir vorstellen, dass diese Information nicht extra im channel mit angegeben wird. Ich hab aber von Sonos mangels passender Hardware keine Ahnung.
Allerdings gibt es einen zuverlässigen Weg, die korrekte Channelbezeichnung zu finden. Schau einfach in Paper UI nach. Auch per things Datei erstellte Things tauchen dort in der Konfiguration auf, so dass Du auch die Channel dort mit items verknüpfen oder deren Bezeichnung ablesen kannst. Umkonfigurieren des Things geht logischerweise nicht.

Was die say() Action betrifft, kannst Du einen, zwei oder drei Strings übergeben. Der erste String ist das, was gesagt werden soll. Der zweite String ist die Information, welche Stimme dafür verwendet werden soll (je nach eingesetztem Dienst). Der dritte String ist nur unter MacOS wirksam und ändert das Device.
Parallel lässt sich da aber nichts verteilen. Da ich bisher noch gar keine Sprachausgabe verwende, habe ich keine Ahnung, wie das dann genau funktioniert, ob man die Meldung mehrfach schicken muss, oder ob man auf andere Weise die Audiosink umschalten muss?

Schau vielleicht mal etwas intensiver in die Dokumentation, die ist echt erhellend ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

Re: PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

Hi, hab die udn herausgenommen und im Channel den Namen eingetragen.
In der PaperUI ist der Player online und angelegten alle channels sind mit den Items verbunden. Das passt.

Ich nutze WIN10, also darf ich den 3. String bei say () wohl nicht nutzen. Wie kann ich denn die Audiosink ggf. vor dem Say () Kommando umstellen?

AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

Solved:
Sonos Thing in PaperUI anlegen und nicht als xxx.thing
Items manuell verbinden
OH neu starten (!! Sonst bleibt Sonos offline)
Notification volume hochsetzen, steht auf 0 beim Neustart

Wie schon geschrieben von @udo1toni funktioniert leider im say() befehl nur der default sink und keine Angabe des AudioSinks im say () Befehl. Muss mal schauen, wie ich das vor der Ausgabe setzen kann o.ä.

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von udo1toni »

Und wie hörst Du über Sonos eine Notification?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

udo1toni hat geschrieben: 18. Mai 2018 15:56 Und wie hörst Du über Sonos eine Notification?
Als Sprache und Stimme "Marlene". Von der Qualität OK, etwa mit der Ausgabestimme von Alexa zu vergleichen (ist ja beides Amazon, ich vermute da liegt der gleiche Engine dahinter).

Was gerade noch nicht funktioniert ist der 2. und 3. String im say() command - hier suche ich nach einer Lösung, wie ich auch andere Sonos-Geräte ansteuern kann, die nicht als Default in der Paper UI definiert sind.

Siehe auch https://community.openhab.org/t/say-iss ... ytts/45157

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von udo1toni »

Ich wollte eigentlich eher wissen, was Du tun musstest, damit Notifications auf Deinem Sonos landen :)


Ach so... eigentlich ergibt sich das ja aus Deinem Posting... Du hast das Sonos als Default Senke gesetzt...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

Ja, Sonsos als default audioSink. Funktioniert sehr zuverlässig. Ich setze nur das notification volume vorher noch (als item definiert). Hier mal ein nur halb sinnvolles Bsp, das ich zum Üben genutzt habe (Exec binding liefert Garagenwert mit cron und TTS):

Code: Alles auswählen

rule "Talk Garage"

when
    Time cron "0 0/10 20-23 * * ?"
then	
     if (TorExecExitOutput.state == "OFFEN")
   {
		sendCommand(EZ_Sonos_Notificationsoundvolume, 25)
		say("Hallöchen ! Die Garage steht noch offen")
	}	
end 

AlcedoAttis
Beiträge: 10
Registriert: 13. Mai 2018 20:10
Answers: 0

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von AlcedoAttis »

@udo1toni, siehe auch hier

https://community.openhab.org/t/solved- ... s/45157/11
udo1toni hat geschrieben: 17. Mai 2018 19:42 Da Du die udn schon im Thing stehen hast, könnte ich mir vorstellen, dass diese Information nicht extra im channel mit angegeben wird. Ich hab aber von Sonos mangels passender Hardware keine Ahnung.
Allerdings gibt es einen zuverlässigen Weg, die korrekte Channelbezeichnung zu finden. Schau einfach in Paper UI nach. Auch per things Datei erstellte Things tauchen dort in der Konfiguration auf, so dass Du auch die Channel dort mit items verknüpfen oder deren Bezeichnung ablesen kannst. Umkonfigurieren des Things geht logischerweise nicht.

Was die say() Action betrifft, kannst Du einen, zwei oder drei Strings übergeben. Der erste String ist das, was gesagt werden soll. Der zweite String ist die Information, welche Stimme dafür verwendet werden soll (je nach eingesetztem Dienst). Der dritte String ist nur unter MacOS wirksam und ändert das Device.
Parallel lässt sich da aber nichts verteilen. Da ich bisher noch gar keine Sprachausgabe verwende, habe ich keine Ahnung, wie das dann genau funktioniert, ob man die Meldung mehrfach schicken muss, oder ob man auf andere Weise die Audiosink umschalten muss?
Hat also nichts mit OS zu tun, geht bei richtiger Syntax :)

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: [SOLVED] PollyTTS via Sonos gibt keine Sprache aus

Beitrag von udo1toni »

Das spricht dann dafür, dass die Doku an dieser Stelle überholt ist...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten