下面给出一份「2024-09 至今」仍活跃、**纯 Go 语音(speech)**方向的深度学习/AI 开源库清单,并做横向对比。
重点考察 3 个维度:
1. 是否「Go 源码级」可用(而非仅 Go 调用 Python/C++)
2. 是否内置预训练权重或端到端 demo
3. 是否支持GPU/CUDA或边缘侧交叉编译
项目 场景 核心算法/模型 预训练权重 Go 原生程度 硬件加速 活跃情况*
sherpa-onnx [^76^] ASR/TTS/声纹/语种 Transformer/CTC/Transducer 全家桶 ✅ 官方 200+ 模型 纯 Go 绑定 ONNX Runtime ✅ ONNX-GPU 周 commit
vosk-api-go [^86^] 离线 ASR Kaldi TDNN/FST ✅ 中文/英文 多语种 Go 封装 C++,需 libvosk.so ❌ CPU only 月 commit
go-astideepspeech [^79^] 英文 ASR Mozilla DeepSpeech RNN ✅ en-US 0.9.3 模型 Go 绑定 deepspeech.so ❌ CPU only 2024 后基本停更
whisper.cpp+go-bind 多语种 ASR OpenAI Whisper encoder/decoder 自行下载 ggml 权重 Go 绑定 whisper.cpp ✅ OpenCL/Metal/CUDA 社区维护
Eino [^77^][^87^] 大模型语音助手 LLM + 语音链任意组合 无语音专用权,需接外部 纯 Go 编排框架 ✅ 取决于下游模型 字节跳动持续迭代
*活跃情况以 2024-09 以后 GitHub commit 频率为参考。
----
深入比较
1. sherpa-onnx
• 2024-09 新增 Go 1.22+ plugin 模式,可 go run 直接拉模型;同一代码在 Windows/Linux/macOS/Android/iOS 交叉编译通过。
• 支持 流式 ASR(subtitle 级延迟)(Transducer)、非流式(Paraformer-Large)、TTS(VITS)、声纹(ECAPA-TDNN)。
• 官方提供「sherpa-onnx-go」子仓库,示例一行代码加载模型:
recognizer, err := sherpa.NewOfflineRecognizer("paraformer-zh-14k.onnx", config)
• GPU 路径:ONNX Runtime 官方 CUDA ExecutionProvider,sherpa-onnx 0.10 之后自动检测,无需写 CUDA 代码。
• 社区:每周合并 PR,2025-08 刚发 v1.10,新增 SenseVoice 多语种+情绪识别模型 。
2. vosk-api-go
• 底层仍是 Kaldi,权重体积 50 MB-300 MB,适合嵌入式。
• Go 层仅做 cgo 封装,交叉编译需携带 libvosk.so,边缘侧容器镜像体积 > 80 MB。
• 不支持流式 Transformer,长音频识别延迟高;优势是 中文小模型准确率优于 Whisper-tiny。
3. go-astideepspeech
• 仅英文,模型 2019 年后不再更新,WER 落后 Whisper 约 30 %。
• 依赖 libdeepspeech.so,2024-09 以后仓库无提交,已处于 archived 状态 。
4. whisper.cpp + go-bind
• 非官方,但社区 star 数高;通过 cgo 调用 whisper.cpp 的 ggml 后端。
• 支持 OpenCL/Metal/CUDA 后端,Apple M 系列可用 GPU。
• 缺陷:Go 层只提供「整段推理」,流式需要额外分段逻辑;无官方预训练权重托管,需手动下载。
5. Eino
• 不是语音专用框架,而是「LLM 应用编排引擎」;语音能力来自接入的外部模型(Whisper API、Sherpa-RPC)。
• 优势:纯 Go 写 pipeline,ChatModel/Tool/Retriever 等组件可插拔,适合快速搭「语音输入 → LLM → 语音输出」助手。
• 缺点:本身不带权重,语音质量取决于下游服务;GPU 加速也取决于下游模型实现 。
----
结论(2025-09 现况)
• 若你要「纯 Go 源码级 + 预训练权重 + GPU」三样全占,目前唯一优选是 sherpa-onnx;
• 边缘侧超小镜像(<30 MB)可接受英文-only,选 vosk-api-go;
• 需要 Whisper 系列多语种且愿意自己管理 ggml 权重,用 whisper.cpp+go-bind;
• 只想快速搭大模型语音助手,语音部分直接调 API,则用 Eino 做编排即可。
登录后可参与表态
讨论回复
1 条回复
✨步子哥 (steper)
#1
09-24 07:24
登录后可参与表态