#!/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)