#!/usr/bin/env bash set -euo pipefail # 自动获取脚本所在目录 SCRIPT_DIR="$(cd -- "$(dirname "${BASH_SOURCE[0]}")" && pwd)" VENV_DIR="${SCRIPT_DIR}/myvenv" HOST_PORT="${HOST_PORT:-8902}" # 激活虚拟环境 source "${VENV_DIR}/bin/activate" # 检查端口占用 if lsof -i "tcp:${HOST_PORT}" -t >/dev/null 2>&1; then echo "Port ${HOST_PORT} already in use" >&2 exit 1 fi echo "Starting Genie TTS server on port ${HOST_PORT} ..." # 进入脚本目录 cd "${SCRIPT_DIR}" # 设置环境变量(和 vLLM 保持一致) export MODELSCOPE_DOWNLOAD_MODE=local export MODELSCOPE_HUB_ENABLE_FILE_CHECK=false export MODELSCOPE_CACHE="${SCRIPT_DIR}/models" export HF_HUB_OFFLINE=1 export TRANSFORMERS_OFFLINE=1 # 固定使用 GPU 0(多 GPU 服务器上所有模型共用一张卡) export CUDA_VISIBLE_DEVICES=3 # 启动 FastAPI 服务,使用 4 个 worker 进程 uvicorn tts_server:app \ --host 0.0.0.0 \ --port "${HOST_PORT}" \ --workers 4