UncleanCode's picture
Dynamic Accent Duplex 0.2.0: Dynamic ASR real as default ASR (omniASR fallback)
ac573f1 verified
Raw History Blame Contribute Delete
1.42 kB
#!/bin/bash
# Start the three processes of Dynamic Accent Duplex on one GPU (tested on 1x H100 80GB).
# 1) vLLM OpenAI server with the reply LLM (Qwen3-30B-A3B-Instruct-2507-FP8, Apache-2.0) :8001
# 2) ASR worker: Dynamic ASR (Modularcomputing/dynamic-asr, fine-tuned omniASR_CTC_1B_v2; needs `pip install "omnilingual-asr>=0.2.0" huggingface_hub`) :8002
# ASR_MODEL=dynamic-asr (default) | dynamic-asr-cs | omni (stock omniASR_CTC_1B; also the automatic fallback)
# 3) duplex server (VAD + turn-taking + LID/mix + validator + Flash TTS) + web UI :7860
# TTS: set DA_REL to a local copy of huggingface.co/Modularcomputing/dynamic-accent-pro-v1.1 (Flash-DPO weights,
# CC-BY-SA-4.0) set up as its README describes (CosyVoice repo + Fun-CosyVoice3-0.5B-2512 base, CV3_DIR).
set -e
HERE=$(cd $(dirname $0); pwd)
: "${DA_REL:?set DA_REL to the dynamic-accent-pro-v1.1 folder}"
VLLM=${VLLM:-vllm}; PY_ASR=${PY_ASR:-python}; PY=${PY:-python}
$VLLM serve Qwen/Qwen3-30B-A3B-Instruct-2507-FP8 --served-model-name llm --port 8001 --gpu-memory-utilization 0.62 --max-model-len 8192 &
(cd $HERE/code && ASR_MODEL=${ASR_MODEL:-dynamic-asr} $PY_ASR -m uvicorn asr_server:app --host 127.0.0.1 --port 8002) &
until curl -s localhost:8001/v1/models >/dev/null && curl -s localhost:8002/health >/dev/null; do sleep 5; done
cd $HERE/code && DA_REL=$DA_REL $PY server.py # open http://localhost:7860 (use headphones)