Files
tts/dgx/start-qwen3-tts.sh
T
Renato PfeilerandClaude Opus 5.5 29d0dc0637 Qwen3-TTS auf der DGX: Startskript, Deploy-Config, Node-Client
- dgx/start-qwen3-tts.sh startet CustomVoice (:8011) oder Base/Klon (:8012)
  via vllm-omni im Image vllm-node-030-omni
- dgx/qwen3_tts_spark.yaml: V1-Runner (MRV2 scheitert am vLLM-dev-Build)
  und 0.08/0.06 Speicher statt 2x 0.3
- SpeechSynthesis_Qwen.js als Ersatz fuer das Azure-Skript: Stimmenauswahl
  inkl. Klonstimmen, <break>-Pausen, Musik, Ausgabe als WAV/G.722/MP3

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 15:52:46 +02:00

35 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# Qwen3-TTS 1.7B auf der DGX Spark (admin@10.146.97.103) via vllm-omni.
# OpenAI-kompatibel: POST http://10.146.97.103:<port>/v1/audio/speech
#
# ./start-qwen3-tts.sh -> CustomVoice (9 feste Stimmen) :8011
# ./start-qwen3-tts.sh base -> Base (Voice-Cloning, ref_audio) :8012
#
# Liegt auf der DGX unter ~/qwen3-tts/ zusammen mit qwen3_tts_spark.yaml
# (eigene Deploy-Config: V1-Runner + 0.08/0.06 Speicher, siehe Kopf der YAML).
set -eu
CFG_DIR=/home/admin/qwen3-tts
IMAGE=vllm-node-030-omni # vllm-omni 0.30.0 + librosa/soundfile, bringt qwen3_tts mit
case "${1:-customvoice}" in
customvoice) NAME=qwen3-tts-customvoice; PORT=8011; MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice ;;
base) NAME=qwen3-tts-base; PORT=8012; MODEL=Qwen/Qwen3-TTS-12Hz-1.7B-Base ;;
*) echo "Aufruf: $0 [customvoice|base]" >&2; exit 1 ;;
esac
if docker ps --format '{{.Names}}' | grep -qx "$NAME"; then
echo "$NAME laeuft bereits"; exit 0
fi
docker rm "$NAME" >/dev/null 2>&1 || true
docker run -d --name "$NAME" --network host --ipc host --gpus all \
-v /home/admin/.cache/huggingface:/root/.cache/huggingface \
-v "$CFG_DIR":/cfg:ro \
-e VLLM_DISABLE_COMPILE_CACHE=1 \
-e HF_HUB_OFFLINE=1 \
"$IMAGE" \
vllm-omni serve "$MODEL" --omni --port "$PORT" \
--deploy-config /cfg/qwen3_tts_spark.yaml
echo "gestartet: docker logs -f $NAME"