fasr-asr-mega
English documentation: README_EN.md
Mega-ASR 语音识别插件,封装官方 xzf-thu/Mega-ASR 离线推理接口。插件包内已经包含官方 src/MegaASR 的推理源码,并裁剪掉训练、评测和数据下载代码。
首次使用时,插件会自动从 HuggingFace 下载权重(zhifeixie/Mega-ASR),无需手动准备。
当前插件只实现 FASR batch ASR 接口,不实现流式接口。
安装
pip install fasr-asr-mega
默认安装会带上 Transformers 推理后端所需的最小运行依赖,例如 qwen-asr、torch、torchaudio、safetensors、scipy、soundfile 和 huggingface-hub。不会安装官方仓库中训练、评测、Web UI 相关依赖。
如果需要使用 vLLM 后端,再安装 vLLM extra:
pip install "fasr-asr-mega[vllm]"
注册模型
| 注册名 | 类 | 适用场景 |
|---|---|---|
mega_asr |
MegaASRForASR |
离线 ASR,无词级时间戳 |
流水线使用
from fasr import AudioPipeline
pipeline = (
AudioPipeline()
.add_pipe("detector", model="fsmn")
.add_pipe(
"recognizer",
model="mega_asr",
backend="transformers",
routing_enabled=True,
)
)
audios = pipeline.run("audio.wav")
print(audios[0].text)
首次运行时会自动下载权重到 ~/.cache/fasr/checkpoints/zhifeixie/Mega-ASR/。
Confection 配置
[asr_model]
@asr_models = "mega_asr"
backend = "transformers"
routing_enabled = true
quality_threshold = 0.5
language = null
device_map = null
quality_device = null
max_inference_batch_size = 32
max_new_tokens = 256
keep_delta_on_gpu = true
vLLM 后端示例:
[asr_model]
@asr_models = "mega_asr"
backend = "vllm"
routing_enabled = false
vllm_apply_lora_on_load = true
gpu_memory_utilization = 0.85
max_model_len = 8192
max_num_seqs = 1
max_num_batched_tokens = 2048
权重目录覆盖示例(不自动下载,使用本地已准备好的权重):
[asr_model]
@asr_models = "mega_asr"
checkpoint = "/opt/mega-asr-ckpt"
endpoint = null
单独使用
from fasr.config import registry
model = registry.asr_models.get("mega_asr")(
language="Chinese",
)
spans = model.transcribe(audio_spans)
for span in spans:
print(span.text)
参数
| 参数 | 类型 / 范围 | 默认值 | 调高 / 开启时 | 调低 / 关闭时 | 什么时候改 |
|---|---|---|---|---|---|
checkpoint |
str |
"zhifeixie/Mega-ASR" |
指定本地权重路径或自定义 repo | 使用默认路径或自动下载 | 权重不在默认位置或使用不同 repo 时 |
endpoint |
str | null |
"modelscope" |
可设为 "huggingface" 或 "hf-mirror" |
使用 ModelScope 源 | 需要从 HuggingFace 下载时 |
model_path |
str | null |
null |
可指定自定义 Qwen3-ASR 基座目录 | 使用 checkpoint 下的 Qwen3-ASR-1.7B | 基座模型单独放置时 |
lora_dir |
str | null |
null |
可指定自定义 Mega-ASR LoRA 目录 | 使用 checkpoint 下的 mega-asr-merged | LoRA 目录单独放置时 |
router_checkpoint |
str | null |
null |
可指定自定义路由器权重 | 使用 checkpoint 下的 audio_quality_router 默认文件 | 路由器权重单独放置时 |
backend |
"transformers" 或 "vllm" |
"transformers" |
vllm 吞吐更高,但配置更严格 |
transformers 更贴近官方默认路由逻辑 |
需要更高吞吐或更低延迟时 |
routing_enabled |
bool |
true |
根据音频质量动态决定是否使用 LoRA | 固定使用后端默认路径 | 不需要质量路由或使用 vLLM 物化 LoRA 时 |
quality_threshold |
float 0-1 |
0.5 |
更少触发 LoRA | 更积极使用 LoRA | 背景噪声场景识别差时可调低 |
language |
str | null |
null |
固定语言提示 | 使用官方自动行为 | 已知语种时 |
device_map |
str | null |
null |
控制 Transformers 设备放置 | 使用官方默认策略 | 想固定 cpu/cuda/auto 时 |
quality_device |
str | null |
null |
控制路由器设备 | 使用官方自动策略 | 路由器需要指定 CPU/GPU 时 |
max_inference_batch_size |
int >= 1 |
32 |
吞吐更高、显存更高 | 更省显存 | 批量推理吞吐或 OOM 调优 |
max_new_tokens |
int >= 1 |
256 |
支持更长输出,耗时和显存更高 | 更省资源,但可能截断 | 长音频输出被截断时 |
keep_delta_on_gpu |
bool |
true |
LoRA 切换更快,占用更多显存 | 更省显存,切换可能更慢 | Transformers 后端显存不足时 |
vllm_apply_lora_on_load |
bool |
false |
启动时物化 LoRA,部署简单 | 保持官方默认 | vLLM 单模型部署时 |
gpu_memory_utilization |
float 0-1 | null |
null |
vLLM 可用显存更多 | 给其他进程留更多显存 | vLLM OOM 或显存未充分使用 |
max_model_len |
int | null |
null |
支持更长上下文 | 更省显存 | vLLM 上下文或 OOM 调优 |
max_num_seqs |
int | null |
null |
vLLM 并行序列更多 | 小显存更稳 | 8GB 等小显存可设为 1 |
max_num_batched_tokens |
int | null |
null |
吞吐更高 | 峰值显存更低 | 小显存部署时 |
source_dir |
str | null |
null |
使用外部 Mega-ASR checkout 覆盖内置源码 | 默认使用插件内置源码 | 只建议调试官方源码差异时使用 |
输出
- 插件会填充
span.raw_text。 - 当前不返回词级或字级时间戳。
- 每个
AudioSpan会临时写成 wav 文件再调用官方MegaASR.infer(),这是为了兼容官方路由器当前以文件路径读取音频的实现。
第三方源码许可
插件内置的 Mega-ASR 源码来自 xzf-thu/Mega-ASR,许可证见 THIRD_PARTY_LICENSES/Mega-ASR_LICENSE,安装后的包内也保留在 fasr_asr_mega/_vendor/MegaASR/LICENSE。
Metadata
Release files for fasr-asr-mega 0.5.8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fasr_asr_mega-0.5.8.tar.gz | 25.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fasr_asr_mega-0.5.8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.7 kB
Release files / fasr_asr_mega-0.5.8.tar.gz
| Download URL | fasr_asr_mega-0.5.8.tar.gz |
|---|---|
| Size | 25.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
03f6cd77fc07616c052e67d402ce9176a89f04c28f4199bf49cb3825f215be10
|
|
BLAKE2b-256 checksum How to use checksums |
6d76a452b49e2919915f8b6a4a499f18839eea130905d3bc5c30ce98534575d9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / fasr_asr_mega-0.5.8-py3-none-any.whl
| Download URL | fasr_asr_mega-0.5.8-py3-none-any.whl |
|---|---|
| Size | 27.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a97946d55e1b9c2512321ea7419bff972fdeadcb5eff371135ab05da3df7280a
|
|
BLAKE2b-256 checksum How to use checksums |
13e22414149f6925b7c70a6a8de7da235ed34c94473f2193737f62f25b15b901
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.17 {"installer":{"name":"uv","version":"0.9.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|