infer_ASR

0 downloads 0 likes on ModelScope updated

Model card

sherpa-onnx Paraformer 中文 ASR(2023-09-14 版,int8)

sherpa-onnx 离线中文语音识别模型(Paraformer-large,int8 量化,纯 CPU 推理)。 认准 2023-09-14 版:该版本的 Paraformer 导出才输出字级时间戳(每个字一个 时间点),做字幕对齐 / 强制对齐必须用这一版;其他日期版本只有句级时间戳。

来源

  • 上游:csukuangfj/sherpa-onnx-paraformer-zh-2023-09-14(HuggingFace / hf-mirror.com),本仓库为字节级原样拷贝,未做任何改动。
  • 底层模型:阿里达摩院 Paraformer-large(FunASR,Apache-2.0)。
  • 2026-09 时点 ModelScope 无此仓库,故自行镜像。

文件清单

文件 大小 SHA256
model.int8.onnx 243,371,218 B(~232 MiB) f36a0433bcf096bd6d6f11b80a3ac8bed110bdca632fe0d731df8d1a84475945
tokens.txt 75,756 B 59aba8873a2ed1e122c25fee421e25f283b63290efbde85c1f01a853d83cb6e6

安装

pip install sherpa-onnx numpy   # CPU 版即可,无需 CUDA

快速使用

python demo.py your_audio.wav    # 16k(或其他采样率)单声道/立体声均可
python demo.py                   # 无参数 = 自检(合成音频跑通加载+解码链路)

demo.py 默认从脚本所在目录加载模型,把本仓库整个下载下来即可直接运行, 无需任何配置。

在代码中调用(生产同款参数)

import sherpa_onnx

recognizer = sherpa_onnx.OfflineRecognizer.from_paraformer(
    paraformer="model.int8.onnx",
    tokens="tokens.txt",
    num_threads=2,
    sample_rate=16000,
    feature_dim=80,
    decoding_method="greedy_search",
)
stream = recognizer.create_stream()
stream.accept_waveform(16000, samples)  # samples: float32 列表, ±1.0 归一化
recognizer.decode_stream(stream)
result = stream.result
print("".join(result.tokens))     # 文本(无标点)
print(result.timestamps)          # 字级时间戳(秒),与 tokens 一一对应

输入约定:16 kHz 单声道 float32(±1.0)。ffmpeg 一行提取:

ffmpeg -y -v error -i video.mp4 -vn -ac 1 -ar 16000 -f wav audio.wav

⚠️ 不要整轨识别

sherpa-onnx 的 paraformer 长音频整轨识别会漏识别中段语音(实测长流退化)。 长音频请切段(建议 ≤ 30 s/段)逐段识别后按偏移拼回时间轴。

下载本仓库

# 方式一:modelscope CLI
pip install -U modelscope
modelscope download --model <你的空间名>/sherpa-onnx-paraformer-zh-2023-09-14 --local_dir ./paraformer-zh

# 方式二:git
git lfs install
git clone https://www.modelscope.cn/<你的空间名>/sherpa-onnx-paraformer-zh-2023-09-14.git

License

Apache-2.0(与上游导出及底层 Paraformer 模型一致)。