Esta es la forma directa que usé al principio. Sin partir el archivo por clases, sin muchísima limpieza, solo pasar el .txt completo por piper con la voz es_AR-daniela-high.

Requisitos

  • Piper instalado
  • Voz femenina argentina: es_AR-daniela-high
    • es_AR-daniela-high.onnx
    • es_AR-daniela-high.onnx.json
  • Archivo de texto: todoenuno_para_espeak.txt

Archivos usados

Guardé la voz en:

/home/esotericwarfare/piper-voices/es_AR-daniela-high.onnx
/home/esotericwarfare/piper-voices/es_AR-daniela-high.onnx.json

Paso a paso

1. Verificar que tenemos la voz

Comprobamos que existe el modelo:

ls -lh /home/esotericwarfare/piper-voices/es_AR-daniela-high.*

2. (Opcional pero recomendable) Limpiar un par de cosas

Si hay alguna palabra que siempre lee mal, se le puede hacer un sed mínimo. En mi caso lo único que corregí rápido fue Joule para que no lo lea en inglés.

sed -i 's/Efecto Joule/efecto Yul/gI' /home/esotericwarfare/todoenuno_para_espeak.txt

Con eso ya alcanza. No hace falta reestructurar todo el texto.

3. Generar el audio directamente

Con el archivo tal cual (o con ese mínimo de correcciones) se pasa directo por piper.

cat /home/esotericwarfare/todoenuno_para_espeak.txt | \
piper \
  --model /home/esotericwarfare/piper-voices/es_AR-daniela-high.onnx \
  --config /home/esotericwarfare/piper-voices/es_AR-daniela-high.onnx.json \
  -f /home/esotericwarfare/todoenuno_para_espeak_daniela.wav

4. Hacerlo en segundo plano (clave para archivos grandes)

Como este archivo es gigante, nunca lo corras en primer plano. Usá nohup para que siga corriendo aunque cierres la terminal.

cd /home/esotericwarfare
nohup bash -c 'cat todoenuno_para_espeak.txt | piper --model piper-voices/es_AR-daniela-high.onnx --config piper-voices/es_AR-daniela-high.onnx.json -f todoenuno_para_espeak_daniela.wav > piper-gen.log 2>&1' &

5. Ver el progreso

Podés ir viendo como va creciendo el archivo y si sigue corriendo:

# Ver si piper sigue activo
ps aux | grep '[p]iper' | wc -l

# Ver tamaño del wav
ls -lh /home/esotericwarfare/todoenuno_para_espeak_daniela.wav

# Ver log por si hay algún error
tail -f /home/esotericwarfare/piper-gen.log

Notas

  • Sin --sentence-silence. Ahí está la clave. Si se lo agregás le mete pausas artificiales que quedan forzadas. Sin eso queda más fluido y más “natural” al estilo de como le salió la primera vez.
  • Un solo archivo. cat + piper procesa todo seguido tal cual está el texto. Más simple y con menos intervención.
  • Voz argentina. Se usa directamente es_AR-daniela-high, que es la que más se parece a lo que buscabas.
  • Paciencia. Para un archivo de ese tamaño va a tardar horas. Lo importante es verlo crecer con ls -lh.

Comando final resumido

nohup bash -c 'cat ~/todoenuno_para_espeak.txt | piper --model ~/piper-voices/es_AR-daniela-high.onnx --config ~/piper-voices/es_AR-daniela-high.onnx.json -f ~/todoenuno_para_espeak_daniela.wav' &

Listo. Eso es todo. Así es como lo hice la primera vez.