Handy 开发者推出 transcribe.cpp:一个跨平台语音转录库,试图终结 ASR 推理的碎片化困境
本地语音转录的开发者长期面临一个尴尬局面:whisper.cpp、ONNX、MLX……每换一个平台就要维护一套引擎、重新移植一次模型。7 月 19 日,知名语音转文字应用 Handy 的作者 sebjones 发布了基于 ggml 的语音转录库 transcribe.cpp v0.1.0,试图用单一方案解决这一痛点。
sebjones 在博客中坦陈了催生这个项目的现实压力。现有 ASR 推理栈在分发跨平台应用时体验糟糕:不少开源库作者不明、测试不清,既缺乏长期维护保障,也没有为桌面或移动应用设计的官方绑定,更谈不上与参考实现一致的数值验证。对于需要将语音功能嵌入产品的开发者而言,理想方案应当"下载模型即可推理"、结果与参考实现对齐、能调用 GPU 且无需捆绑庞大的 PyTorch,同时覆盖 Mac、Windows 和 Linux。几经比较,他最终选择了社区活跃、分发能力出色的 ggml 作为基础。
目前 transcribe.cpp 支持 16 个 ASR 模型族、合计 60 余个模型。加速方面提供 Vulkan、Metal、CUDA 和 TinyBLAS 四条 GPU 路径,其中 Vulkan 被作者视为本地推理应用的"底线"。每个模型均经过数值验证与完整词错率(WER)测试——即数千条语音片段的反复比对,确保输出与参考实现一致,验证结果公开于仓库及 Hugging Face 对应页面。功能上支持流式与批量转录,且兼容 whisper.cpp 的 .bin 文件格式,可作为其即插即用替代方案。sebjones 表示,Handy 的下一版更新就将用 transcribe.cpp 替换原有的 whisper.cpp 后端。
语言绑定是该库从设计之初就重点考虑的环节。除 C/C++ 本体,官方还提供 Python、JavaScript/TypeScript、Rust 以及 Objective-C/Swift 的绑定,并欢迎社区在能承担维护的前提下贡献更多语言支持。
sebjones 认为,本地 ASR 的准确率已足够高,无需将音频上传云端。他以 RK3566 芯片为例:即便在这块性能较弱的处理器上,transcribe.cpp 也能以快于实时的速度完成 CPU 推理,而最先进模型的功耗仅数瓦。"未来会有更多推理发生在本地,分发问题因此变得至关重要。"他说,transcribe.cpp 远未解决所有问题,但希望是"向前的一小步"。
该项目获得了多方支持:Mozilla AI 及其 BiR 项目在项目早期即决定资助;Modal 提供了 WER 测试与 CUDA 验证的算力;Blacksmith 承担了部分 CI/CD 工作;Hugging Face 则为 handy-computer 组织的模型提供了托管空间。sebjones 也承认使用了 AI 辅助开发——"一个人靠 ggml 在几个月内从零写出这种规模的引擎是不可能的"——但强调所有对外文字均出自本人之手。

原文链接:workshop.cjpais.com/projects/transcribe-cpp