Discussione:
tts con piper e speech-dispatcher
Aggiungi Risposta
Fabio
2025-01-08 22:53:19 UTC
Rispondi
Permalink
Dunque, tempo fa ero riuscito a usare gtts con speech-dispatcher,
recentemente ho scoperto piper e i suoi moduli linguistici verificando
che funzionano meravigliosamente bene da soli, sto così provando a
usarli con speech-dispatcher. In pratica ho aggiunto su
"~/.config/speech-dispatcher/speechd.conf" le righe:
AddModule "piper-generic" "sd_generic"
"piper-generic.conf"

DefaultModule "piper-generic".

Ho creato un modulo piper-generic.conf più o meno così:

GenericExecuteSynth "echo "$DATA"| sed -z 's/\\n/ /g'| piper --model
/percorso-alla-cartella/voci-pipper/$VOICE.onnx --output-raw | play_ng
-e signed -r 22000 -b 16 -c 1 -t raw -V1 -"
GenericCmdDependency "piper"
GenericCmdDependency "play_ng"

# “MALE1” and “FEMALE1” are standard names defined in
# `src/modules/module_utils_addvoice.c`.
AddVoice "en_GB" "FEMALE1" "en_GB-alba-medium"
AddVoice "en_GB" "FEMALE1" "en_GB-cori-high"
AddVoice "en_US" "MALE1" "en_US-libritts-high"
AddVoice "it_IT" "FEMALE1" "it_IT-paola-medium"
AddVoice "it_IT" "MALE1" "it_IT-riccardo-x_low"

DefaultVoice "it_IT-paola-medium"

E sembra funzionare un po', o meglio se uso spd-say -y defaultVOICE
"...." funziona benissimo, ma se lo uso da foliate o okular inizia bene
ma poi invece salta sistematicamente delle frasi cosa che a parità di
lunghezza di testo con spd-say non fa. Ho come l'impressione che mentre
legge una parte di testo si perda quella che nel frattempo viene
trasmessa daspeech-dispatcher, ma magari è qualcos'altro... Qualche idea?
Fabio
2025-01-09 17:22:11 UTC
Rispondi
Permalink
Post by Fabio
Dunque, tempo fa ero riuscito a usare gtts con speech-dispatcher,
recentemente ho scoperto piper e i suoi moduli linguistici verificando
che funzionano meravigliosamente bene da soli, sto così provando a
usarli con speech-dispatcher. In pratica ho aggiunto su "~/.config/
 AddModule "piper-generic"              "sd_generic" "piper-generic.conf"
 DefaultModule   "piper-generic".
GenericExecuteSynth "echo "$DATA"| sed -z 's/\\n/ /g'| piper --model /
correggo s/\n/
Post by Fabio
E sembra funzionare un po', o meglio se uso spd-say -y defaultVOICE
"...." funziona benissimo,
Correggo, mi sembra avere lo stesso problema se il testo è
sufficientemente grande
Fabio
2025-01-10 23:30:03 UTC
Rispondi
Permalink
Post by Fabio
Post by Fabio
Dunque, tempo fa ero riuscito a usare gtts con speech-dispatcher,
recentemente ho scoperto piper e i suoi moduli linguistici verificando
che funzionano meravigliosamente bene da soli, sto così provando a
usarli con speech-dispatcher. In pratica ho aggiunto su "~/.config/
  AddModule "piper-generic"              "sd_generic" "piper-
generic.conf"
  DefaultModule   "piper-generic".
GenericExecuteSynth "echo "$DATA"| sed -z 's/\\n/ /g'| piper --model /
correggo s/\n/
Post by Fabio
E sembra funzionare un po', o meglio se uso spd-say -y defaultVOICE
"...." funziona benissimo,
Correggo, mi sembra avere lo stesso problema se il testo è
sufficientemente grande
Auto risolvo: il modulo così funziona:
GenericExecuteSynth "export XDATA=\'$DATA\'; echo \"$XDATA\" | sed -z
's/\\n/ /g' | iconv -f iso-8859-1 -t utf-8 >
/percorsochevuoi2/logpipergeneric1utf8.txt && cat
/percorsochevuoi2/logpipergeneric1utf8.txt | piper --model
/percorsochevuoi/voci-pipper/"$VOICE".onnx -f - | mpv --no-terminal
--keep-open=no - ; rm /percorsochevuoi2/logpipergeneric1utf8.txt "

GenericCmdDependency "piper"
GenericCmdDependency "play_ng"

# “MALE1” and “FEMALE1” are standard names defined in
# `src/modules/module_utils_addvoice.c`.
AddVoice "en_GB" "FEMALE1" "en_GB-alba-medium"
AddVoice "en_GB" "FEMALE1" "en_GB-cori-high"
AddVoice "en_US" "FEMALE1" "en_US-libritts-high"
AddVoice "it_IT" "FEMALE1" "it_IT-paola-medium"
AddVoice "it_IT" "MALE1" "it_IT-riccardo-x_low"

DefaultVoice "it_IT-riccardo-x_low"
Fabio
2025-01-11 12:52:44 UTC
Rispondi
Permalink
Post by Fabio
Dunque, tempo fa ero riuscito a usare gtts con speech-dispatcher,
....
Volevo precisare per i più distratti che ciò consente non solo di
usufruire di una lettura molto realististica per chi ha problemi di
accessibilità al pc, ma anche di essere usato per leggere libri su
calibre, okular, foliate in modo decente e offline, cioè, rispetto a tts
orrendi che c'erano prima su linux, un passo da giganti. Non solo ci si
può anche fare con poco sforzo la propria voce personale, il che se
vogliamo è anche un po' inquietante... un avatar di se stessi che legge
al posto tuo :P

Se non lo conoscete e volete provare con un approccio più facile
suggerisco speech note flatpac disponibile, che consente di provare
senza installarlo anche whisper e altro...

Loading...