本地语音转录这件事,开发者长期被困在一个尴尬的夹缝里:要么用whisper.cpp,要么用ONNX,想在苹果设备上跑还得再塞一个MLX,等于同时维护两套引擎、为每个引擎各移植一遍模型。
7月19日,知名语音转文字应用Handy的作者和维护者sebjones,把他在分发跨平台应用时踩过的坑,直接炼成了一个新库——transcribe.cpp,并发布v0.1.0版本。
一、为什么会有transcribe.cpp?
痛点非常具体。sebjones直言,用现有的ASR推理栈去分发跨平台应用,体验非常糟糕。市面上虽有一些零散库声称支持大量模型,但作者不明、测试不清。
他需要的是这样一套方案:下载模型文件就能直接跑推理,结果能和参考实现对得上;推理必须跑在GPU上拿最佳性能;能轻松嵌入Handy,而不是背上庞大的PyTorch;同时兼容Mac、Windows和Linux。
几经比较,ggml成了他眼中最好的方向——既有强大社区,分发能力也出色。
二、60+模型,16个ASR家族
transcribe.cpp给开发者交付的是一个推理引擎加极其广泛的模型覆盖。它支持16个ASR模型族、合计60多个模型,更多模型还在路上。
模型清单覆盖了主流选择:
Whisper:全部12个变体,从tiny到large-v3-turbo
NVIDIA Parakeet:TDT 0.6B v3目前位居Hugging Face Open ASR榜首,25种欧洲语言平均WER仅6.34%,GPU上转录速度约为实时的3333倍
Voxtral:Mistral出品,Mini 4B Realtime版Apache 2.0授权,流式延迟低于500ms,横跨13种语言
Canary / Canary-Qwen、Moonshine(含流式版)、Qwen3-ASR、Cohere Transcribe、SenseVoice、FunASR Nano、Nemotron Speech、Granite Speech、MedASR(英文医疗听写)、MOSS Transcribe-Diarize(英中双语+说话人分离)
三、GPU加速:四条路径通吃
加速方面,transcribe.cpp通过Vulkan、Metal、CUDA和TinyBLAS四条路径把推理搬到GPU上。作者尤其把Vulkan当成任何本地推理应用的底线,这意味着即便你没有NVIDIA显卡,AMD GPU、集成显卡、甚至移动端芯片都能跑——打破了CUDA对高性能推理的垄断。
每个模型都在Fedora系统的Ryzen4750U(CPU加Vulkan)以及作者的M4Max上做了基准测试。每个模型都经过数值验证与完整的WER扫描——被数千条语音片段反复打磨,输出与参考实现非常接近甚至完全一致,验证结果同时公开在仓库和Hugging Face对应模型页面里。
功能层面支持流式转录与批量转录两种模式。
四、即插即用:whisper.cpp的直接替代
Handy原本就跑在whisper.cpp上,作者正是要用transcribe.cpp发一个更新把它换掉。为此他特意保持了对whisper.cpp随Handy发布的流行.bin文件的兼容——transcribe.cpp能直接运行这些文件。虽然部分标志和功能尚未完全对齐,但绝大多数用例下其whisper实现足够可靠,性能也大致相当。
五、官方绑定:四种语言一把抓
库本身用C/C++写成。作者挑了四种覆盖度最具代表性的语言做了官方绑定:Python、JavaScript与TypeScript、Rust,以及Objective-C与Swift。
Python绑定7月11日就已发布,直接pip install transcribe-cpp即可。这对想在桌面或移动应用里集成本地语音功能的开发者来说,省掉了大量移植工作。
六、低功耗也能跑:RK3566快于实时
作者举了一个硬核例子:RK3566这块性能羸弱的芯片,用transcribe.cpp在CPU上就能以快于实时的速度跑模型,功耗只有几瓦。这意味着哪怕在低端嵌入式设备上,本地语音转录也完全可行。
七、Mozilla AI背书
transcribe.cpp是Mozilla AI的Builders in Residence计划资助的第一个项目。这个计划专门资助符合Mozilla关于可移植性和开放性使命的独立开源工作。
八、终极目标:让本地ASR变成默认选项
在作者看来,transcribe.cpp的终极目标是让本地ASR变得更易用。语音转录在绝大多数设备上都能跑出极高准确率,根本没必要把声音传到云端。他判断,未来会有更多推理发生在本地,分发问题因此变得至关重要。
项目地址:github.com/handy-computer/transcribe.cpp
