#!/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:/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"