Introducció
Quan vols muntar un servidor TTS local amb la veu catalana Ona (UPC), tens dues opcions: instal·lar Piper directament al sistema o encapsular-lo dins un contenidor Docker. A Deepin —i en general a qualsevol Linux— Docker aporta una sèrie de beneficis molt clars, però també alguns punts a tenir en compte.
Aquesta entrada resumeix els avantatges i inconvenients reals de tenir Piper dins Docker, basats en experiència pràctica.
🟦 Avantatges de tenir Piper (Ona) dins Docker
1. Aïllament total del sistema
Docker encapsula Piper en un entorn propi:
- no depèn del Python del sistema
- no depèn de llibreries de Deepin
- no es trenca amb actualitzacions del sistema
- no interfereix amb altres projectes Python
És com tenir un “mini‑Linux” dedicat només al TTS.
2. Servei permanent i autoreiniciable
Amb --restart unless-stopped, Piper:
- arrenca automàticament quan encens Deepin
- es reinicia si peta
- queda sempre disponible al port
10200
Això el converteix en un servei TTS del sistema, no en un script puntual.
3. Actualitzacions molt simples
Actualitzar Piper és tan fàcil com:
Codi
docker pull linuxserver/piper docker stop piper docker rm piper docker run ...
Sense reinstal·lar dependències ni entorns virtuals.
4. Gestió clara i ordenada dels models
Els models estan en un volum dedicat (/config):
- afegir veus és copiar fitxers
- canviar de veu és modificar una variable d’entorn
- tot queda ordenat i separat del sistema
Sense Docker, Piper pot dispersar models en rutes internes.
5. Integració perfecta amb Wyoming TTS
El contenidor ja inclou el servidor Wyoming:
- exposat a
http://127.0.0.1:10200 - usable per qualsevol app del sistema
- compatible amb el teu servidor local (port 8765)
Sense Docker, cal muntar Wyoming manualment.
6. Compatibilitat total amb Deepin
Deepin té:
- Python modificat
- llibreries no sempre estàndard
- actualitzacions que trenquen dependències
Docker evita TOT això.
7. Reversibilitat i neteja
Si algun dia no vols Piper:
Codi
docker stop piper docker rm piper docker rmi linuxserver/piper
I el sistema queda sense rastre.
8. Seguretat i control
El contenidor:
- no pot modificar el sistema
- només veu el que li muntes
- no pot instal·lar res fora del seu entorn
És molt més segur que executar scripts directament.
🟥 Inconvenients de tenir Piper (Ona) dins Docker
⭐ cal un altre contenidor Docker amb un altre port per a la veu Pau, cada veu necessita un contenidor
PIPER_VOICE=nom_del_model.onnx
- No pot canviar de veu “en calent”.
- No pot tenir diverses veus carregades simultàniament.
- Wyoming TTS només exposa la veu carregada.
Això vol dir que si vols tenir Ona + Pau disponibles alhora, necessites:
piper_ona→ port 10200piper_pau→ port 10201
I el teu servidor local (port 8765) pot triar a quin contenidor enviar el text.
1. Requereix Docker instal·lat i actiu
Si Docker no arrenca, Piper tampoc. És un punt feble si el servei Docker falla (poc habitual).
2. Consum lleugerament superior
Un contenidor té:
- filesystem propi
- processos aïllats
- un petit overhead
És mínim, però existeix.
3. Cal entendre mínimament Docker
Per gestionar Piper:
docker psdocker logsdocker run- volums i ports
No és complicat, però és un aprenentatge.
4. Accés als fitxers més “indirecte”
Els models estan dins /config (volum Docker). No és un inconvenient greu, però és diferent de tenir-los al sistema directament.
5. Depens del contenidor concret
Si el mantenidor del contenidor deixa d’actualitzar-lo, caldria:
- canviar d’imatge
- o muntar Piper manualment
Actualment, linuxserver/piper és fiable.
🟦 Conclusió
Tenir Piper (Ona) dins Docker és, en la majoria de casos, la millor opció: estable, modular, segura i fàcil de mantenir. Els inconvenients són menors comparats amb els avantatges, especialment en sistemes com Deepin on les dependències de Python poden ser problemàtiques.
Docker converteix Piper en un servei TTS permanent, sempre disponible, actualitzable i aïllat del sistema.
Si vols, Miquel, puc preparar una versió HTML d’aquesta entrada perquè la puguis enganxar directament al WordPress, o afegir-hi una secció final amb comandes recomanades per gestionar el contenidor Piper.
Perfecte, Miquel — et deixo els passos exactes i ordenats per afegir la veu Piper (Pau) en un nou contenidor Docker, tal com ho fas amb Ona. Això és just el que necessites per continuar la teva entrada del blog i per tenir Ona + Pau funcionant alhora.
Aquí tens la guia pas a pas 👇
⭐ Guia per afegir la veu Pau en un altre contenidor Docker
01
Descarrega el model de la veu Pau
Preparació
Cal tenir el fitxer ONNX de la veu Pau dins la carpeta de models que ja utilitzes amb Ona.
- Ves a la pàgina oficial de models de Piper
- Descarrega ca_ES-upc_pau-medium.onnx (o la versió que prefereixis)
- Copia el fitxer a:
/home/Miquel/tts/models/
02
Verifica que el model està dins el volum
Important
El contenidor Piper utilitza /config com a volum, que en el teu cas correspon a /home/Miquel/tts.
- Comprova que tens:
/home/Miquel/tts/models/ca_ES-upc_pau-medium.onnx - Si tens subcarpetes, assegura que el nom coincideix exactament amb el model
03
Crea el nou contenidor Piper per a Pau
Contenidor nou
Cada veu necessita el seu propi contenidor perquè Piper només pot carregar una veu per instància.
Comanda Docker:
Codi
docker run -d \ --name piper_pau \ -p 10201:10200 \ -e PIPER_VOICE=ca_ES-upc_pau-medium.onnx \ -v /home/Miquel/tts:/config \ --restart unless-stopped \ linuxserver/piper
04
Comprova que el contenidor funciona
Validació
Assegura que el servidor Wyoming de Pau està actiu.
- Executa:
docker ps - Verifica que
piper_pauestà en execució - Obre al navegador:
http://127.0.0.1:10201(ha de respondre)
05
Prova la veu Pau des del teu servidor local
Integració
El teu servidor Python (port 8765) pot enviar text al contenidor de Pau.
- Envia peticions a:
http://127.0.0.1:10201/synthesize - Comprova que retorna àudio WAV amb la veu Pau
- Si tens Ona i Pau, pots alternar enviant a 10200 o 10201
⭐ Resum final
- Sí, per afegir la veu Pau cal un altre contenidor Docker.
- Piper només pot carregar una veu per contenidor.
- Amb Ona (10200) + Pau (10201) tindràs dues veus disponibles alhora.
- El teu servidor local pot triar a quin contenidor enviar el text.
Si vols, puc preparar-te també els passos per afegir Aina, Carlota o qualsevol altra veu, o fins i tot un script Bash que arrenca totes les veus automàticament quan encens Deepin.
| Llengua | Veus Piper recomanades |
|---|---|
| Català | Ona, Pau, Aina |
| Castellà | Carlota, Ana |
| Anglès (US) | libritts-high, harvard-medium |
| Anglès (UK) | vctk-medium |
| Francès | mls-fr-medium Francès |
| Alemany | mls-de-medium |
João → Portuguès (pt_PT)
El Docker “autèntic”, el que conté:
- imatges
- capes
- volums
- contenidors
- metadades
està sempre a:
/var/lib/docker/