/ 目录 / 演练场 / VoiceMode
● 社区 mbailey 🔑 需要你的密钥

VoiceMode

作者 mbailey · mbailey/voicemode

用语音和 Claude Code 对话、听它回应——解放双手,适合结对编程、无障碍需求和心流工作状态。

VoiceMode 通过 MCP 为 Claude Code 添加自然的双向语音能力。使用 Whisper 做语音识别(本地或 API),支持配置多种 TTS 引擎(OpenAI、ElevenLabs 或本地)。在 MCP 服务器旁运行一条小型音频管线。适合短 prompt 和朗读审查,不适合 5 分钟的长篇独白。

为什么要用

核心特性

实时演示

实际使用效果

voicemode-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "voicemode-mcp": {
      "command": "uvx",
      "args": [
        "voice-mode"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "voicemode-mcp": {
      "command": "uvx",
      "args": [
        "voice-mode"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "voicemode-mcp": {
      "command": "uvx",
      "args": [
        "voice-mode"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "voicemode-mcp": {
      "command": "uvx",
      "args": [
        "voice-mode"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "voicemode-mcp",
      "command": "uvx",
      "args": [
        "voice-mode"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "voicemode-mcp": {
      "command": {
        "path": "uvx",
        "args": [
          "voice-mode"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add voicemode-mcp -- uvx voice-mode

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: VoiceMode

一边看文档一边解放双手,语音驱动 Claude Code 会话

👤 一个显示器看文档、另一个写代码的开发者 ⏱ ~30 min intermediate

何时使用: 你在看设计文档,想口述修改内容,不想来回切换窗口。

前置条件
  • 麦克风 + 扬声器 — 系统音频已配置——用 say "hello" 或等效命令测试
  • Whisper 模型已准备好voice-mode install-whisper 下载本地模型
步骤
  1. 启动语音
    使用 voicemode。监听 prompt 并用语音回应。跟我说:「ready」。✓ 已复制
    → TTS 播放「ready」
  2. 口述修改
    [语音] 修改 src/auth.ts——密码改用 bcrypt,而不是明文 SHA256。✓ 已复制
    → 转写正确;修改已应用;TTS 确认
  3. 审查
    [语音] 给我念一下 diff。✓ 已复制
    → TTS 分段朗读 diff,可暂停

结果: 整个会话中双手从未离开正在做的事。

注意事项
  • TTS 在你说话时打断你 — 启用推送通话模式或设置唤醒词
搭配使用: filesystem

因无障碍需求或 RSI 康复期用语音编程

👤 有 RSI、弱视或偏好语音输入的开发者 ⏱ ~60 min intermediate

何时使用: 你暂时无法打字,但需要继续出活。

前置条件
  • 可接受的环境噪音 — 安静的房间;头戴式麦克风优于笔记本内置麦
步骤
  1. 基准测试
    [语音] 使用 voicemode。大声朗读最新的 git diff,文件之间停顿一下。✓ 已复制
    → TTS 朗读清晰
  2. 工作流
    [语音] 重构 src/models/user.ts 中的用户模型。把密码哈希移入一个方法中。先给我看方案。✓ 已复制
    → 方案已语音输出;需确认后才执行修改

结果: 全程不需要键盘输入的完整编码会话。

注意事项
  • TTS 对代码符号发音错误 — 配置 TTS 的音素字典,处理常见编程术语

组合

与其他 MCP 搭配,撬动十倍杠杆

voicemode-mcp + filesystem

语音口述的代码修改落地到仓库

我来口述修改;每次读回确认后再应用到文件。✓ 已复制
voicemode-mcp + github

语音审阅 diff 后口述 PR 描述

给我读暂存的修改,然后开一个 PR,描述由我口述。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
start_listening mode: "ptt"|"vad" 开始语音会话 free or OpenAI Whisper API
speak text: str, voice?: str Claude 需要语音输出任何内容时 TTS provider-dependent
transcribe_last none 获取用户刚才说的内容 Whisper call
stop_listening none 结束语音会话 free

成本与限制

运行它的成本

API 配额
本地:免费。OpenAI Whisper:$0.006/分钟。ElevenLabs TTS:约 $0.30/千字符。
每次调用 Token 数
音频管线不直接计入 token 消耗
费用
本地方案免费;云端服务商按量计费
提示
本地 Whisper + Coqui TTS 完全免费但质量较低——先用云端,有需要再降级

安全

权限、密钥、影响范围

最小权限: microphone speakers
凭据存储: TTS/STT API key 存为环境变量
数据出站: 非本地时,语音音频会传输到 TTS/STT 服务商

故障排查

常见错误与修复

Mic not detected

系统音频权限——给终端/Claude Code 授予麦克风访问权限

验证: `voice-mode test-mic` prints levels
TTS sounds robotic

默认使用本地 Coqui——通过 VOICE_MODE_TTS=openai 切换到 OpenAI tts-1-hd

Lag between my speech and response

STT 改用本地 Whisper-tiny;云端方案会增加 500ms 以上的延迟

替代方案

VoiceMode 对比其他方案

替代方案何时用它替代权衡
macOS Dictation + say command你只需要基本的系统级语音功能与 Claude 输出没有集成——只能单向输入
Superwhisper / Wispr Flow你想要一个精良的原生 macOS 语音听写应用不集成 MCP;不支持 agent 级工作流

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills