GoogleTTS responding with 503 error (even after the URL fix)

Ben, are you using the windows service or the linux for your TTS? I am favoring the linux side since I only have 1 pc in my house and all my OH stuff is in my VM cluster on linux variants. Does the linux option support getting alternative voices? Or are we out of luck on that front?

I am using this on my Linux server. There is sorry for different languages, including US and UK English, but not for different voice modules as such, AFAIK.

Hey @ben_jones12

I’m having trouble time getting a piCorePlayer Raspberry Pi 1 Model B on wifi (either version 2.0 and 1.22) to play a local tts stream using your local tts service. When a rule triggers and runs the command squeezeboxSpeak(“corepiplayer”, “Hello this is a test”) the picoreplayer says the message “Adding TTS Announcement to Playlist” and I see the currently playing file is “TTS Announcement”, but I don’t hear it and sometimes it ends abruptly (1-2 seconds) and other times it stays as the currently playing media for 10-12 seconds. No matter the length of the tts.mp3, picoreplayer says its 1 second in length.

I tried serving the files/php with both lighttpd and apache hosted an a raspberry pi 2. The tts service works fine in a web browser and if I send the stream to a SqueezePlay player in windows. I tried both usb audio and analog and even sampled the tts mp3 to 44.1 and forced CBR 64 in case it was particular towards the sample rate of my DAC and a fixed bit rate rather than variable. Still the same result.

I am running OpenHAB 1.8 on a raspberry pi 2 (ethernet connected) where I’m also hosting the tts service. I included all of the headers you added to the wiki in the tts.php file, particularly the bitrate one. I’m using the tts.php exactly as it is in the latest wiki entry. Do you have any suggestions on what could be causing the issue using the squeezeboxSpeak action against a picoreplayer?

Thank you for any light you can shine on this.

Sorry, am away from home at the moment and will be for another week or so. It sounds very similar to the issue I was having initially, which was resolved by adding the bitrate header.

This is not my area of expertise sorry, I really had to fumble my way thru the PHP side of things. So unfortunately I don’t have any other suggestions!

I’m in a similar situation with PHP. I’m trying a few modifications to try and get my picoreplayer to behave. If I have any success I’ll report back.

Hi there,

I have made many tests with headers/encoding and I’m still facing problem with my piCorePlayer / HifiBerry AMP.
An Android player (with SqueezePlayer app) has no problem at all…

If I found something interesting, I’ll report back too :wink:

FYI, I have made a quick and dirty Docker recipe : https://github.com/lumachan/docker_local_tts

Thanks Ben for your work !

I do have the same issue with max2play image. All goes well when watching the logs, but never got sound output.
Opening the tts url from the browser does wirk.

Another option for those exploring local TTS w/ OpenHAB & MaryTTS:

Tried MaryTSS binding and server but liked voicerss much better, does this still work? I don’t see any errors, but don’t get sound. I did get sound with marytts so I think my system sound setup is correct.

P.S. How do I get more debug info? I tried:

<!-- TTS Logging -->	
	<appender name="TTSFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>logs/tts.log</file>
	    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
	    	<fileNamePattern>logs/tts-%d{yyyy-ww}.log.zip</fileNamePattern>
	       	<maxHistory>7</maxHistory>
	        </rollingPolicy>
	        <encoder>
	        	<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{30}[:%line]- %msg%n%ex{5}</pattern>
	        </encoder>
	</appender>
<logger name="org.openhab.io.multimedia.tts.googletts" level="TRACE" additivity="false">
<appender-ref ref="TTSFILE" />
</logger>

@sipvoip - I hear you :slight_smile: The audio quality of MaryTTS leaves much to be desired, but I really do like the fact its completely local (not to mention FOSS). In case you didn’t you didn’t already see, you can customize the voice model. I landed on ‘dfki-spike-hsmm’, which gives reasonably good results, and is much larger in size compared to most of the other available voices… But there are quite a few others to choose from.

The Web UI makes it quick & easy to play with it further, once the voice models are loaded on MaryTTS server:

http://MARYTTSSERVER:59125/

Hello,

In my current setup it is still working, you can test that you have a sound file in return to the call just by entering the following url
https://api.voicerss.org/?key=YOUR API KEY HERE&hl=fr-fr&src=“salut”

Try this. Its working for me
http://api.voicerss.org/?key=bapikey&hl=de-de&c=MP3&f=44khz_16bit_stereo&src="Heute%20wird%20es%20sonnig"

Hello @1technophile quick question on your voicerss config. My setup is as follows, and I can actually see the URL being passed to the Squeez Server ( LMS ), but for some odd reason, nothing ever plays…( audio wise ). My purpose is strickly a MQTT binding, and I don’t care about the lag, or conversion, but unfortunately I never get any audio… If I copy and paste this into a URL, I get exactly what I should receive, unfortunately, just no sound from my M2Play config… I can see that I get an error: " 2016-03-30 22:09:16.097 [WARN ] [squeezebox.internal.Squeezebox] - Sentence timed out while speaking! " and not sure why…

OH.CFG:

# TTS URL to use for generating text-to-speech voice announcements
# the URL should contain one '%s' parameter which will be substituted
# with the text to be translated
# (defaults to Google TTS service using the URL below)
#    http://translate.google.com/translate_tts?tl=en&ie=UTF-8&client=openhab&q=%s)
# (another TTS service is http://www.voicerss.org/api/ which requires an API key)
#    https://api.voicerss.org/?key=API-KEY&hl=en-us&src=%s
squeeze:ttsurl=https://api.voicerss.org/?key=6763fca3e2e4441e8fd5c5fa604d67d7&f=44khz_16bit_stereo&hl=en-us&src%s

Rule:

rule "Announce User is Home"
when
Item Light_GF_Kitchen_Island changed
then
squeezeboxSpeak("HomeAudio", "This is a giant long string of text I am testing with", 100, true)
end

Debug:

2016-03-30 22:08:45.057 [DEBUG] [m.r.internal.engine.RuleEngine] - Executing rule 'Announce Rob is Home'
2016-03-30 22:08:45.060 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a mixer volume 100
2016-03-30 22:08:45.061 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a playlist add https://api.voicerss.org/?key=API-KEY&f=44khz_16bit_stereo&hl=en-us&srcThis%20is%20a%20giant%20long%20string%20of%20text%20I%20am%20testing%20with
2016-03-30 22:08:45.074 [DEBUG] [inding.hue.internal.HueBinding] - Hue binding received command '75' for item 'Light_GF_Kitchen_Island_2'
2016-03-30 22:08:45.076 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a mixer volume 100
2016-03-30 22:08:45.159 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist load_done
2016-03-30 22:08:45.160 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a prefset server currentSong 0
2016-03-30 22:08:45.446 [DEBUG] [.o.b.d.i.DSCAlarmActiveBinding] - DSC Alarm Execute
2016-03-30 22:08:45.516 [DEBUG] [inding.hue.internal.HueBinding] - Start Hue data refresh
2016-03-30 22:08:45.551 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a status - 1 subscribe%3A10 tags%3AyagJlN player_name%3AHomeAudio player_connected%3A1 player_ip%3A192.168.0.160%3A57427 power%3A1 signalstrength%3A0 mode%3Astop remote%3A1 current_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with time%3A0 rate%3A1 mixer%20volume%3A100 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_cur_index%3A0 playlist_timestamp%3A1459390125.12733 playlist_tracks%3A1 digital_volume_control%3A1 remoteMeta%3AHASH(0x54e08d8) playlist%20index%3A0 id%3A-85077760 title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with year%3A0 remote_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with
2016-03-30 22:08:45.552 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> time: 0
2016-03-30 22:08:45.552 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> repeat: 0
2016-03-30 22:08:45.552 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> shuffle: 0
2016-03-30 22:08:45.553 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> currentrack: 0
2016-03-30 22:08:45.553 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> numbertracks: 1
2016-03-30 22:08:45.597 [DEBUG] [inding.hue.internal.HueBinding] - Done Hue data refresh.
2016-03-30 22:08:46.061 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a playlist index 0
2016-03-30 22:08:46.062 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a play
2016-03-30 22:08:46.805 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist index 0
2016-03-30 22:08:46.818 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a play
2016-03-30 22:08:47.134 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist cant_open https%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with PLAYLIST_NO_ITEMS_FOUND
2016-03-30 22:08:47.527 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a status - 1 subscribe%3A10 tags%3AyagJlN player_name%3AHomeAudio player_connected%3A1 player_ip%3A192.168.0.160%3A57427 power%3A1 signalstrength%3A0 mode%3Astop remote%3A1 current_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with time%3A0 rate%3A1 mixer%20volume%3A100 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_cur_index%3A0 playlist_timestamp%3A1459390125.12733 playlist_tracks%3A1 digital_volume_control%3A1 remoteMeta%3AHASH(0x5791b58) playlist%20index%3A0 id%3A-85077760 title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with year%3A0 remote_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with
2016-03-30 22:08:47.528 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> time: 0
2016-03-30 22:08:47.528 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> repeat: 0
2016-03-30 22:08:47.528 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> shuffle: 0
2016-03-30 22:08:47.530 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> currentrack: 0
2016-03-30 22:08:47.531 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> numbertracks: 1
2016-03-30 22:08:57.606 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a status - 1 subscribe%3A10 tags%3AyagJlN player_name%3AHomeAudio player_connected%3A1 player_ip%3A192.168.0.160%3A57427 power%3A1 signalstrength%3A0 mode%3Astop remote%3A1 current_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with time%3A0 rate%3A1 mixer%20volume%3A100 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_cur_index%3A0 playlist_timestamp%3A1459390125.12733 playlist_tracks%3A1 digital_volume_control%3A1 remoteMeta%3AHASH(0x51288d8) playlist%20index%3A0 id%3A-85077760 title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with year%3A0 remote_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with
2016-03-30 22:08:57.607 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> time: 0
2016-03-30 22:08:57.607 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> repeat: 0
2016-03-30 22:08:57.607 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> shuffle: 0
2016-03-30 22:08:57.607 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> currentrack: 0
2016-03-30 22:08:57.607 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> numbertracks: 1
2016-03-30 22:09:07.684 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a status - 1 subscribe%3A10 tags%3AyagJlN player_name%3AHomeAudio player_connected%3A1 player_ip%3A192.168.0.160%3A57427 power%3A1 signalstrength%3A0 mode%3Astop remote%3A1 current_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with time%3A0 rate%3A1 mixer%20volume%3A100 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_cur_index%3A0 playlist_timestamp%3A1459390125.12733 playlist_tracks%3A1 digital_volume_control%3A1 remoteMeta%3AHASH(0x59afc58) playlist%20index%3A0 id%3A-85077760 title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with year%3A0 remote_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with
2016-03-30 22:09:07.684 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> time: 0
2016-03-30 22:09:07.684 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> repeat: 0
2016-03-30 22:09:07.684 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> shuffle: 0
2016-03-30 22:09:07.684 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> currentrack: 0
2016-03-30 22:09:07.684 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> numbertracks: 1
2016-03-30 22:09:16.097 [WARN ] [squeezebox.internal.Squeezebox] - Sentence timed out while speaking!
2016-03-30 22:09:16.097 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a stop
2016-03-30 22:09:16.097 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a playlist delete 0
2016-03-30 22:09:16.097 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a mixer volume 100
2016-03-30 22:09:16.137 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a stop
2016-03-30 22:09:16.155 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist delete 0
2016-03-30 22:09:16.163 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a mixer volume 100
2016-03-30 22:09:16.169 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a menustatus ARRAY(0x59b56a8) add b8%3A27%3Aeb%3Aa9%3A28%3A5a
2016-03-30 22:09:16.176 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a prefset server currentSong
2016-03-30 22:09:16.448 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a stop
2016-03-30 22:09:16.448 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a playlist shuffle 0
2016-03-30 22:09:16.448 [DEBUG] [io.squeezeserver.SqueezeServer] - Sending command: b8:27:eb:a9:28:5a playlist repeat 0
2016-03-30 22:09:16.488 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a stop
2016-03-30 22:09:16.498 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist shuffle 0
2016-03-30 22:09:16.505 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a playlist repeat 0
2016-03-30 22:09:16.506 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a prefset server currentSong
2016-03-30 22:09:16.839 [DEBUG] [io.squeezeserver.SqueezeServer] - Message received: b8%3A27%3Aeb%3Aa9%3A28%3A5a status - 1 subscribe%3A10 tags%3AyagJlN player_name%3AHomeAudio player_connected%3A1 player_ip%3A192.168.0.160%3A57427 power%3A1 signalstrength%3A0 mode%3Astop remote%3A1 current_title%3Ahttps%3A%2F%2Fapi.voicerss.org%2F%3Fkey%3DAPI-KEY%26f%3D44khz_16bit_stereo%26hl%3Den-us%26srcThis%2520is%2520a%2520giant%2520long%2520string%2520of%2520text%2520I%2520am%2520testing%2520with time%3A0 rate%3A1 mixer%20volume%3A100 playlist%20repeat%3A0 playlist%20shuffle%3A0 playlist%20mode%3Aoff seq_no%3A0 playlist_tracks%3A0 digital_volume_control%3A1
2016-03-30 22:09:16.840 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> time: 0
2016-03-30 22:09:16.840 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> repeat: 0
2016-03-30 22:09:16.840 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> shuffle: 0
2016-03-30 22:09:16.840 [DEBUG] [b.s.internal.SqueezeboxBinding] - SqueezePlayer HomeAudio -> numbertracks: 0

Any ideas would be greatly appreciated…

Hi @shep,
I don’t see lines like this in your openhab.cfg file:

# Squeeze server
squeeze:server.host=192.168.1.129
# HomeAudio Squeezebox
squeeze:HomeAudio.id=b8:27:eb:a9:28:5a

Your ttsurl also seems to be missing an = after src.

Agree with @watou your missing the = into the url, it should be
squeeze:ttsurl=https://api.voicerss.org/?key=6763fca3e2e4441e8fd5c5fa604d67d7&f=44khz_16bit_stereo&hl=en-us&src=%s

After your test please delete this API key and get a new one as it is now public (should remain private).

1 Like

Thanks guys, works great now, I need to pay attention to more details… :wink: Thanks for the help.

2 Likes

Hello all, I’m having a similar problem with my setup here … setup local TTS setup (pico2wave, PHP) and this works fine with Squeezeboxspeak from a browser and also from my OH rules if I send the url to a squeezeplayer android device but not the squeezeplayer on a RPI2 (May2Play). I see the url on the LM server so its being sent to the RPI and I can copy this and it works again from a browser.

I see others have had this issue, did anyone resolve this?

Also is there a way of broadcasting the same message simultaneously to any SB device which is ON or all devices . apologies quite new to this squeeze stuff. :blush:

Cheers vbevan

I’ve been trying to get the voicerss method to work. I have OpenHAB running on a raspberry pi with a Bluetooth USB adapter. The BT adapter is paired with my stereo system. If I run a YouTube video on my RPI the sound is played over my speakers. But I can’t seem to get OpenHAB “say” commands to play over my speakers. I can see in my log that the command was issued. Any help would be appreciated. Is the Bluetooth binding necessary for this to work?

Bluetooth binding is not a prerequisite to get the tts working, did you try to put the url of voicerss with your key in a browser and got the voice file?

Just to update this thread, the thread below shows how to get Google TTS working.