Veu Ona al servidor local de deepin

curl -G --data-urlencode "text=Hola, això és una prova. Soc Ona aquesta veu s'ha desenvolupat  a la UPC de Barcelona" http://127.0.0.1:8765/

Pugin Ona server






aquesta genera un .wav al directori /temp

curl -sS -X POST \
  -H 'Content-Type: application/json' \
  -d "{\"text\":\"Hola, això és una prova. Soc Ona, aquesta veu s'ha desenvolupat a la UPC de Barcelona.\"}" \
  http://127.0.0.1:8765/synthesize \
  -o /tmp/ona.wav

Si volem que no generi .wav

curl -sS -X POST \
  -H 'Content-Type: application/json' \
  -d "{\"text\":\"Hola, això és una prova. Soc Ona, aquesta veu s'ha desenvolupat a la UPC de Barcelona.\"}" \
  http://127.0.0.1:8765/synthesize \
  | aplay

Reproduir amb ffplay (si vols més qualitat o control)

curl -sS -X POST \
  -H 'Content-Type: application/json' \
  -d "{\"text\":\"Hola, això és una prova. Soc Ona, aquesta veu s'ha desenvolupat a la UPC de Barcelona.\"}" \
  http://127.0.0.1:8765/synthesize \
  | ffplay -autoexit -

Perfecte! El port 8765 coincideix amb el projecte speech-to-speech, que aixeca un servidor local compatible amb OpenAI Realtime i inclou TTS (Qwen3-TTS) + STT (Parakeet TDT) + LLM. T’ajudo a instal·lar-lo a Deepin.

🔧 Requisits previs

Deepin és Debian-based, així que primer assegura’t de tenir Python i pip:

sudo apt update
sudo apt install python3 python3-pip python3-venv git -y

📦 Instal·lació del servidor TTS

Crea un entorn virtual i instal·la el paquet:

mkdir -p ~/tts-server && cd ~/tts-server
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install speech-to-speech

🚀 Posada en marxa

export OPENAI_API_KEY=...   # opcional, només si faràs servir un LLM en línia
speech-to-speech

Això aixecarà el servidor a ws://127.0.0.1:8765/v1/realtime amb la configuració per defecte:

  • 🎙️ STT local: Parakeet TDT
  • 🧠 LLM: compatible amb OpenAI (pots connectar-hi Ollama, LM Studio, etc.)
  • 🔊 TTS local: Qwen3-TTS

💻 Prova de conversa

En un altre terminal, executa:

cd ~/tts-server
source venv/bin/activate
python scripts/listen_and_play_realtime.py --host 127.0.0.1 --port 8765

🧠 Opció: LLM 100% local (sense claus API)

Si vols que tot sigui local, pots usar llama.cpp amb Gemma:

pip install llama-cpp-python
llama-server -hf ggml-org/gemma-4-... 

💡 Alternatives si només vols TTS pur (sense STT/LLM)

OpcióPortDescripció
Dia-TTS-Server5000git clone https://github.com/devnen/Dia-TTS-Server.git && pip install -r requirements.txt && python main.py
Piper (Docker)10200docker run -d --name piper -p 10200:10200 linuxserver/piper — molt lleuger, ideal per a NAS/rPi

Cap problema! Fem la comprovació pas a pas:

1️⃣ Primer, comprova si el servidor segueix en marxa

En un terminal nou, prova directament:

curl -v http://127.0.0.1:8765/v1/realtime 2>&1 | head -20

Si surt alguna resposta (fins i tot un error 400 o 426 Upgrade Required) → el servidor està funcionant i només cal un client per connectar-s’hi. 🎉

Si surt Could not connect → el servidor es va aturar (potser es va tancar el terminal o es va tallar la descàrrega).


2️⃣ Si el servidor es va aturar, torna a engegar-lo

cd ~/tts-server
source venv/bin/activate
speech-to-speech

💡 Bona notícia: els models que ja es van descarregar queden a la memòria cau (~/.cache/huggingface), així que aquesta vegada serà molt més ràpid — no tornarà a baixar res, només carregarà.


3️⃣ Alternativa: comprova si el port està escoltant

Mentre el servidor estigui en marxa, en un altre terminal:

ss -tlnp | grep 8765

Si surt una línia amb 0.0.0.0:8765 o 127.0.0.1:8765, el servidor està escoltant correctament. ✅


Fes el pas 1 i digue’m què surt — si és Could not connect, passa al pas 2 i enganxa’m el que mostri el servidor en arrencar! 😊

Confirmat: el servidor està aturat (el port 8765 no està escoltant). El que va passar és que probablement es va tancar el terminal on s’executava o es va interrompre.

🔄 Torna a engegar-lo (ara serà ràpid)

Com que els models ja estan a la memòria cau, no tornarà a baixar res:

cd ~/tts-server
source venv/bin/activate
speech-to-speech

Deixa aquest terminal obert i espera a veure el missatge que el servidor està escoltant.


💡 Consell: engega’l en segon pla (així no depens del terminal)

Si no vols tenir un terminal ocupat sempre, pots executar-lo en segon pla:

cd ~/tts-server
source venv/bin/activate
nohup speech-to-speech > server.log 2>&1 &

Després pots comprovar que funciona amb:

ss -tlnp | grep 8765

I veure els logs amb:

tail -f ~/tts-server/server.log

🔍 Si torna a no engegar, comprova els logs

Si després d’executar speech-to-speech no veus el missatge d’èxit, enganxa’m les últimes línies que surtin (o el contingut de server.log si fas servir el mètode del segon pla) i ho diagnostiquem. Pot ser que estigui intentant baixar el model TTS (que és gran, ~2-3 GB) i es tallés.

Què diu quan l’executes? 😊