Quantatirsk/AsrServe
Self-hosted realtime and offline ASR with SOTA open models, speaker diarization and an OpenAI-compatible API. GPU, CPU, macOS Apple Silicon.
AsrServe – 自托管语音转文本服务
它是什么
- 一个即用型 API,可将口语音频转换为书面文本。它在本地运行,因此无需云调用,并支持实时流式传输和批量文件转录。
- 该服务捆绑了最新的开源语音模型(用于识别的 Confucius4‑R2T2、用于标点的 CT‑Transformer、用于说话人分离的 Nemotron‑3),并为您的硬件(CUDA GPU、CPU 或 Apple Silicon)选择最高效的推理路径。
主要功能
- 最先进的准确性 – 使用 Confucius4‑R2T2 模型和标点转换器,在处理完整个文件后恢复句子边界。
- 实时和离线模式 – 相同的模型权重支持低延迟 WebSocket 流和批量
/v1/audio/transcriptions端点。 - 说话人分离 – 使用 Nemotron‑3 分离模型识别录音中最多 8 个说话人。
- 单词级时间戳 – 来自 Qwen3‑ForcedAligner 的可选时间戳。
- 兼容 OpenAI 的 API – 端点遵循 OpenAI
/v1/audio/transcriptions和/v1/realtime约定,因此现有 SDK 可直接使用。 - 热词和提示 – 您可以提供术语列表和录音上下文(最多 2048 个字符),以指导识别器而不强制替换。
- 跨平台 – 适用于 GPU(
quantatrisk/asrserve:gpu)、CPU(:cpu)和 Ascend 910B(:ascend)的 Docker 镜像。通过捆绑的 Rust 后端原生支持 macOS,无需 Docker。 - 易于部署 – 用于 GPU/CPU 的 Docker‑Compose 文件、用于 macOS 的基于
uv的简单 Python 启动脚本,以及用于离线机器预下载模型的脚本。
如何开始
# GPU(Docker)– 拉取镜像并启动服务
docker compose up -d # 使用 quantatrisk/asrserve:gpu
# 仅 CPU(Docker)
docker compose -f compose.cpu.yml up -d # 拉取 quantatrisk/asrserve:cpu
# macOS 原生(无需 Docker)
uv sync --frozen && ./scripts/build-rust.sh
HF_HOME="$PWD/models/huggingface" uv run --no-sync python start.py # http://localhost:17003
- 首次运行会将所需的模型文件下载到
./models。 - 服务监听端口 17003;Swagger 文档位于
/docs。
典型 API 调用
- 文件转录(README 中的 curl 示例)– 发送 WAV 文件,可选的
hotwords、prompt、enable_speaker_diarization和word_timestamps标志。 - 实时流式传输 – 打开
ws://localhost:17003/v1/stream的 WebSocket,并流式传输 16 kHz PCM16 音频,或使用兼容 OpenAI 的端点/v1/realtime?intent=transcription并带有 Base64 编码的 24 kHz 音频。
适用场景
- 不允许将音频发送到外部服务的私有或受监管环境。
- 需要低延迟转录(语音助手、实时字幕)以及偶尔批量处理较长录音的应用程序。
- 说话人标签有用的多说话人会议。
限制/注意事项
- 需要相当好的 GPU 才能获得最快性能;CPU 模式较慢但仍可用。
- 标点恢复在 CPU 上运行,因此会在主转录后增加一个后处理步骤。
- 热词/提示长度限制为 2048 个字符;更长的输入返回 HTTP 400。
- 模型文件很大(数百 MB 到几 GB),首次启动时需要下载。
了解更多
- 实时演示:https://asr.ieeio.com
- 完整文档:
docs/文件夹(部署、实时协议、OpenAI 实时示例)。 - 发布说明详细介绍了准确性改进和破坏性更改。
联系方式
- 电子邮件:pengzhia@gmail.com
- 仓库中包含微信二维码,用于直接联系。
相关
- 项目
- 项目
- 项目
- 项目
- 项目