开源、免费层级可用的Whispr,使用Cloudflare AI
摘要
VoiceBox是一款开源的桌面语音转文本工具,它捕获语音,通过Cloudflare AI上的Whisper进行转录,并使用LLM格式化输出,自动将结果粘贴到当前活动应用中。
查看缓存全文
缓存时间: 2026/07/16 04:48
PrestigePvP/Voicebox 源码:https://github.com/PrestigePvP/Voicebox
VoiceBox
语音转文字工具,捕获语音,通过 Whisper 转录,并用 LLM 格式化输出。按下热键,说话,松开——格式化后的文本会进入剪贴板,并自动粘贴到你正在输入的地方。
工作原理
┌──────────────────────┐ PCM 数据块 ┌──────────────────────────────────┐ 格式化 │ Wails 桌面应用 │ ──WebSocket──▶ │ Cloudflare Worker (Durable Obj) │ ──文本────▶ 剪贴板 → 自动粘贴 │ (Go + React WebView)│ ◀─────────────│ Whisper STT → LLM 格式化器 │ └──────────────────────┘ └──────────────────────────────────┘
- 按住 Ctrl+Cmd — 捕获焦点上下文,开始录音,屏幕顶部中央显示叠加层
- 对着麦克风说话(语音电平表显示输入)
- 松开 Ctrl+Cmd — 音频流传输到云端
- Whisper 转录,LLM 格式化,结果复制到剪贴板并自动粘贴回原始应用
项目结构
voicebox/ ├── main.go # Wails 入口,应用菜单 ├── app.go # 应用生命周期,热键处理,管道编排 ├── window_darwin.go # macOS 窗口管理(叠加层、设置、Dock 点击) ├── window_other.go # 非 macOS 构建时的桩代码 ├── internal/ │ ├── audio/ # PCM 音频捕获(malgo/miniaudio),RMS 电平 │ ├── pipeline/ # WebSocket 客户端,将音频 + 焦点上下文流传输到 Worker │ ├── accessibility/ # macOS AX API:焦点元素上下文 + 自动粘贴(Cmd+V) │ ├── config/ # TOML 配置加载与保存 │ ├── hotkey/ # 全局热键注册 │ ├── stt/ # STT 提供者接口(桩代码) │ └── formatter/ # LLM 格式化提供者接口(桩代码) ├── frontend/ # React + Tailwind 叠加层 UI(Vite) │ └── src/ │ ├── App.tsx # 路由切换设置模式和叠加模式 │ ├── components/ │ │ ├── settings-form.tsx # 配置编辑器(react-hook-form + zod) │ │ └── title-bar.tsx # 无边框标题栏(带拖动区域) │ └── hooks/ │ ├── use-voicebox.ts # voicebox:state / voicebox:mode / voicebox:level 事件 │ └── use-config.ts # GetConfig / SaveConfig / GetConfigPath 绑定 ├── worker/ # Cloudflare Worker(TypeScript) │ ├── src/ │ │ ├── index.ts # 路由:/ws(WebSocket),/health │ │ ├── session.ts # Durable Object:音频累积 + AI 处理管道 │ │ ├── prompt.ts # 系统提示 + 用户消息构建器 │ │ ├── wav.ts # PCM 转 WAV 包装器 │ │ └── types.ts # 共享类型 │ ├── test/ # Vitest 测试 │ └── wrangler.jsonc # Worker 配置 ├── go.mod └── voicebox.toml # 用户配置(已加入 gitignore)
设置
前提条件
- Go 1.24+
- Node.js + pnpm
- Wails v2(https://wails.io/)CLI
- 一个启用了 Workers AI 访问权限的 Cloudflare 账户
- macOS(自动粘贴需要无障碍权限)
部署 Worker
bash cd worker pnpm install wrangler secret put VOICEBOX_TOKEN # 设置共享密钥 pnpm deploy
配置桌面客户端
首次启动时,VoiceBox 会打开设置窗口。你也可以在 ~/.config/voicebox/voicebox.toml 中手动创建配置:
``toml [provider] mode = “cloud”
[cloud] worker_url = “https://voicebox..workers.dev” token = “your-shared-secret”
[audio] sample_rate = 16000 channels = 1 chunk_size = 4096
[hotkey] record = “ctrl+cmd” ``
配置加载顺序(按优先级):~/.config/voicebox/voicebox.toml、二进制文件同级目录、./voicebox.toml。
macOS 无障碍权限
自动粘贴需要 macOS 无障碍访问权限。首次使用时,macOS 会提示授予权限,你也可以在 系统设置 → 隐私与安全性 → 无障碍 中手动开启。
构建与运行
bash wails dev # 开发模式,支持热重载 wails build # 生产构建
窗口模式
设置(700×450,居中):启动时、点击 Dock 图标或通过“录音”菜单打开。在此处编辑配置。 叠加层(160×48,顶部居中,浮动):录音时显示。显示带语音电平表指示器,处理时显示旋转动画,成功时显示对勾。
WebSocket 协议
客户端连接到 GET /ws?token=。收到 {"type":"ready"} 后,客户端发送 configure 消息(包含音频和焦点上下文),然后流式传输二进制 PCM 数据块:
客户端 服务端 │── 连接 /ws?token=... ──────▶│ │◀── {"type":"ready"} ──────────│ │── {"type":"configure", ...} ──▶│ │── [二进制 PCM 数据块] ─────────▶│ │── [二进制 PCM 数据块] ─────────▶│ │── {"type":"audio_end"} ───────▶│ │◀── {"type":"processing",...} ──│ │◀── {"type":"result",...} ──────│
configure 消息携带音频参数和焦点元素上下文(应用名称、Bundle ID、元素角色、标题、占位符、当前值),LLM 格式化器会根据这些信息调整输出。
云端后端
- STT:
@cf/openai/whisper-large-v3-turbo - 格式化器:
@cf/qwen/qwen3-30b-a3b-fp8
本地后端(第二阶段)
- STT:faster-whisper
- 格式化器:Ollama
- 提供者接口位于
internal/stt/和internal/formatter/
音频规格
- 16kHz 采样率,单声道,PCM 有符号 16 位小端序
- 每块约 4096 字节(约 128ms)
- 最长录音:约 25 MiB(约 13 分钟)
开发
``bash
桌面应用
wails dev # 开发服务器(Go + Vite 热重载) wails build # 生产构建 go vet ./… # Go 代码检查 go test ./internal/… # Go 测试
前端
cd frontend && pnpm install && pnpm build
Worker
cd worker pnpm dev # 本地开发服务器 pnpm lint # 类型检查 pnpm format # prettier 格式化 pnpm test # vitest 测试 pnpm deploy # 部署到 Cloudflare ``
相似文章
Whisper Live - 一个近乎实时的Open AI Whisper实现,免费且开源
WhisperLive 是一个开源实时转录工具,使用OpenAI的Whisper,支持多种后端(如faster-whisper和TensorRT)用于实时语音转文字。
@HowToAI_: ElevenLabs刚刚失去了护城河 有人开源了一款单一应用,可替代ElevenLabs和WisprFlow,且100%本地运行…
一款名为Voicebox的开源应用替代了ElevenLabs和WisprFlow,支持本地语音克隆、多种TTS引擎和MCP服务器,可在多种硬件上运行,采用MIT许可证。
@cevenif: 兄弟们,那些还得掏钱才能用的语音工具,是时候跟它们说88了! 开源免费的 Voicebox 已经杀出来了,直接把 ElevenLabs 和 WisprFlow 这两家付费巨头按在地上摩擦。 功能: 声音克隆,秒变任何人 全局语音输入,随时…
一个开源免费的本地语音AI工作室,支持声音克隆、语音生成、全局听写,无需API密钥,完全本地运行,是ElevenLabs和WisprFlow的免费替代品。
jamiepine/voicebox
Voicebox 是一个开源的、本地优先的 AI 语音工作室,支持语音克隆、语音生成、听写和 AI 代理集成,提供隐私保护和多引擎 TTS 支持。
Wave
Wave是一款语音转文字工具,提供本地和云端两种处理选项,让用户自由选择隐私与性能的平衡。