Skip to content
自托管 · 多引擎聚合 · OpenAI 全兼容

新一代高性能统一语音识别API 聚合网关与私有化基座

秒级在私有服务器或 Mac 上部署工业级 ASR 基础设施。聚合 Faster-Whisper、X-ASR (Zipformer)、Qwen3-ASR 与 FireRedASR,完美兼容 OpenAI Audio API 标准。

# 1. Pull and run OneASR with GPU acceleration
$ docker run -d -p 8000:8000 --gpus all codeandxv/oneasr:latest
INFO: Preloading ASR Engines [whisper-medium, xasr-zh-en]...
INFO: Application startup complete. Uvicorn running on http://0.0.0.0:8000
OpenAI API ready at /v1/audio/transcriptions

专为高吞吐、低延迟与数据隐私打造

满足团队从个人生产力到企业私有化语音管道的一切需求。

🔄零改动平替

OpenAI 规范全兼容

无缝平替 /v1/audio/transcriptions。零修改直连 Dify、FastGPT、Open WebUI、DuRT 及官方 OpenAI SDK。

⚡即插即用

多引擎聚合与热切换

通过清晰的 YAML 配置自由切换 Faster-Whisper、Zipformer (X-ASR)、Qwen-ASR 与 FireRedASR 等前沿模型。

🌊< 200ms 极速

低延迟全双工 WebSocket

支持毫秒级分块实时双工流式传输,专为实时字幕、会议同传与语音对话智能体(Voice Agent)打造。

🎯原生 VAD

智能 VAD 与精准切片

深度集成 Silero-VAD 语音活动检测,具备自然停顿断句、长音频切片与 ASR 连续复读幻觉自动过滤机制。

🖥️开箱即用

内置 Vue 3 可视化面板

开箱即用的 Web 仪表盘,支持实时麦克风录音测试、大文件音视频转录、GPU 状态监视与任务队列追踪。

🔒绝对隐私

100% 数据掌控与私有化

所有音频流与文字数据全程停留在本地或内网环境。零云端中转、零遥测收集、零供应商锁定。

支持的 ASR 引擎矩阵

根据具体的语言类型、延迟要求与硬件算力,灵活匹配最佳推理引擎。

引擎名称引擎定位支持语种推理延迟 / RTF硬件加速支持最佳适用场景
Faster-Whisper文件转录推荐长音频与批处理转录99+ 种全球语言(多语言)0.12x - 0.25x RTFCUDA, Metal, CPU (int8/fp16)多语种长文件转录、播客字幕生成、跨语种听写
X-ASR (Zipformer2)超低延迟首选实时流式语音识别中文、英文、中英混合< 160ms 块级延迟CPU, ONNX, Metal, CUDA超低延迟实时字幕、会议同传、语音交互助手
Qwen3-ASR (1.7B)大模型语音识别30+ 种语言、常见方言0.15x - 0.35x RTFCUDA (vLLM / PyTorch), Metal复杂中文方言、嘈杂环境降噪识别、特定行业术语
FireRedASR工业级通用 ASR中文、英文0.18x - 0.30x RTFCUDA, PyTorch企业级政企会议纪要、高保真普通话电话呼叫中心

OneASR 核心处理流水线

从音频接收、预处理、动态分发到结构化结果输出的标准架构。

Step 01

1. 接收与音频预处理

通过 REST 或 WebSocket 接入音频,自动重采样为 16kHz 单声道,并由 Silero-VAD 进行智能语音分段。

Step 02

2. 动态引擎分发调度

根据请求携带的语言标签与延迟模式,秒级分发至预热就绪的 ASR 引擎(Whisper/Zipformer/Qwen)。

Step 03

3. 神经网络推理与对齐

声学与语言模型协同解码,利用 CUDA TensorRT 或 Metal 算力加速生成词级毫秒时间戳。

Step 04

4. 后处理与标准化输出

标点规范化、去重去噪,最终组装为 OpenAI JSON、SRT 或 VTT 格式返回。

以开发者体验为核心

使用你熟悉的工具和标准协议,数行代码无缝集成 OneASR。

from openai import OpenAI

# Initialize client pointing to your local OneASR gateway
client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="sk-oneasr-v1-p_L3kXm9QZ8sT2vA4wE7rY1u"
)

# Transcribe audio file with word-level timestamps
with open("podcast.mp3", "rb") as audio_file:
    transcript = client.audio.transcriptions.create(
        model="faster-whisper",
        file=audio_file,
        response_format="verbose_json",
        timestamp_granularities=["word", "segment"]
    )

print(transcript.text)