Transcribe.cpp:让本地语音转文字变得简单

查看原文 HN 讨论

文章摘要

transcribe.cpp 是一个基于 GGML 的语音转文字(speech-to-text)推理库,专门为跨平台分发而设计。作者 CJ Pais(sipjca)是流行的语音输入应用 Handy 的维护者,正是在给 Handy 做跨平台分发的过程中,他深刻体会到把 ASR 模型部署到 Mac、Windows 和 Linux 上有多痛苦,于是做了这个库。

核心能力上,它目前支持 16 个 ASR 模型家族、60 多个模型,并计划继续扩展。定位是 whisper.cpp 的大体兼容替代品,但支持的模型范围要宽得多。硬件加速方面,得益于 GGML 底座,它同时支持 Vulkan、Metal、CUDA 和 TinyBLAS 多条路径——作者特别强调,Vulkan 支持是本地推理部署的最低标准(言下之意是很多项目连这个都做不到,导致在非 NVIDIA、非 Apple 硬件上无法加速)。功能上同时支持流式(streaming)和批量转录。

质量保证是这个项目最扎实的部分:每一个模型都要经过与参考实现的数值验证,并在数千条语句上做完整的 WER(词错误率)测试,以确保精度与原实现一致。这在”随手包一层就发布”的开源 AI 项目里相当罕见。语言绑定方面提供 4 种由维护者亲自支持的绑定:Python、JavaScript/TypeScript、Rust 和 ObjC/Swift,覆盖桌面和移动端应用集成。性能基准在消费级硬件上测量,包括 Ryzen 4750U 和 M4 Max。

作者在文中阐述的动机被 HN 上广泛引用:他认为展望未来,出于各种原因会有越来越多的推理发生在本地,这就把”分发”问题推到了最前台——要让更多应用在本地跑推理,就必须让跑推理这件事变简单,目标是消除语音处理任务上不必要的云依赖。文章末尾还有一句被反复提及的声明:”这里的文字有用 AI 写的吗?没有。它们来自我的嘴或我的手指。”项目的资金来源方面,作者透露 Mozilla AI 赞助让他有时间认真对待这个项目并发出 v0.1.0,此外还有 Handy 社区的捐赠和一些赞助者。发帖时说话人分离(diarization)功能正在开发中。

HN 评论精华