sherpa-onnx v1.10.45 发布解读:FireRedAsr 语音识别全量接入
【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnx
sherpa-onnx v1.10.45 已发布。本次核心变化是完整接入 FireRedAsr 注意力端到端(AED)语音识别模型,各语言绑定一次配齐。同时修复了 Go 绑定的一处潜在内存隐患,并校正了 RTF 性能指标计算。
🎯 sherpa-onnx v1.10.45 三大看点:FireRedAsr 全平台接入
FireRedAsr AED 模型进入离线识别体系
模型以 encoder + decoder 两个 ONNX 文件导出,官方同时提供 int8 量化版本。绑定接入顺序为 C++、C、CXX、Python 先行(#1865–#1872),随后 Java/Kotlin、C#、Swift、Dart、Go、Pascal 以及 JavaScript(Node.js addon 与 WebAssembly)跟进(#1870–#1880),一轮补齐 13 层接口。
Go 绑定修复 C 结构体初始化失败
此前 Go 端实例可能在底层 C 结构体创建失败时仍然构造成功,指针处于半初始化状态,存在无效访问风险(#1860)。
RTF 实时因子口径校准
RTF 计算中的一处拼写错误被修正(#1861),各示例程序输出的实时性能指标从此准确、可跨版本对比。
🔍 sherpa-onnx v1.10.45 中 FireRedAsr 是怎么落地的
FireRedAsr 是典型的 Encoder-Decoder 结构。推理时,语音特征先送入 encoder ONNX,产出 cross-attention 的 K、V;decoder ONNX 再逐步自回归生成 token。C++ 核心用两个 ORT Session 分别承载这两个模型;若启用 CUDA,encoder 的 K/V 输出会通过 IoBinding 固定在显存中,因为 decoder 每一步都要反复引用同一份 K/V,避免设备与主机间的来回拷贝。解码目前仅支持 greedy_search,配置其他策略会在启动时报错提示。token 产出后经符号表映射为文本,再经 OfflineRecognizer 统一接口分发给各语言绑定,上层代码无需感知模型差异。
📊 平台与语言覆盖一览
| 平台 | 语言/接口 | 适用场景 |
|---|---|---|
| 服务器 / 桌面 | C / CXX / C++ API | 性能敏感的离线解码 |
| Python 环境 | sherpa_onnx 绑定 | 模型评测、快速验证 |
| Web / 浏览器 | WebAssembly + Node.js addon | 前端推理、服务端 ASR |
| Windows / .NET | C# | 桌面应用集成 |
| macOS / iOS | Swift | Apple 生态应用 |
| Android / Flutter | Java / Kotlin / Dart | 移动与跨端应用 |
| Pascal 生态 | Pascal API | Lazarus 桌面项目 |
🐛 修复与细节打磨
- Go 实例创建成功但 C 结构体初始化失败(#1860)→ 失败路径现在能正确暴露,不再持有半初始化指针
- RTF 计算拼写错误(#1861)→ 各识别程序报告的实时因子准确,可作性能监控依据
🧭 谁该关注这次更新
- Web 前端:WebAssembly 版 FireRedAsr 让浏览器内语音识别成为可能,音频不必上传后端。
- 移动端:Java、Kotlin、Swift、Dart 绑定齐备,Android、iOS、Flutter 工程可直接替换模型接入。
- 服务器与边缘部署:C/C++ API 配合 int8 量化模型适合资源受限环境,GPU 服务器还可走 CUDA 路径。
🚀 上手路径建议
- 快速体验:安装 Python 绑定后运行 python-api-examples/offline-fire-red-asr-decode-files.py:
import sherpa_onnx recognizer = sherpa_onnx.OfflineRecognizer(config)- 正式集成:CXX、C#、Java 示例分别见 cxx-api-examples/、dotnet-examples/、java-api-examples/,按需取用。
- 极致性能:直接走 C/C++ API,选用 int8 encoder,GPU 环境开启 CUDA provider,并用修正后的 RTF 做调优。
写在最后
这次发布延续了 sherpa-onnx "模型导出 + 多语言绑定一次配齐"的节奏,离线中英文识别的可选模型池进一步扩大。后续值得关注的是更多 AED 架构模型的接入,以及它们向流式推理场景的延伸。
【免费下载链接】sherpa-onnxSpeech-to-text, text-to-speech, speaker diarization, speech enhancement, source separation, and VAD using next-gen Kaldi with onnxruntime without Internet connection. Support embedded systems, Android, iOS, HarmonyOS, Raspberry Pi, RISC-V, RK NPU, Axera NPU, Ascend NPU, x86_64 servers, websocket server/client, support 12 programming languages项目地址: https://gitcode.com/GitHub_Trending/sh/sherpa-onnx
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考