piper icon indicating copy to clipboard operation
piper copied to clipboard

it_IT-paola-medium has two voices ??

Open redskate opened this issue 8 months ago • 6 comments

Dear community

Using the linux Ubuntu 24 version of Piper Calling the synthesys without parameters (only with text and an output file) The paola model was downloaded a week ago.

E.g. considering the text being a poetry

After some punctuation like ":" the voice changes from the nice southern italian voice to another one, similar but NOT the same one. Is this a wanted feature or a consequence of a use or a bug? Is this known?

(I would prefer a single voice (just in case you ask me), not two voices.)

redskate avatar Jun 03 '25 13:06 redskate

Hi, Is there a sample of two mixed voices? We are working under Italian some time ago. Cheers.

rmcpantoja avatar Jun 03 '25 14:06 rmcpantoja

is the normal ":" or the other one used by ipa text "ː"

TikoTako avatar Jun 04 '25 16:06 TikoTako

The following CLI command with a text triggers the voice change:

echo "Il prezzo dell'acqua in Lombardia varia a seconda del fornitore e del tipo di servizio. In generale, i prezzi per l'acqua domestica sono costanti e si basano su una tariffa fissa mensile che include una quota fissa e una quota variabile basata sul consumo." | /usr/local/bin/piper/piper --model /home/acconto/projects/LLM_tts_stt/vendors/tts/piper/it/paola/it_IT-paola-medium.onnx --output_file /dev/stdout | aplay -r 22051 -f S16_LE

Specifically, the "second" voice (or maybe a voice with other parameters) is triggered after the first dot "." (text: "In generale..." is synthesized with the "second" voice)

In the following use, the "second" voice (higher in frequency) is triggered directly (Here I added also the stats output after the synthesis):

echo "È importante notare che le tariffe per l'acqua possono cambiare nel tempo, quindi è sempre una buona idea controllare con il tuo fornitore o sul loro sito web per ottenere le informazioni più aggiornate sui prezzi."| /usr/local/bin/piper/piper --model /home/acconto/projects/LLM_tts_stt/vendors/tts/piper/it/paola/it_IT-paola-medium.onnx --output_file /dev/stdout | aplay -r 22051 -f S16_LE [2025-06-05 12:31:43.614] [piper] [info] Loaded voice in 0.262549921 second(s) [2025-06-05 12:31:43.614] [piper] [info] Initialized piper Playing WAVE 'stdin' : Signed 16 bit Little Endian, Rate 22050 Hz, Mono [2025-06-05 12:31:52.162] [piper] [info] Real-time factor: 0.04158534149639423 (infer=0.41424658 sec, audio=9.961360544217687 sec) [2025-06-05 12:31:52.162] [piper] [info] Terminated piper

redskate avatar Jun 05 '25 10:06 redskate

i tested this: "Riccardino Fuffolo correva gioiosamente sul prato inseguendo delle farfalle. Ad un certo punto vide Asdrubaldo Von Fluffenstain correre a velocità massima verso il cancello in legno di frassino che divideva il prato dal deserto della morte. Incuriosito si mise a correre anche lui verso il cancelletto e rimase scioccato da quello che vide... 'SAN GENNARO!' esclamò Asdrubaldo 'OH MAI GAD UATTAFFAC!' urlò Riccardino, 'È IL PORTAPIZZE' esultarono in coro. Il portapizze che nel frattempo era arrivato al cancelletto si avvicinò titubante al citofono. DRIINNN DRIIINNN"

this play fine but with the spectrogram i see that the dot and the uppercase become another phrase so i checked a split

In generale, i prezzi per l'acqua domestica sono costanti e si basano su una tariffa fissa mensile che include una quota fissa e una quota variabile basata sul consumo. 8.719092970521542 sec, voice high

Ad un certo punto vide Asdrubaldo Von Fluffenstain correre a velocità massima verso il cancello in legno di frassino che divideva il prato dal deserto della morte. 7.685804988662132 sec, voice normal

In generale, i prezzi per l'acqua domestica sono costanti e si basano su una tariffa fissa mensile che include una quota fissa e una quota variabile 7.825124716553288 sec, voice seems fine

"Il prezzo dell'acqua in Lombardia varia a seconda del fornitore e del tipo di servizio. In generale, i prezzi per l'acqua domestica sono costanti. Si basano su una tariffa fissa mensile che include una quota fissa e una quota variabile basata sul consumo. "costanti e si basano" -> "costanti. Si basano" it play fine

È importante notare che le tariffe per l'acqua possono cambiare nel tempo. È sempre una buona idea controllare con il tuo fornitore o sul loro sito web per ottenere le informazioni più aggiornate sui prezzi. "tempo, quindi è" -> "tempo. È" it play fine

Im pretty sure im right but i need someone to confirm: most tts require audio segments in the range of 2-10s for training, the distribution of the segments depends on the work the tts have to do. A tts that only read short messages dont require a lot of segments over 6-7s, on the other hand a tts that read books dont require a lot under 4-5s.

TL;DR; The voice was trained with a ton of splits under 8s and cant handle long phrases.

TikoTako avatar Jun 05 '25 12:06 TikoTako

OK thank you for testing. So for me as mere user, what does it mean? Use short phrases = 4 words ? Cut phrases in the middle? Could be a pity, the (sicilian) voice is nice, the pronounciation varies a bit in frequency and timbre but is not really a nogo.

Is there (for whom) something to do in order to fix the nice voice?

redskate avatar Jun 06 '25 15:06 redskate

Use short phrases = 4 words

Anything up to ~7 seconds seems fine (so is more than 4 words), if you go over it start to sound weird. You can "fix" it with shorter sentences but it may sound weird due to the pause, if you dont need the realtime you can save it to wav then glue them back later and fix the pause 🤔

Is there (for whom) something to do in order to fix the nice voice?

well, if the real problem is the dataset with too much segments under 7-8s, try ask her to redo the training adding more segments in the range 7-10s

TikoTako avatar Jun 07 '25 13:06 TikoTako