Use any technique to perform TTS through Sonos devices, including via the media_player tiles on the front end and it does not play.
For example use the media_player tile, enter some text in the ‘Text to Speak’ dialogue and press the go icon. This makes a call to a TTS service, in my case Amazon Polly, and creates an MP3 file as expected. This appears to get sent to the device as the now playing changes, but no sound is heard.
The now playing on both ha media_player tile and the Sonos controller app shows the filename, whereas previously it would show the text being said (reads this from the MP3 tags).
Exactly the same behaviour when calling a service, e.g. tts.amazon_polly_say with appropriate data payloads, either manually or via automation scripts.
I can successfully play the created MP3 in Windows using any media player.
I can use the Windows ‘Cast to…’ and send it to my Sonos device, where it plays as expected, the media_player tile (and the Sonos controller app) display the actual text being played, again I assume read from MP3 tags.
It appears that the Sonos device will not play the TTS proxy URL passed to it. I can play the sound file in a Web browser using the URL so it doesn’t appear to be a permission thing.
I have checked base_url in both http and tts sections and they both point to the https:// domain and port on the certificate (LetsEncrypt). Internal DNS directs that domain to the private IP of the ha server.
I’m now at a loss as to what to try next, any help appreciated.
Thanks