ASR 引擎集合。结构与 TTSLab 一致:
Python 后端 + launcher 子模块前端。
src/asrlab/
├── runtime/ # 配置加载、音频工具(无重依赖,导入廉价)
├── engines/
│ └── funasr/ # FunASR / SenseVoice
└── types.py # ASRResponse / VadResponse / Sentence / Word 等
config/runtime.toml # 运行时配置
launcher/ # 前端子模块
just use-cu128 # RTX 50 系(默认);另有 use-cu124 / use-cu118 / use-cpu
just torch-check # 确认 torch 和 CUDA
just test需要 ffprobe 在 PATH 上(VAD 要用它读音频时长)。
模型默认放在 models/ 下,路径在 config/runtime.toml 的 [asr.funasr] 里配:
| 配置项 | 默认 |
|---|---|
base_model |
speech_seaco_paraformer_large_asr_nat-zh-cn-16k-common-vocab8404-pytorch |
vad_model |
speech_fsmn_vad_zh-cn-16k-common-pytorch |
punc_model |
punc_ct-transformer_zh-cn-common-vocab272727-pytorch |
sense_voice_model |
SenseVoiceSmall |
相对路径按仓库根解析,所以在任何目录下调用都指向同一份模型。
from pathlib import Path
from asrlab.engines.funasr import (
FunASRModel,
convert_asr_response_to_sentences,
generate_asr_results,
)
model = FunASRModel().vad_and_asr()
response = generate_asr_results(model, Path("demo.wav"))
sentences = convert_asr_response_to_sentences(response)FunASRModel 的五种组合:vad_and_asr / only_txt / only_puc / only_vad / sense_voice。
FunASR 引擎迁自 XnneHangLab,原路径 src/lab/asr/funasr/,最后完整存在于 commit
91b0170,随后被 PR #313 用 sherpa-onnx 整体替换。此处只迁了引擎核心(4 个文件
types.py);原仓库里的 FastAPI 路由、acgoCLI、combiner/cutter/SRT 输出 仍留在91b0170/878134c里,需要时再捞。
AGPL-3.0-or-later