Skip to content

语音输入:说话代替打字

需要 Claude Code v2.1.69 或更高版本。运行 claude --version 检查。

按住按键说话,Claude Code 把语音实时转写到提示词输入框。可以语音和文字混合使用,在同一条消息里自由切换。

使用前提

语音输入使用流式语音转文字服务,必须满足以下条件:

  • claude.ai 账号认证(不支持 API key、Bedrock、Vertex AI、Foundry)
  • 需要本地麦克风访问权限,不支持远程环境(Claude Code on the web、SSH 会话)

WSL 说明:

  • WSL2 + Windows 11:WSLg 提供音频访问,支持语音输入
  • Windows 10 或 WSL1:在原生 Windows 运行 Claude Code

Linux 音频模块:

  • 优先使用内置原生模块
  • 回退顺序:arecord(ALSA utils)→ rec(SoX)
  • 如果都没有,/voice 会显示安装命令

开启语音输入

text
/voice

首次开启时进行麦克风检测。macOS 如果终端尚未获得麦克风权限,会弹出系统权限请求。

开启后显示:

Voice mode enabled. Hold Space to record. Dictation language: en (/config to change).

语音输入设置跨会话持久化。再次运行 /voice 关闭,或在 settings.json 中配置:

json
{
  "voiceEnabled": true
}

开启后,输入框底部显示 hold Space to speak 提示(配置了 Status Line 时不显示此提示)。


如何录入语音

按住 Space 键开始录音。 Claude Code 通过检测快速键重复事件来判断按住状态,所以有一小段预热时间。

  • 底部显示 keep holding… = 预热中
  • 切换为实时波形图 = 开始录音

预热期间会有一两个字符打入输入框,录音激活后自动删除。单次按 Space 仍然输入空格。

说话时转写文字以浅色显示(暂定版本),松开 Space 后文字定稿并变为正常颜色。

混合使用:

> 重构认证中间件来▮
  # 按住 Space,说"使用新的 token 验证帮助函数"
> 重构认证中间件来使用新的 token 验证帮助函数▮

可以先打部分文字,移动光标到特定位置,再按住 Space 语音输入插入到那个位置。松开 Space 后光标停在插入文字末尾。

**识别优化:**语音转写针对编程词汇调优,regexOAuthJSONlocalhost 等常用技术词汇都能正确识别。项目名称和当前 git 分支名称会自动添加为识别提示。


更改听写语言

语音输入使用 language 设置(同样控制 Claude 回复语言)。未设置时默认英语。

/config 中修改,或直接编辑 settings.json(支持语言代码或语言名称):

json
{
  "language": "japanese"
}

支持的语言:

捷克语(cs)、丹麦语(da)、荷兰语(nl)、英语(en)、法语(fr)、德语(de)、希腊语(el)、印地语(hi)、印尼语(id)、意大利语(it)、日语(ja)、韩语(ko)、挪威语(no)、波兰语(pl)、葡萄牙语(pt)、俄语(ru)、西班牙语(es)、瑞典语(sv)、土耳其语(tr)、乌克兰语(uk

如果设置的语言不在支持列表中,/voice 会提示警告并回退到英语听写,Claude 文字回复不受影响。


自定义 Push-to-Talk 按键

语音输入绑定到 Chat 上下文的 voice:pushToTalk action,默认 Space 键。在 ~/.claude/keybindings.json 中修改:

json
{
  "bindings": [
    {
      "context": "Chat",
      "bindings": {
        "meta+k": "voice:pushToTalk",
        "space": null
      }
    }
  ]
}

"space": null 解绑默认按键。如果两个键都要保留,删掉 "space": null 那行。

推荐用修饰键组合(如 meta+k):

  • 修饰键组合在第一次按键时立即开始录音,没有预热时间
  • 避免绑定普通字母键(如 v),预热期间字母会打入输入框
  • Space 或修饰键组合都是好选择

常见问题

Voice mode requires a Claude.ai account

用 API key 或第三方服务商认证了。运行 /login 切换到 claude.ai 账号。

Microphone access is denied

授予终端麦克风权限:

  • macOS:系统设置 → 隐私与安全 → 麦克风
  • Windows:设置 → 隐私 → 麦克风

授权后重新运行 /voice

Linux:No audio recording tool found

安装报错信息中提示的工具,例如:

bash
sudo apt-get install sox

按住 Space 没反应

观察输入框:如果 Space 一直在累积,说明语音模式没开;运行 /voice 开启。

如果只出现一两个 Space 然后什么都没有,说明语音模式已开但按住检测没触发——可能是操作系统禁用了键重复。语音输入需要终端发送键重复事件。

转写乱码或语言不对

确认 /config 中的语言设置与你说话的语言匹配。


相关文档