最新提交
历史
20 次提交20 次提交文件夹和文件
仓库文件导航
Ming-3.0-asr-tiny:上下文感知语音识别中文和英文 · 方言 · 热词与对话上下文
Hugging Face · ModelScope · 项目博客 · 快速开始 · Cookbook · 评测
超越逐字转写
真实语音往往带有口音、背景噪声、陌生的人名和专业术语。 Ming-3.0-asr-tiny 将 Ling-tiny-v3 语言模型与音频编码器相结合,用于中英文转写、方言识别和 Context ASR。热词或前序对话有助于识别特定领域的表达。
- 中英文 ASR: 通过一个 Transformers 接口转写单轮语音。
- 方言识别: 在覆盖湖南、闽南、粤语、川渝、上海、安徽、东北、河南、湖北、江苏、客家、陕西、山东、天津和云南的 15 个测试集上进行评测。
- Context ASR: 在转写提示词中包含相关的人名、地名、产品或技术术语。
- 挑战性语音: 评测覆盖聊天、政务、健康、知识、本地生活和高噪声场景。
介绍视频
ming-3.0-asr-final.mp4架构
评测
ASR 概览
中英文 ASR
方言与领域识别
Context ASR
快速开始
1. 创建环境
在 Linux 上使用 Python 3.12,并配备 CUDA GPU。Transformers 路径使用模型包中固定版本的依赖;SGLang 则在第 5 步中使用单独的环境。
git clone https://github.com/inclusionAI/Ming-3.0-asr.git cd Ming-3.0-asr python3.12 -m venv .venv source .venv/bin/activate unset PYTHONPATH
推理栈使用 Transformers 5.12.1、fla-core 0.5.2 和 PyTorch 2.11.0。如需使用其他 CUDA 版本,请按照 PyTorch 官方说明.
安装匹配的 PyTorch 和 torchaudio 2.11.0 构建版本。2. 下载模型
模型权重、分词器、配置和自定义 Transformers 实现一同发布在 Hugging Face:
python -m pip install "huggingface_hub[cli]" hf download inclusionAI/Ming-3.0-asr-tiny --local-dir ./Ming-3.0-asr-tiny-model export MODEL_DIR="$(cd ./Ming-3.0-asr-tiny-model && pwd)" python -m pip install -r "$MODEL_DIR/requirements.txt" python tools/verify_repository.py --checkpoint "$MODEL_DIR"
3. 转录音频片段
python examples/transcribe.py \ --model "$MODEL_DIR" \ --audio examples/cases/audio/chinese_common_voice.wav \ --output outputs/transcript.json
示例输出: 漓江和湘江有秦代开凿的灵渠沟通. 将 --audio 替换为你自己的 WAV 文件。普通 ASR 和 Context ASR 使用相同的音频输入格式。默认路径使用 CUDA、BF16、SDPA、贪心解码、10-gram 重复限制,以及最多 256 个新 token。关于主题和热词提示,请参阅 Context ASR 指南.
4. 原生 PyTorch / Transformers 推理
以下是 可运行示例使用的核心调用。请从仓库根目录运行:
import os
import soundfile as sf
import torch
from transformers import AutoModelForCausalLM, AutoProcessor
from examples.hf_runtime import decode_transcript, prepare_asr_request
checkpoint = os.environ["MODEL_DIR"]
processor = AutoProcessor.from_pretrained(checkpoint, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
checkpoint, trust_remote_code=True, dtype=torch.bfloat16,
device_map="cuda:0", attn_implementation="sdpa",
).eval()
waveform, sample_rate = sf.read(
"examples/cases/audio/chinese_common_voice.wav", dtype="float32", always_2d=True,
)
inputs = prepare_asr_request(processor, (waveform.T, sample_rate)).to(model.device)
with torch.inference_mode():
eos = model.config.text_config.eos_token_id
output = model.generate(
**inputs, max_new_tokens=256, do_sample=False,
eos_token_id=eos, pad_token_id=eos, no_repeat_ngram_size=10,
)
print(decode_transcript(
processor.tokenizer, output[0, inputs.input_ids.shape[1]:].tolist(),
))
5. SGLang 加速服务
使用 Ming SGLang 适配器分支 在下方固定的提交中。该仓库包含模型类别名补丁和推理示例。
请为 SGLang 使用单独的 Python 3.12 环境。保留第 2 步中下载的模型,然后在仓库根目录运行以下命令:
python3.12 -m venv .venv-sglang source .venv-sglang/bin/activate unset PYTHONPATH python -m pip install -r cookbook/sglang/requirements.txt python -m pip check git clone --single-branch --branch ling_v3_audio_for_pr \ https://github.com/inclusionAI/sglang_ling_v3.git ../sglang_ming_asr export SGLANG_DIR="$(cd ../sglang_ming_asr && pwd)" git -C "$SGLANG_DIR" checkout bba862771a9e3413a062dad33e8b494ea9f7755b export GUIDE_DIR="$(pwd)/cookbook/sglang" export PYTHON_BIN="$(command -v python)" SGLANG_DIR="$SGLANG_DIR" bash "$GUIDE_DIR/scripts/apply_patch.sh" export PYTHONPATH="$SGLANG_DIR/python:$MODEL_DIR" "$PYTHON_BIN" "$GUIDE_DIR/scripts/check_env.py" \ --model "$MODEL_DIR" --sglang-dir "$SGLANG_DIR"
在此终端中启动服务器,并在 /health 返回 HTTP 200 后,在另一个终端中运行客户端:
export GPU_ID=0 PORT=8000 HOST=127.0.0.1 SERVED_MODEL=ming-asr PYTHON_BIN="$PYTHON_BIN" MODEL_DIR="$MODEL_DIR" SGLANG_DIR="$SGLANG_DIR" \ bash "$GUIDE_DIR/scripts/start_server.sh"
curl -fsS http://127.0.0.1:8000/health python cookbook/sglang/scripts/transcribe.py \ --audio examples/cases/audio/chinese_common_voice.wav \ --base-url http://127.0.0.1:8000 --model ming-asr
示例对话记录为 漓江和湘江有秦代开凿的灵渠沟通。有关远程服务、英语音频和数据集评测设置,请参阅 完整的 SGLang 指南 。
实战手册:从转写到上下文
打开每个 WAV 样本进行试听,然后将参考文本与模型输出进行比较。显示时会移除标点,并将英文转为小写。
普通话转写
| 项目 | 文本 |
|---|---|
| 参考 | 漓江和湘江有秦代开凿的灵渠沟通 |
| 模型输出 | 漓江和湘江有秦代开凿的灵渠沟通 |
英文转写
| 项目 | 文本 |
|---|---|
| 参考 | 和你刚才做的一样 |
| 模型输出 | 和你刚才做的一样 |
上下文 ASR:纠正电影标题
只有第二个请求在同一段音频上添加了主题和热词。
| 项目 | 文本 |
|---|---|
| 参考 | 你们看了黄国权那部同囚没我昨晚看完到现在还缓不过来 |
| 主题 | 同囚 |
| 热词 | 同囚、黄国权、游学修、关楚耀、赵永洪、赵咏瑶、狱警、长镜头、吞玻璃戏、糖化玻璃、真实案例数据 |
| 无上下文 | 你们看了黄国权那部铜球没我昨晚看完到现在还缓不过来 |
| 有上下文 | 你们看了黄国权那部同囚没我昨晚看完到现在还缓不过来 |
python examples/transcribe.py --model "$MODEL_DIR" \ --manifest examples/cases/context.jsonl \ --output outputs/context-demo.jsonl \ --language-hint zh --max-new-tokens 256
请参阅 Transformers 指南, 上下文 ASR 指南, 评测指南,以及 SGLang 指南 以了解更多详情。
音频来源:Context ASR 片段来自 ContextASR-Bench;普通话和英语片段来自 Mozilla Common Voice.
使用说明
- 音频会经过下混并重采样至 16 kHz。长音频可以分块编码,但受模型上下文长度限制。
- 使用
from_pretrained(..., dtype=torch.bfloat16)加载。避免对整个模型调用.bfloat16(),否则可能改变需要 FP32 的参数和缓冲区。 - 输出为纯文本,不包含词级时间戳或说话人分离。不支持图像和视频输入。
- 示例使用单 GPU、非流式推理,且未进行量化。
许可证
本仓库的代码和模型权重依据 MIT 许可证发布。HF 模型包中的 Apache-2.0 源文件保留其声明和许可证。演示音频保留其来源许可证,详见 音频归属.
引用
如果您使用 Ming-3.0-asr-tiny,请引用本仓库。机器可读的元数据可在 CITATION.cff.
@misc{ming_3_0_asr_tiny_2026,
author = {{inclusionAI}},
title = {Ming-3.0-asr-tiny: Context-Aware Speech Recognition},
year = {2026},
url = {https://github.com/inclusionAI/Ming-3.0-asr}
}




