- 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>
35 lines
1.4 KiB
Bash
Executable File
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"
|