Docker / build (cpu, cpu) (push) Canceled after 0s
Docker / build (nvidia/cuda:12.9.2-devel-ubuntu22.04, nvidia/cuda:12.9.2-runtime-ubuntu22.04, cuda, cuda12) (push) Canceled after 0s
Docker / build (nvidia/cuda:13.3.1-devel-ubuntu22.04, nvidia/cuda:13.3.1-runtime-ubuntu22.04, cuda, cuda13) (push) Canceled after 0s
Docker / build (vulkan, vulkan) (push) Canceled after 0s
Prevenzione allucinazioni/loop infiniti (Qwen3-TTS autoregressivo):
- block_repeated_ngrams: maschera i token che ricreerebbero un n-gram gia visto (n=4)
- has_repeating_cycle: ferma la generazione su cicli periodici (periodo 1-16, 4 ripetizioni)
- stuck detector: token dominante nella finestra recente (4 occorrenze in 8 token)
- fallback EOS quando tutti i logits sono mascherati (evita NaN)
- KV cache talker configurabile (--kv-cache, default 8192): 4096 overflowava con
reference lunghe + testi lunghi ("decode would overflow cache")
- parametri esposti via API (no_repeat_ngram_size, loop_max_period, loop_repeats,
loop_window) e CLI (--no-repeat-ngram, --loop-period, --loop-repeats, --loop-window)
- Docker: TTS_KV_CACHE env (default 8192)
Validato: testo 2788 char che prima degenerava in loop ora sintetizza pulito
(141s via API, nessuna ripetizione).
43 lines
1.5 KiB
YAML
43 lines
1.5 KiB
YAML
# ============================================================================
|
|
# tts-server (Qwen3-TTS, Vulkan) — docker compose
|
|
# ----------------------------------------------------------------------------
|
|
# Uso:
|
|
# export RENDER_GID=$(getent group render | cut -d: -f3) # GID gruppo render
|
|
# docker compose up -d --build
|
|
#
|
|
# GPU: AMD/Intel via Mesa RADV (/dev/dri/renderD128). Su host dove il node
|
|
# è world-writable (es. Fedora) group_add non è necessario ma innocuo.
|
|
# NVIDIA: aggiungere il runtime nvidia (vedi README.md).
|
|
#
|
|
# Variabili utili:
|
|
# MODELS_DIR / VOICES_DIR : percorsi di modelli e voci (default: ../../ = root del repo)
|
|
# PORT : porta host (default 8881)
|
|
# ============================================================================
|
|
services:
|
|
tts-server:
|
|
build:
|
|
context: ../..
|
|
dockerfile: docker/tts-server/Dockerfile
|
|
image: qwentts-tts:vulkan
|
|
container_name: tts-server
|
|
devices:
|
|
- /dev/dri/renderD128:/dev/dri/renderD128
|
|
group_add:
|
|
- "${RENDER_GID:-44}"
|
|
environment:
|
|
GGML_BACKEND: Vulkan0
|
|
MODEL_PATH: /models/qwen-talker-1.7b-base-Q8_0.gguf
|
|
CODEC_PATH: /models/qwen-tokenizer-12hz-Q8_0.gguf
|
|
TTS_LANG: Italian
|
|
MODEL_ALIAS: qwen3-tts
|
|
HOST: 0.0.0.0
|
|
PORT: "8881"
|
|
VOICE_DIR: /voices
|
|
TTS_KV_CACHE: "${TTS_KV_CACHE:-8192}"
|
|
volumes:
|
|
- "${MODELS_DIR:-../../models}:/models:ro"
|
|
- "${VOICES_DIR:-../../voices}:/voices:ro"
|
|
ports:
|
|
- "${PORT:-8881}:8881"
|
|
restart: unless-stopped
|