TTS volume is fading away on SONOS devices

Hello there,

I’ve 2 SONOS devices (Beam and One).
I can use them to broadcast TTS

action: tts.google_translate_say
data:
  entity_id: media_player.salle_de_bain
  message: "{{ message }}"
  language: fr

First, French voice changed like a week ago and I hate it but I don’t know if there is anything I can do about that…
Second, and the most painfull: since forever, the sentence is never finishing itself

Like, if I send a message like “It is 8 o’clock, it is time to take your shower”
I’ll hear “It is 8 o’clo” then a faded “ck it is ti” then the rest can only be heard if you stick your hear to the speaker.

What should I do to have the full sentence to be loud and clear?

Some problem with Sonos Arc and different language…long sentences are always stripped at the end

I’d try doing it using the action described in the Sonos integration documentation and specifying a volume in the extra parameters.

I have 2 kids so HA is advertising the shower time, every day for one and every other day for the other. My sentence in French is “Maxime en premier” or “Chloé en premier”, before, I’m playing a sound but it is in a different action.

Even that small sentence can’t reach the end with a normal volume, that is insane.

I tried the anounce: true with the volume, still the same.

So, today what I do is:

  • Snapshot
  • Set volume
  • tts
  • Wait 5 seconds (because I thought that was the issue)
  • Restore snapshot

I’ve tried longer waiting time but nothing does the trick.

TTS creates an MP3 file and puts it in the config/tts directory. Sonos plays it by accessing that file. TTS also uses that as a cache directory, so if the same sentence is used again it just uses the cached file.

I’d try cleaning out that directory, try a new TTS, see if it sounds different, if not listen to the mp3 directly to see if the problem is the TTS generation of MP3 vs playback of MP3.

Since you are using snapshot and restore. You do not need to use the announce flag.

Also use are using tts.say. The Sonos documentation recommends doing it this way:

action: media_player.play_media
target:
  entity_id: media_player.sonos
data:
  announce: true
  media_content_id: >
    media-source://tts/cloud?message="I am very loud"
  media_content_type: "music"
  extra:
    volume: 80

Directory is empty, no mp3 created

action: media_player.play_media
target:
  entity_id: media_player.salon
data:
  announce: true
  media_content_id: >
    media-source://tts/cloud?message="Je parle très fort et très longtemps"
  media_content_type: "music"
  extra:
    volume: 80

This is not producing any sound, but in the meantime, I’ve added alexa integration for my echos and the sonos devices were discovered and added as alexa media player, it is not a solution but as a workaround, it is working

action: notify.alexa_media_olivier_s_sonos_beam
data:
  data:
    type: tts
  message: "Je parle très fort et très longtemps"

If your issue is the audio playback being cut off before the end, you can take a look at the Chime TTS integration, which can add a delay after the TTS as part of the MP3 file.

If you stand at the side of the sonos beam, you can hear the drop of volume level

After 1 second : 10% of the original volume
After 2 seconds : 1% of the original volume until the end

So it is not cut, but if you’re not close enough, it sounds like it