⭐ Avantatges i inconvenients de tenir Piper (Ona) dins Docker

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 10200
  • piper_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 ps
  • docker logs
  • docker 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_pau està 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

  • , 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.


LlenguaVeus Piper recomanades
CatalàOna, Pau, Aina
CastellàCarlota, Ana
Anglès (US)libritts-high, harvard-medium
Anglès (UK)vctk-medium
Francèsmls-fr-medium
Francès
Alemanymls-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/