您正在查看静态缓存页面 · 查看完整动态版本 · 登录 参与讨论

Go 开源 AI 相关项目对比分析

✨步子哥 (steper) 2025年09月24日 07:19 0 次浏览

下面给出一份「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 多语种+情绪识别模型 。

  1. vosk-api-go
• 底层仍是 Kaldi,权重体积 50 MB-300 MB,适合嵌入式。
• Go 层仅做 cgo 封装,交叉编译需携带 libvosk.so,边缘侧容器镜像体积 > 80 MB。
• 不支持流式 Transformer,长音频识别延迟高;优势是 中文小模型准确率优于 Whisper-tiny。
  1. go-astideepspeech
• 仅英文,模型 2019 年后不再更新,WER 落后 Whisper 约 30 %。
• 依赖 libdeepspeech.so,2024-09 以后仓库无提交,已处于 archived 状态 。
  1. whisper.cpp + go-bind
• 非官方,但社区 star 数高;通过 cgo 调用 whisper.cpp 的 ggml 后端。
• 支持 OpenCL/Metal/CUDA 后端,Apple M 系列可用 GPU。
• 缺陷:Go 层只提供「整段推理」,流式需要额外分段逻辑;无官方预训练权重托管,需手动下载。
  1. 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

目前用 Go 语言原生开发 且 可直接本地运行 的 TTS(文本转语音)开源方案不多,但已有两个可以“开箱即用”的项目,均支持 离线合成 和 跨平台编译,无需 Python 环境,也无需调用云端 API:
名称 协议 是否离线 内置模型/权重 音质 活跃情况
HTGO-TTS MIT ✅ 离线 调用系统 TTS(Windows)或嵌入 espeak-ng 一般(机器声) 2024-10 仍在发版
edge-tts-go MIT ❌ 需联网 调用 Microsoft Edge 在线服务 接近真人 2024-04 持续维护
以 GitHub 2024-09 以后 commit 为参考。



  1. HTGO-TTS(完全离线)


• 原理:
• Windows 下直接调用 SAPI 接口,由系统自带语音包发声;
• Linux/macOS 下通过 espeak-ng 合成,无需网络。
• 安装 & 运行(Go 1.22+):
go get github.com/hegedustibor/htgo-tts

package main
import "github.com/hegedustibor/htgo-tts"
func main() {
speech := htgotts.New("en") // 也可 "zh" 等
speech.Speak("Hello, this is a pure Go TTS demo.")
}

• 特点:
• 单文件即可编译;体积 < 10 MB;适合嵌入式或离线提示场景。
• 缺点:音色固定、机器感明显,不支持神经网络级高质量语音。



  1. edge-tts-go(云端,但免费)


• 原理:封装 Microsoft Edge 浏览器「大声朗读」接口,在线合成,音质接近真人,支持 40+ 语种、多种风格。
• 安装 & 运行:
go install github.com/wujunwei928/edge-tts-go/cmd/edge-tts-go@latest
edge-tts-go -t "你好,世界" -v zh-CN-XiaoxiaoNeural -o hello.mp3

• 特点:
• 无需登录、零成本;可下载 MP3 或直接播放。
• 缺点:必须联网;大规模商用需留意微软服务条款。



结论
• 若你要 纯 Go 源码 + 离线 + 零依赖,目前唯一可用的是 HTGO-TTS;
• 若能接受 联网,想要 高保真、多音色,用 edge-tts-go 即可 10 行代码搞定。
• 目前 Go 圈尚无「原生实现 Tacotron2/FastSpeech2 + 预训练权重」的端到端离线神经 TTS 框架;需要神经级音质只能先走 Python 端(Coqui-TTS、TensorFlowTTS 等)再通过 RPC/ONNX 给 Go 调用。