Pause between TTS sentences shorter since Piper update to version 2.1.1

I am using the Wyoming integration with Piper to create local TTS messages.
As voice I am using the Dutch Piper voice nl_BE-nathalie-medium.
In the Piper add-on configuration I have these settings:

  • Speaker: 0
  • Length scale: 1.285
  • Noise scale: 0.667
  • Speaking cadence: 0.333

This produces a nice, most of the time naturally sounding voice, which I like a lot.
To be clear: I am only using TTS, and no AI, Assist or wakewords or so.

However, since I did the update of the Piper add-on from version 1.6.4 to version 2.1.1 it seems like the pause between sentences has become shorter.
It is a small difference, but makes the speech less natural for my taste. It sounds like the pause between sentences is now identical to the pause between words.
I opened the same TTS recording for both the old and new version of Piper in Audacity, and this clearly shows that between each sentence a short silence period has disappeared:

Version 1.6.4:

Version 2.1.1:

It is just 0.15 seconds of silence, but that is enough to make it less natural.

On the Piper GitHub page there is some info about some command-line options, including --sentence-silence, and I also found this GitHub post: Adding pause or break between sentences or paragraphs · Issue #492 · rhasspy/piper · GitHub which mentions this option, and a break option as well.
But I have no idea how to set this in the Piper configuration, and as far as I know, it is not possible to manually add pauses between sentences, like for instance something like this:

Sentence number one. < --sentence-silence 2 > Sentence number two.
Sentence number one. < break /> Sentence number two.

Is there anything I can do to lengthen the pauses between Piper TTS sentences?

1 Like

The console version of piper1-gpl still has the --sentence-silence key, but it is not an engine parameter; it simply launches a function that generates silence between sentences.
This functionality has not been added to the new add-on. And although it is potentially easy to return it to the code, you will either have to hope that the developer does it, or give up on the add-on and choose other ways to start the server.

But since you don’t need synthesis for LLM, you can use this trick in fixed text.
Sentence1. [[ . ]] Sentence2.

This is about the updated Home Assistant Piper add-on, isn’t it?
I would love to have this feature back, even if only as an optional function.
Even better would be if it would be an optional, adjustable length pause.

Thanks!
This indeed does work.
With this method the added pause is still slightly shorter then before (like 0.1 second or even less), but adding extra dots like for instance Sentence1. [[ .... ]] Sentence2. increases the pause.
This is with none, 1, 2, 4, 5 and 10 dots:

But there are some draw backs with this method.

It does not produce real silence, which especially is audible with longer pauses (more dots): it sounds like a faint sigh. This is clearly visible as well in the picture above, in the last audio track with the 10 dots.
Are there other options for this method? Can we use other characters than the dot to have other effects?

Anyhow, it is rather cumbersome having to add these pauses manually between each sentence.

And I am also using TTS to read out variable blocks of text, like the weather forecast. In that case it of course is impossible to manually add the pauses like this.
But assuming that each sentence ends either with a dot, a question mark or an exclamation mark, it is possible to do something like this to add the pauses:

{{ states( 'sensor.weatherforcast' ) | replace( '.', '. [[ .. ]] ') | replace( '?', '? [[ .. ]] ') | replace( '!', '! [[ .. ]] ') }}

In any case, I would strongly prefer it if it would work automatically again.
So, now that we know the cause of this issue, I will post an issue for this on GitHub, to request for this change to be reverted back.

Yes, this is probably the best solution if you don’t plan to create a customized personal version of the add-on/Docker image/installation in venv.
Create a request to add the feature here

Ah! I just posted an issue here:

Is that the wrong location on GitHub?

Add-ons (and the repositories they are based on) are not part of Home Assistant core.

Hmm…
I went there following this link:

There are many issues there related to Piper as well.

Should I delete my GitHub post, and recreate it in your suggested repository, or can I move it some how?

…Those likely talk about consuming piper output by core, not Piper itself.

If you want your FR to be seen, yes you should move it to the repo @mchk points to

Right. Thanks. Will do so.

1 Like

OK, done: