分支标签打开更多操作菜单

最新提交

 

历史

20 次提交20 次提交

文件夹和文件

名称名称最后提交信息最后提交日期
.github/workflows.github/workflows  
cookbookcookbook  
docsdocs  
examplesexamples  
figuresfigures  
teststests  
toolstools  
.gitignore.gitignore  
CITATION.cffCITATION.cff  
LEGAL.mdLEGAL.md  
LICENSELICENSE  
README.mdREADME.md  
requirements-dev.txtrequirements-dev.txt  

仓库文件导航

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

观看发布影片

架构

Ming-3.0-asr-tiny model architecture

评测

ASR 概览

ASR performance overview

中英文 ASR

Chinese and English ASR evaluation

方言与领域识别

Dialect and domain ASR evaluation

Context ASR

Context ASR evaluation

快速开始

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}
}

关于

未提供描述、网站或主题。

资源

自述文件MIT 许可证活动自定义属性

星标

21 个星标

关注者

1 人关注

复刻

0 次复刻报告仓库

发布

软件包

贡献者

语言