test/docs/README_zh.md

25 KiB
Raw Blame History

Qwen3-ASR

开箱即用的本地私有化部署语音识别服务

以 Qwen3-ASR 为核心的语音识别 API 服务,提供 NVIDIA CUDA vLLM、沐曦 MACA vLLM 与 CPU Rust 后端,兼容阿里云语音 API 和 OpenAI Audio API,并保留 Paraformer realtime WebSocket 能力。


Static Badge Static Badge Static Badge

在线演示站点

演示

演示

Release 1.0.1

v1.0.1 是当前补丁版本。v1.0.0 相对于早期 main 分支引入了一轮大规模 breaking refactor。 如果你是从 main 升级过来,请先阅读 release 说明,再决定是否沿用旧的部署与运行时假设。

关键 breaking changes:

  • Python 依赖管理已经切到 uv(pyproject.toml + uv.lock),requirements*.txt 已移除
  • 运行时栈改成 NVIDIA/沐曦 GPU -> vLLM、CPU/macOS -> vendored QwenASR Rust
  • MLX / Apple Silicon GPU 路径已移除,mps 会归一化到 cpu
  • macOS / Apple Silicon 现在默认总是 qwen3-asr-0.6b,可通过 QWEN3_ASR_MODEL 覆盖
  • ENABLED_MODELS 已移除

主要特性

  • 混合运行时栈 - 离线推理由自动选择的 Qwen3-ASR 提供,WebSocket 流式由 Paraformer realtime 能力提供
  • 说话人分离 - 基于 CAM++ 模型自动识别多说话人,返回说话人标记
  • OpenAI API 兼容 - 支持 /v1/audio/transcriptions 端点,可直接使用 OpenAI SDK
  • 阿里云 API 兼容 - 支持阿里云语音识别 RESTful API 和 WebSocket 流式协议
  • WebSocket 流式识别 - 支持实时流式语音识别,低延迟
  • 智能远场过滤 - 流式 ASR 自动过滤远场声音和环境音,减少误触发
  • 智能音频分段 - 基于 VAD 的贪婪合并算法,自动切分长音频,避免包含过长静音
  • GPU 批处理加速 - 支持批量推理,比逐个处理快 2-3 倍
  • 资源感知运行时 - 根据当前机器资源自动选择合适的 Qwen3-ASR 模型

致谢

  • Qwen3-ASR 提供官方模型与多模态 / vLLM 使用方式
  • QwenASR 提供本项目 vendored 的 CPU Rust backend

快速部署

1. Docker 部署(推荐)

# 复制并编辑配置
cp .env.example .env
# 编辑 .env 设置 API_KEY(可选)

# Compose 默认挂载:
#   /opt/dep/asr/models -> /app/models
#   /opt/dep/asr/data   -> /app/data
#   /opt/dep/asr/data/logs、temp、tasks 都在 data 挂载内

# 启动服务(NVIDIA GPU 版本)
docker-compose up -d

# 或沐曦 GPU 版本
docker-compose -f docker-compose-metax.yml up -d

# 或天数 GPU 版本
docker-compose -f docker-compose-iluvatar.yml up -d

# 或摩尔线程 / MUSA GPU 版本
docker-compose -f docker-compose-mthreads.yml up -d

# 或 CPU 版本
docker-compose -f docker-compose-cpu.yml up -d

# NVIDIA 多卡自动模式(每张可见卡自动拉起 1 个实例)
CUDA_VISIBLE_DEVICES=0,1,2,3 docker-compose up -d

# 沐曦多卡自动模式
METAX_VISIBLE_DEVICES=0,1 docker-compose -f docker-compose-metax.yml up -d

# 天数多卡自动模式
ILUVATAR_VISIBLE_DEVICES=0,1 docker-compose -f docker-compose-iluvatar.yml up -d

# 摩尔线程 / MUSA 多卡自动模式
MTHREADS_VISIBLE_DEVICES=0,1 docker-compose -f docker-compose-mthreads.yml up -d

服务访问地址:

  • API 端点: http://localhost:17003
  • API 文档: http://localhost:17003/docs

可选的内置限流参数:

  • NGINX_RATE_LIMIT_RPS(全局每秒请求上限,0 表示关闭)
  • NGINX_RATE_LIMIT_BURST(全局突发请求数,0 时自动使用 RPS)

docker run 方式(替代):

# NVIDIA GPU 版本
docker run -d --name qwen3-asr \
  --gpus all \
  -p 17003:8000 \
  -e ACCELERATOR=nvidia \
  -e CUDA_VISIBLE_DEVICES=0,1,2,3 \
  -e API_KEY=your_api_key \
  -v /opt/dep/asr/models:/app/models \
  -v /opt/dep/asr/data:/app/data \
  unis/qwen3-asr:gpu-latest

# 沐曦 GPU 版本
docker run -d --name qwen3-asr-metax \
  --privileged \
  --network=host \
  --pid=host \
  --ipc=host \
  -v /dev:/dev \
  -v /opt/mxdriver:/opt/mxdriver:ro \
  -e ACCELERATOR=metax \
  -e PORT=17003 \
  -e METAX_VISIBLE_DEVICES=0 \
  -v /opt/dep/asr/models:/app/models \
  -v /opt/dep/asr/data:/app/data \
  unis/qwen3-asr:metax-latest

# CPU 版本
docker run -d --name qwen3-asr \
  -p 17003:8000 \
  -v /opt/dep/asr/models:/app/models \
  -v /opt/dep/asr/data:/app/data \
  unis/qwen3-asr:cpu-latest

默认推荐将宿主机目录统一挂载到 /opt/dep/asr 下,模型目录结构如下:

/opt/dep/asr/models/
  Qwen/
  iic/
  damo/

如果你希望改成自定义目录,也可以在启动前设置:

export MODEL_STORAGE_DIR=/data/qwen3-asr-models
export DATA_STORAGE_DIR=/data/qwen3-asr-data

注意: NVIDIA GPU 镜像默认使用 CUDA 13.0/cu130,并固定 torch 2.11.0 + vllm 0.20.0。 开发者可通过 Docker build args 自行构建 CUDA 12.6、CUDA 13.0 或其他后端组合。 沐曦镜像使用 Dockerfile.metax 基于沐曦官方 vLLM 镜像融合本项目。现场部署使用 host network、privileged,并挂载 /dev 与 /opt/mxdriver,确保 mx-smi 查询和沐曦 PyTorch 运行时都能初始化设备。 当前 CPU 镜像已通过内置 QwenASR Rust backend 支持 qwen3-asr-0.6b。默认 CPU 镜像使用可分发 Rust 构建目标;只有自建且构建机/部署机 CPU 同构时才建议设置 QWENASR_RUST_TARGET_CPU=native。 CUDA vLLM 与 CPU Rust 路径下,word_timestamps=true 都会自动调用 forced aligner;当前实际后端为 CUDA -> vLLM、CPU/macOS -> vendored QwenASR Rust。 Apple Silicon 上的 Qwen3-ASR 现已统一走 Rust CPU backend。 start.py 现在会强制把 vLLM 多进程方式设为 spawn,避免 CUDA 在 fork 子进程中重复初始化导致启动失败。

自定义 GPU 后端构建:

# 默认 GPU 构建:CUDA 13.0 / PyTorch cu130
docker build -t qwen3-asr:gpu-cu130 -f Dockerfile.gpu .

# CUDA 12.6 构建,用于旧部署环境
docker build -t qwen3-asr:gpu-cu126 -f Dockerfile.gpu \
  --build-arg PYTORCH_BASE_IMAGE=pytorch/pytorch:2.11.0-cuda12.6-cudnn9-runtime \
  --build-arg PYTORCH_CUDA_INDEX=https://download.pytorch.org/whl/cu126 \
  --build-arg CUDA_NVCC_PACKAGE=cuda-nvcc-12-6 \
  --build-arg TORCH_CUDA_ARCH_LIST="8.0;8.6;8.9" \
  .

# CUDA 13.0 构建,用于需要 CUDA 13 工具链的环境
docker build -t qwen3-asr:gpu-cu130 -f Dockerfile.gpu \
  --build-arg PYTORCH_BASE_IMAGE=pytorch/pytorch:2.11.0-cuda13.0-cudnn9-runtime \
  --build-arg PYTORCH_CUDA_INDEX=https://download.pytorch.org/whl/cu130 \
  --build-arg CUDA_NVCC_PACKAGE=cuda-nvcc-13-0 \
  --build-arg TORCH_CUDA_ARCH_LIST="12.0+PTX" \
  .

# 沐曦构建:基于沐曦官方 vLLM 镜像融合本项目
./scripts/package_vendor_gpu_image.sh \
  --vendor metax \
  --base-image <沐曦官方vLLM镜像名> \
  -v n260-3.7.0.38

# 天数构建:基于天数官方 vLLM 镜像融合本项目
docker pull registry.iluvatar.com.cn:10443/customer/sz/vllm0.17.0-4.4.0-x86:v5
./scripts/package_vendor_gpu_image.sh \
  --vendor iluvatar \
  --base-image registry.iluvatar.com.cn:10443/customer/sz/vllm0.17.0-4.4.0-x86:v5 \
  -v vllm0.17.0-4.4.0-v5

# 摩尔线程构建:基于摩尔线程官方 MUSA vLLM 镜像融合本项目
docker pull registry.mthreads.com/presale/devtech/vllm_musa:s4000_4.3.5_d0519
./scripts/package_vendor_gpu_image.sh \
  --vendor mthreads \
  --base-image registry.mthreads.com/presale/devtech/vllm_musa:s4000_4.3.5_d0519 \
  -v s4000_4.3.5_d0519

沐曦 GPU 国产化离线交付请优先参考 沐曦 GPU 国产化离线部署指南。 天数 GPU 国产化离线交付请优先参考 天数 GPU 国产化离线部署指南。 摩尔线程 GPU 国产化离线交付请优先参考 摩尔线程 GPU 国产化离线部署指南。

内网部署:现在可以直接生成一个带时间戳和 CPU/GPU 标识的离线交付目录,里面包含镜像包、compose、.env 模板、目录初始化脚本和使用说明。离线导出脚本使用普通 docker build + docker save,不依赖 buildx:

# 1. 生成离线交付目录
./export_offline_bundle.sh --type gpu
# 或
./export_offline_bundle.sh --type cpu
# 或沐曦 GPU
./export_offline_bundle.sh \
  --type metax \
  --metax-base cr.metax-tech.com/public-ai-release/maca/vllm-metax:0.17.0-maca.ai3.5.3.307-torch2.8-py312-ubuntu22.04-amd64 \
  --skip-models
# 或天数 GPU
./export_offline_bundle.sh --type iluvatar --iluvatar-base registry.iluvatar.com.cn:10443/customer/sz/vllm0.17.0-4.4.0-x86:v5
# 或摩尔线程 GPU
./export_offline_bundle.sh --type mthreads --mthreads-base registry.mthreads.com/presale/devtech/vllm_musa:s4000_4.3.5_d0519
# 或一次同时打包 GPU + CPU
./export_offline_bundle.sh --type all

# 2. 单独准备模型,不删除已有模型文件
./scripts/download-models.sh --models-dir /opt/dep/asr/models

# 3. 把交付目录复制到内网服务器
scp -r build-file/<时间戳>-all user@server:/opt/dep/asr/

# 4. 在内网服务器上导入并启动
cd /opt/dep/asr/<时间戳>-all
./init_host_dirs.sh
gunzip -c qwen3-asr-gpu-<时间戳>-amd64.tar.gz | docker load
gunzip -c qwen3-asr-cpu-<时间戳>-amd64.tar.gz | docker load
# NVIDIA GPU
docker compose up -d
# 或沐曦 GPU
# docker compose -f docker-compose-metax.yml up -d
# 或天数 GPU
# docker compose -f docker-compose-iluvatar.yml up -d
# 或摩尔线程 GPU
# docker compose -f docker-compose-mthreads.yml up -d
# 或 CPU
# docker compose -f docker-compose-cpu.yml up -d

详细部署说明请查看 部署指南

本地开发

系统要求:

  • Python 3.10+
  • 默认 GPU 镜像要求 CUDA 13.0+;CUDA 12.6 / 13.0 可通过 Docker build args 自行构建
  • FFmpeg (音频格式转换)

安装步骤:

运行时依赖现在改成“根目录默认 GPU,CPU 单独特化环境”:

模式 命令 说明
NVIDIA GPU(默认) uv sync 或 ./scripts/sync_gpu_env.sh 同步根目录 pyproject.toml 和 uv.lock 到 .venv,包含 CUDA 13.0/cu130 torch 2.11.0 / torchaudio 2.11.0 / torchvision 0.26.0 / vllm 0.20.0
沐曦 GPU ./scripts/sync_metax_env.sh 同步 environments/metax/pyproject.toml 的公共依赖;可选 GPU 栈安装默认从沐曦 MACA PyPI 源按 --no-deps 安装
天数 GPU ./scripts/sync_iluvatar_env.sh 同步 environments/iluvatar/pyproject.toml 的公共依赖;GPU 栈建议来自天数官方 vLLM 镜像
摩尔线程 GPU ./scripts/sync_mthreads_env.sh 同步 environments/mthreads/pyproject.toml 的公共依赖;GPU 栈建议来自摩尔线程官方 MUSA vLLM 镜像
CPU(特化) ./scripts/sync_cpu_env.sh 同步 environments/cpu/pyproject.toml 对应的 CPU lock 到 .venv
自动 ./scripts/sync_accel_env.sh 有 mx-smi 时选择沐曦,有 ixsmi 时选择天数,有 mthreads-gmi 时选择摩尔线程,有 nvidia-smi 时选择 NVIDIA,否则选择 CPU
# 克隆项目
cd qwen3-asr

# 安装依赖(Linux/NVIDIA CUDA)
uv sync

# 启动服务
source .venv/bin/activate
python start.py

沐曦本地开发:

./scripts/sync_metax_env.sh
source .venv/bin/activate
ACCELERATOR=metax python start.py

macOS / Apple Silicon 本地开发:

./scripts/sync_cpu_env.sh
source .venv/bin/activate
python start.py

当前运行时默认值

当前主线代码的运行时行为如下:

  • ACCELERATOR=auto 会优先识别 mx-smi 上报的沐曦设备,其次识别 ixsmi 上报的天数设备,再识别 mthreads-gmi 上报的摩尔线程设备,再识别 NVIDIA CUDA,否则回落 CPU
  • DEVICE=auto
    • NVIDIA/沐曦/天数 GPU 时解析为 cuda:0
    • 否则解析为 cpu
  • DEVICE=mps 会直接归一化为 cpu
  • Linux + NVIDIA CUDA 使用官方 vLLM
  • Linux + 沐曦 MACA 使用沐曦兼容 PyTorch/vLLM 运行栈
  • Linux + 天数 使用天数官方 vLLM 镜像运行栈
  • Linux + CPU 使用 vendored QwenASR Rust
  • macOS / Apple Silicon 也使用 vendored QwenASR Rust
  • macOS / Apple Silicon 默认总是 qwen3-asr-0.6b
  • 在 macOS 上,只有设置 QWEN3_ASR_MODEL=qwen3-asr-1.7b 时才会使用 qwen3-asr-1.7b
  • word_timestamps=true 在当前离线 CUDA 与 CPU Rust 路径下可用
  • WebSocket 流式路径当前不返回词级时间戳
  • CAM++ 说话人分离仍然必须保留,并继续跟随 DEVICE;在 CPU 上的主要热点仍是 speaker verification embedding

API 接口

OpenAI 兼容接口

端点 方法 功能
/v1/audio/transcriptions POST 音频转写(OpenAI 兼容)
/v1/models GET 离线模型列表

请求参数:

参数 类型 默认值 说明
file file 提供时优先使用 音频/视频文件
audio_address string 可选 音频/视频文件 URL(HTTP/HTTPS)、file:// 或服务端本地路径;若同时提供 file,则忽略
language string 自动检测 语言代码 (zh/en/ja)
enable_speaker_diarization bool true 启用说话人分离
enable_speaker_identification bool true 说话人分离开启时匹配已注册声纹库
enable_text_cleanup bool true 启用文本去重、跨段重叠裁剪和口头语清理
word_timestamps bool false 返回后端支持的字词级时间戳;Qwen CUDA vLLM 与 CPU Rust 在启用时会自动调用 forced aligner
hotwords string - 热词,格式:词1 权重1 词2 权重2
response_format string verbose_json 输出格式
prompt string - 提示文本(保留兼容)
temperature float 0 采样温度(保留兼容)

音频/视频输入方式:

  • 文件上传: 使用 file 参数上传音频文件或带音轨的视频容器
  • URL / 本地路径读取: 使用 audio_address 参数提供音频/视频 URL 或服务端本地路径,服务将自动读取
  • 优先级: 如果同时提供 file 和 audio_address,服务会优先使用 file,并忽略 audio_address

使用示例:

# 使用 OpenAI SDK
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="your_api_key")

with open("audio.wav", "rb") as f:
    transcript = client.audio.transcriptions.create(
        file=f,
        response_format="verbose_json"  # 获取分段和说话人信息
    )
print(transcript.text)
# 使用 curl
curl -X POST "http://localhost:8000/v1/audio/transcriptions" \
  -H "Authorization: Bearer your_api_key" \
  -F "file=@audio.wav" \
  -F "model=qwen3-asr-0.6b" \
  -F "response_format=verbose_json" \
  -F "enable_speaker_diarization=true" \
  -F "enable_speaker_identification=true" \
  -F "enable_text_cleanup=true" \
  -F "hotwords=Qwen 2.0 ModelScope 1.5"

支持的响应格式: json, text, srt, vtt, verbose_json

阿里云兼容接口

端点 方法 功能
/stream/v1/asr POST 语音识别(支持长音频)
/stream/v1/asr/models GET 声明条目列表
/stream/v1/asr/health GET 健康检查
/ws/v1/asr WebSocket Qwen3-ASR 流式识别
/ws/v1/asr/qwen WebSocket Qwen3-ASR 流式识别(显式路径)
/ws/v1/asr/funasr WebSocket 已移除;会返回废弃错误并提示切换到 /ws/v1/asr/qwen

请求参数:

参数 类型 默认值 说明
audio_address string https://media.cdn.vect.one/podcast_demo.mp4(文档示例) 音频/视频 URL、file:// 或服务端本地路径(可选;若同时上传内容则忽略)
sample_rate int 16000 采样率
enable_speaker_diarization bool true 启用说话人分离
enable_speaker_identification bool true 说话人分离开启时匹配已注册声纹库
enable_text_cleanup bool true 启用文本去重、跨段重叠裁剪和口头语清理
word_timestamps bool false 返回后端支持的字词级时间戳;Qwen CUDA vLLM 与 CPU Rust 在启用时会自动调用 forced aligner
vocabulary_id string - 热词(格式:词1 权重1 词2 权重2)

使用示例:

# 基本用法
curl -X POST "http://localhost:8000/stream/v1/asr" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @audio.wav

# 带参数
curl -X POST "http://localhost:8000/stream/v1/asr?enable_speaker_diarization=true&enable_speaker_identification=true&enable_text_cleanup=true&vocabulary_id=Qwen%202.0%20ModelScope%201.5" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @audio.wav

会议离线接口

端点 方法 功能
/api/v1/asr/transcriptions POST 创建离线会议识别任务
/api/v1/asr/transcriptions/{task_id} GET 查询任务状态和结果

该接口生产调用只使用 audio_address。

{
  "audio_address": "https://example.com/media/meeting.mp4",
  "config": {
    "enable_speaker": true,
    "match_speaker_registry": true,
    "enable_text_cleanup": true,
    "speaker_threshold": 0.6,
    "word_timestamps": false,
    "hotwords": [
      { "hotword": "通义千问", "weight": 2.0 },
      { "hotword": "ModelScope", "weight": 1.5 }
    ]
  }
}

响应示例:

{
  "task_id": "xxx",
  "status": 200,
  "message": "SUCCESS",
  "result": "说话人1的内容...\n说话人2的内容...",
  "duration": 60.5,
  "processing_time": 1.234,
  "segments": [
    {
      "text": "今天天气不错。",
      "start_time": 0.0,
      "end_time": 2.5,
      "speaker_id": "说话人1",
      "word_tokens": [
        {"text": "今天", "start_time": 0.0, "end_time": 0.5},
        {"text": "天气", "start_time": 0.5, "end_time": 0.9},
        {"text": "不错", "start_time": 0.9, "end_time": 1.3}
      ]
    }
  ]
}

说话人分离

基于 CAM++ 模型实现多说话人自动识别:

  • 默认开启 - enable_speaker_diarization=true
  • 自动识别 - 无需预设说话人数量,模型自动检测
  • 说话人标记 - 响应中包含 speaker_id 字段(如 "说话人1"、"说话人2")
  • 智能合并 - 两层合并策略避免孤立短片段:
    • 第一层:小于10秒的同说话人片段累积合并
    • 第二层:连续片段累积合并至60秒上限
  • 字幕支持 - SRT/VTT 格式输出包含说话人标记 [说话人1] 文本内容

关闭说话人分离:

# OpenAI API
-F "enable_speaker_diarization=false"

# 阿里云 API
?enable_speaker_diarization=false

音频处理

智能分段策略

长音频自动分段处理:

  1. VAD 语音检测 - 检测语音边界,过滤静音
  2. 贪婪合并 - 累积语音段,确保每段不超过 MAX_SEGMENT_SEC(默认60秒)
  3. 静音切分 - 语音段间静音超过3秒时强制切分,避免包含过长静音
  4. 批处理推理 - 多片段并行处理,GPU 模式下性能提升 2-3 倍

WebSocket 流式识别限制

Qwen3-ASR 流式(使用 /ws/v1/asr 或 /ws/v1/asr/qwen):

  • ✅ 支持多语言实时识别
  • ✅ 当前支持 CUDA vLLM 与 CPU Rust 两条流式路径
  • ❌ 当前流式路径不返回词级时间戳

Qwen3 运行时矩阵

运行环境 后端 离线转写 WebSocket 流式 离线词级时间戳 流式词级时间戳 成熟度
Linux + NVIDIA GPU 官方 vLLM 0.20.0 ✅ ✅ ✅ ❌ 面向生产
CPU / macOS QwenASR Rust ✅ ✅ ✅(forced aligner) ❌ 推荐本地后端

支持离线的模型

模型 ID 名称 说明 特性
qwen3-asr-1.7b Qwen3-ASR 1.7B 高性能多语言 ASR;CUDA 使用 vLLM 离线/实时
qwen3-asr-0.6b Qwen3-ASR 0.6B 轻量版多语言 ASR;CUDA 使用 vLLM,CPU/macOS 使用 Rust backend 离线/实时

运行时选择:

  • 显存 >= 32GB: 选择 qwen3-asr-1.7b
  • 显存 < 32GB: 选择 qwen3-asr-0.6b
  • 无 CUDA: 选择基于 vendored Rust 的 qwen3-asr-0.6b
  • macOS / Apple Silicon: 无论内存大小多少,默认都选择 qwen3-asr-0.6b
  • 环境变量覆盖: 设置 QWEN3_ASR_MODEL=qwen3-asr-1.7b 或 QWEN3_ASR_MODEL=qwen3-asr-0.6b 可跳过自动选择

启动时会先检测当前运行计划所需模型;如果本地缓存缺失,会自动从 ModelScope 下载。离线部署请提前准备模型缓存。

环境变量

推荐直接关心的公开配置:

变量 默认值 说明
API_KEY - API 认证密钥(可选,未配置时无需认证)
LOG_LEVEL INFO 日志级别(DEBUG/INFO/WARNING/ERROR)
MAX_AUDIO_SIZE 2048 最大音频文件大小(MB,支持单位如 2GB)
ASR_BATCH_SIZE 4 长音频分段后的 ASR 批处理大小
MAX_SEGMENT_SEC 60 音频分段最大时长(秒)
ASR_ENABLE_NEARFIELD_FILTER true 启用远场声音过滤
QWEN3_ASR_MODEL 自动选择 强制选择 qwen3-asr-1.7b 或 qwen3-asr-0.6b
QWEN_GPU_MEMORY_UTILIZATION 0.9 vLLM 可保留的 GPU 显存上限;共享显卡时可调低,KV cache 不足时可适当调高
QWEN_VLLM_ENFORCE_EAGER true 强制 vLLM eager 执行以提高兼容性;NVIDIA 性能测试可设为 false 允许 CUDA Graph 优化

远场过滤调优建议:

  • ASR_NEARFIELD_RMS_THRESHOLD=0.01 是当前默认值,也是推荐起点
  • 嘈杂环境可以适当调高,增强背景语音过滤
  • 安静环境如果出现小声说话漏识别,可以适当调低
  • 需要观察过滤行为时,可临时设置 LOG_LEVEL=DEBUG

后端专项高级配置:

变量 默认值 说明
QWEN_RUST_CPU_WORKERS 4 CPU Rust backend worker 数(Rust ASR / forced align 默认 4 个 runtime)
QWENASR_LIBRARY_PATH 自动探测 覆盖 vendored Rust 动态库路径

资源需求

最小配置(CPU):

  • CPU: 4 核
  • 内存: 16GB
  • 磁盘: 20GB

推荐配置(GPU):

  • CPU: 4 核
  • 内存: 16GB
  • GPU: NVIDIA GPU (16GB+ 显存)
  • 磁盘: 20GB

API 文档

启动服务后访问:

  • Swagger UI: http://localhost:8000/docs
  • ReDoc: http://localhost:8000/redoc

相关链接

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

Star 历史

Star History Chart

贡献

欢迎提交 Issue 和 Pull Request 来改进项目!