Whispr借助Cloudflare AI推出开源免费层
速览
Whispr是一个开源项目,基于Cloudflare AI服务实现免费层功能,让开发者无需付费即可使用AI能力。这降低了AI应用门槛,展示了云平台与开源结合的趋势。该工具可能面向语音或文本处理,具体能力待进一步披露。
AI 深度解读
背景
语音转文字(STT)工具已广泛应用于会议记录、即时消息输入等场景,但大多数现有方案存在两个痛点:一是需要手动复制粘贴转换结果,打断工作流;二是依赖本地计算资源或付费 API,难以在低成本下实现“热键触发→语音输入→自动粘贴”的无缝体验。近期,一款名为 VoiceBox 的开源项目在 Hacker News 上引发关注。它利用 Cloudflare Workers AI 的免费配额,将语音采集、Whisper 转录、LLM 格式化输出整合为一条完整链路,并通过全局热键与 macOS 辅助功能实现“按住说话、松开即粘贴”的操作模式,为开发者提供了一套可自部署的轻量级语音输入方案。
核心内容
VoiceBox 是一个跨平台(当前仅 macOS 实现辅助功能自动粘贴)的桌面应用,架构分为三层:客户端桌面应用(Wails + Go + React)、Cloudflare Worker 后端(TypeScript + Durable Objects)以及配置管理。
工作流
- 用户按住预设热键(默认
Ctrl+Cmd)——此时系统捕获当前聚焦的应用上下文(如光标所在输入框的 app 名称、元素角色、占位符等),并开始录音,屏幕顶部中央出现一个 160×48 像素的浮动覆盖层显示音量指示条。 - 松键——录音停止,音频数据(PCM 格式)通过 WebSocket 流式发送到 Cloudflare Worker。
- Worker 中的 Durable Object 累积音频块,收到
audio_end信号后调用 Whisper 模型进行转录,再使用 Qwen3 等 LLM 对转录结果进行格式化(如修正标点、整理为自然段落)。 - 格式化后的文本返回客户端,自动写入剪贴板,并模拟
Cmd+V粘贴到用户之前操作的 App 中——整个过程无需手动切换窗口。
技术栈
- 桌面端:Go 1.24+、Wails v2(Go + React WebView)、React + Tailwind(UI)、malgo/miniaudio(音频捕获)、macOS AX API(辅助功能自动粘贴)。
- 后端 Worker:TypeScript、Cloudflare Workers、Durable Objects(会话管理)、Workers AI(模型推理)。
- 模型:STT 使用
@cf/openai/whisper-large-v3-turbo(云端);格式化使用@cf/qwen/qwen3-30b-a3b-fp8(云端)。本地模式可替换为 faster-whisper + Ollama。 - 音频参数:16kHz 单声道 PCM 16-bit LE,块大小约 4096 字节(约 128ms),最大录音时长约 13 分钟(25 MiB)。
配置与部署
- 用户需拥有 Cloudflare 账号并开通 Workers AI,创建共享令牌
VOICEBOX_TOKEN。 - 配置文件(TOML 格式)支持本地路径与云端 Worker URL,可通过首次启动时自动弹出的设置界面(700×450 窗口)编辑,也可手动编辑
~/.config/voicebox/voicebox.toml。 - 开发模式:
wails dev(热重载);生产构建:wails build。Worker 端使用pnpm deploy部署到 Cloudflare。
通信协议
客户端通过 WebSocket 连接到 /ws?token=<auth-token>,交互如下:
- 服务器发送
{"type":"ready"} - 客户端发送
configure消息(包含音频参数 + 聚焦元素上下文) - 客户端连续发送二进制 PCM 块
- 客户端发送
{"type":"audio_end"} - 服务器返回
{"type":"processing"},随后返回{"type":"result"}包含格式化后的文本
本地替代选项
项目预留了接口 internal/stt/ 和 internal/formatter/,允许替换为本地模型(如 faster-whisper 做 STT、Ollama 做格式化),但需要自行实现相应 provider。
关键要点
- 零成本云端推理:利用 Cloudflare Workers AI 的免费层(每日可免费调用一定次数的 Whisper 和 Qwen),实现无服务器、按需付费的语音处理,适合个人或小团队使用。
- 全自动粘贴:通过 macOS Accessibility API 获取聚焦元素上下文,并在结果到来后模拟
Cmd+V,将转录文本直接插入正在编辑的输入框中,极大减少用户操作步数。 - 热键触发:全局热键
Ctrl+Cmd开始录音,松键结束并触发全流程,UI 反馈仅在录制期间出现浮动覆盖层(含音量指示),使用体验接近“语音快捷输入”。 - 上下文感知格式化:Worker 在
configure消息中接收聚焦元素的 app 名称、输入框 placeholder 等信息,LLM 根据这些信息调整输出风格(例如在代码编辑器中可能格式化代码片段,在聊天框中保持自然语言)。 - 架构可扩展:Provider 接口分离了 STT 和 Formatter,允许社区贡献更多实现(如 Google Cloud STT、OpenAI API 等)。
- 当前仅 macOS 完整支持:自动粘贴功能依赖 macOS AX API,Windows/Linux 版本的
window_other.go仅为桩文件,需要额外开发才能支持全局粘贴。 - 部署门槛:需要 Cloudflare 账号、Workers AI 开通、配置域名和共享密钥,对非开发者用户有一定复杂度。
意义与影响
VoiceBox 展示了如何利用开源组件和服务器的免费配额,构建一个“零费用、低延迟”的语音输入助手。它的意义在于:
- 降低语音输入门槛:传统语音输入方案要么依赖付费 API(如 OpenAI Whisper API),要么需要用户自行搭建 GPU 服务器。VoiceBox 通过 Cloudflare Workers AI 的免费层消除了成本顾虑,使得个人开发者甚至非技术用户都能快速部署一套可用的语音转文本工具。
- 工作流无缝集成:“按热键说话→自动粘贴”的模式模仿了语音备忘录与即时输入的融合,尤其适合在写代码、填表单、聊天等场景下快速输入长文本。它不依赖额外 UI,不打断当前应用焦点,体现了“交互最小化”的设计哲学。
- 对 Cloudflare 生态的示范作用:该项目全面使用了 Cloudflare 的 Durable Objects(有状态会话管理)、Workers AI(模型推理)、静态部署等能力,为开发者展示了如何用 Serverless 架构搭建实时音频处理管线。这可能会激励更多类似项目将 AI 推理放在边缘节点,降低延迟。
- 开源可审计:所有代码托管在 GitHub(注释中可见
/internal/,/worker/等目录),用户可以自行审查、修改,甚至替换为本地模型以符合隐私要求(如敏感环境下不发送音频到云端)。 - 启发社区改进:当前版本缺少 Windows/Linux 的自动粘贴支持,以及录音时长的上限限制。社区可能据此开发跨平台替代方案,或加入噪音抑制、自动分句等增强功能。同时,它也为 Cloudflare Workers 开发者提供了一个典型的 WebSocket + Durable Objects + AI 工作流参考实现。
