Piper TTS a Deepin

Comanda per dir bon dia amb la veu d’Ona:

echo "hola bon dia" | /home/Miquel/piper/piper -m /home/Miquel/piper_linux_x86_64/ca_ES-upc_ona-medium.onnx --output-raw | aplay -r 22050 -f S16_LE -t raw -

1. Extreure el fitxer correctament:

tar -xvf piper_linux_x86_64.tar.gz

2. Descarregar la veu en català (dins de la carpeta que acabes de crear):

wget -P piper_linux_x86_64 https://huggingface.co/rhasspy/piper-voices/resolve/main/ca/ca_ES/upc_ona/x_low/ca_ES-upc_ona-x_low.onnx
wget -P piper_linux_x86_64 https://huggingface.co/rhasspy/piper-voices/resolve/main/ca/ca_ES/upc_ona/x_low/ca_ES-upc_ona-x_low.onnx.json

3. Fer que l’ordinador parli:

echo "hola bon dia" | ./piper_linux_x86_64/piper -m ./piper_linux_x86_64/ca_ES-upc_ona-x_low.onnx --output-raw | aplay -r 22050 -f S16_LE -t raw -

📋 Xuleta d’Ús: Piper TTS (Català) a Deepin

1. COM usar-la des de la Terminal (Deepin)

Si vas afegir la funció al teu ~/.bashrc, tens dues eines ràpides:

  • Escoltar directament:parla "Hola Miquel, el sistema funciona perfectament."
  • Generar un fitxer d’àudio (sense reproduir-lo):cd ~/piper-tts/piper export LD_LIBRARY_PATH=. echo "Text a guardar" | ./piper --model ca_ES-upc_ona-medium.onnx --output_file /ruta/del/meu/fitxer.wav

2. COM usar-la des de PHP (Integració Web)

Com que treballes amb aplicacions PHP, pots generar àudio dinàmicament al servidor. Aquí tens un exemple segur i net:

<?php
$text = "Hola, això és una prova de veu generada des de PHP.";
$output_file = "/tmp/tts_" . uniqid() . ".wav";

// 1. Netejar el text per evitar injecció de comandes a la terminal
$text_net = escapeshellarg($text);

// 2. Construir la comanda (ajusta la ruta si el teu usuari no és 'Miquel')
$comanda = "cd /home/Miquel/piper-tts/piper && " .
           "export LD_LIBRARY_PATH=. && " .
           "echo $text_net | ./piper --model ca_ES-upc_ona-medium.onnx --output_file $output_file 2>/dev/null";

// 3. Executar
shell_exec($comanda);

// 4. Comprovar si s'ha creat i servir-lo (o retornar la ruta)
if (file_exists($output_file)) {
    header('Content-Type: audio/wav');
    header('Content-Disposition: attachment; filename="veu.wav"');
    readfile($output_file);
    unlink($output_file); // Neteja el fitxer temporal després d'enviar-lo
} else {
    echo "Error generant l'àudio.";
}
?>

Nota: Assegura’t que l’usuari que executa PHP (ex: www-data o el teu usuari en entorn de desenvolupament) tingui permisos d’execució a la carpeta /home/Miquel/piper-tts/piper.

3. ON i QUAN usar-la (Casos d’ús pràctics)

  • 🎓 Projectes d’aprenentatge d’idiomes: Com que t’interessa el suport multilingüe, pots canviar el model .onnx (ex: a en_US-amy-medium.onnx) per generar àudio d’exemple per a estudiants de català, anglès o basc.
  • ♿ Accessibilitat: Afegir un botó «Escoltar resposta» a les teves aplicacions web per a usuaris amb discapacitat visual o dificultats de lectura.
  • 🔔 Notificacions d’escriptori: Combinar-ho amb les notificacions de Deepin perquè l’ordinador et llegeixi alertes:parla "Atenció: la còpia de seguretat al servidor Synology ha finalitzat."
  • 🛠️ Depuració (Debugging): Fer que el servidor «parli» quan un script PHP llarg acaba d’executar-se, així no has d’estar mirant la pantalla constantment.

4. COM personalitzar la veu (Trucs avançats)

Piper permet ajustar paràmetres afegint-los a la comanda:

  • Fer-la parlar més ràpid: Afegeix --length_scale 0.8 (valors més baixos = més ràpid).
  • Fer-la parlar més a poc a poc: Afegeix --length_scale 1.2.
  • Més expressiva/aleatòria: Afegeix --noise_scale 0.8 (el valor per defecte és 0.66).

Exemple:

echo "Vaig molt ràpid!" | ./piper --model ca_ES-upc_ona-medium.onnx --length_scale 0.8 --output_file rapid.wav

5. RESOLUCIÓ RÀPIDA DE PROBLEMES

ProblemaSolució
Error: libpiper_phonemize.so.1: cannot openEstàs executant l’ordre fora de la carpeta o sense la variable d’entorn. Fes: cd ~/piper-tts/piper && export LD_LIBRARY_PATH=.
No se sent cap so amb paplayProva a reproduir el fitxer .wav directament amb el reproductor d’àudio del Deepin (doble clic). Si se sent, el problema és de configuració de PulseAudio/PipeWire, no de Piper.
La veu sona molt robòticaAssegura’t que estàs fent servir el model medium o high. Els models x_low són molt ràpids però sonen més artificials.

💡 Proper pas opcional

Si en el futur vols afegir una veu en anglès o basca al mateix sistema, només has de:

  1. Descarregar el .onnx i .json de la nova llengua des del repositori de veus de Piper.
  2. Posar-los a la carpeta ~/piper-tts/piper.
  3. Canviar --model ca_ES-upc_ona-medium.onnx pel nom del nou fitxer a les teves comandes o scripts PHP.

T’ha quedat clar amb aquest format? Si vols que adaptem la funció de bash o l’script de PHP per a algun cas concret dels teus projectes, digue-m’ho!

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

Aquest lloc utilitza Akismet per reduir els comentaris brossa. Apreneu com es processen les dades dels comentaris.