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ó | Port | Descripció |
|---|---|---|
| Dia-TTS-Server | 5000 | git clone https://github.com/devnen/Dia-TTS-Server.git && pip install -r requirements.txt && python main.py |
| Piper (Docker) | 10200 | docker 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? 😊