README
🚀 Claude Code语音模式
Claude Code语音模式让你无需动手,就能与Claude Code进行连续的双向对话。
它利用全新的Claude Code钩子,在Claude运行时将语音输入传递给它。
这使你能够与Claude持续对话——在Claude工作时进行打断、重新引导或提供反馈,而无需停止它正在执行的任务。
你还可以选择启用文本转语音功能,让Claude以语音形式回复你。
语音识别和文本转语音功能由浏览器处理,因此无需下载任何内容,也不需要API密钥。
🚀 快速开始
✨ 主要特性
- 实现与Claude Code的免提双向对话。
- 利用Claude Code钩子实时传递语音输入。
- 支持在Claude工作时随时交互。
- 可选择文本转语音功能。
- 语音识别和文本转语音由浏览器处理,无需下载和API密钥。
📦 安装指南
安装过程十分简单。
1. 安装Claude Code
npm install -g @anthropic-ai/claude-code
2. 安装语音模式
npx mcp-voice-hooks@latest install-hooks
claude mcp add voice-hooks npx mcp-voice-hooks@latest
💻 使用示例
基础用法
1. 启动Claude Code
claude
2. 开始监听
浏览器界面将在3秒后自动打开(http://localhost:5111)。 点击“开始监听”。
3. 说话
对Claude说些什么。你需要在Claude Code命令行界面中发送一条消息来开启对话。
4. 触发词模式(可选)
默认情况下,当你暂停说话时,话语会自动发送。你可以在浏览器界面中切换到“等待触发词”模式:
- 切换到“等待触发词”模式。
- 输入一个触发词(例如,“发送”、“Claude”、“开始”)。
- 说出你的消息——它们将在浏览器中排队。
- 说出你的触发词以一次性发送所有排队的消息(或点击“立即发送”)。
触发词不区分大小写,并且在发送消息前将自动从你的消息中移除。
📚 详细文档
浏览器兼容性
- ✅ Chrome:全面支持语音识别、浏览器文本转语音和系统文本转语音。
- ⚠️ Safari:全面支持语音识别和系统文本转语音,但浏览器文本转语音无法加载高质量语音。
- ❌ Edge:在Apple Silicon上语音识别无法工作(语言不支持错误)。
语音回复
语音回复有两种选项:
- 浏览器文本转语音
- 系统文本转语音
选择并下载高质量系统语音(仅适用于Mac)
Mac自带文本转语音功能,但默认情况下没有高质量语音。
你可以从系统语音菜单下载高质量语音:系统设置 > 辅助功能 > 语音内容 > 系统语音
点击系统语音下拉菜单旁边的信息图标。搜索“Siri”以找到最高质量的语音。你需要触发语音下载。
下载完成后,你可以在Chrome的“浏览器语音(本地)”菜单中选择它。
使用以下bash命令进行测试:
say "Hi, this is your Mac system voice"
要在语音钩子中使用Siri语音,你需要设置系统语音,并在语音钩子浏览器界面中选择“Mac系统语音”。 其他下载的语音将显示在语音钩子浏览器界面的语音下拉菜单中,你可以直接在那里选择它们,而无需使用“Mac系统语音”选项。
Safari存在一个问题,即浏览器重启后,浏览器文本转语音无法加载高质量语音。这是Safari Web语音API的限制。要在Safari中使用高质量语音,你需要将系统语音设置为Siri,并在语音钩子浏览器界面中选择“Mac系统语音”。
手动安装钩子
当MCP服务器启动时,钩子会自动安装/更新。但是,如果你需要手动安装或重新配置钩子:
npx mcp-voice-hooks install-hooks
这将使用必要的钩子命令配置你项目的.claude/settings.local.json文件。
卸载
要完全移除MCP语音钩子:
# 从Claude MCP服务器中移除
claude mcp remove voice-hooks
# 同时移除钩子和设置
npx mcp-voice-hooks uninstall
这将:
- 清理你项目
.claude/settings.local.json中的语音钩子。 - 保留你添加的任何自定义钩子。
配置
端口配置
默认端口是5111。要使用不同的端口,请在你项目的.claude/settings.local.json中设置MCP_VOICE_HOOKS_PORT环境变量:
{
"env": {
"MCP_VOICE_HOOKS_PORT": "8080"
}
}
此环境变量用于:
- MCP服务器确定监听的端口。
- Claude Code钩子连接到正确的端口。
注意:在.claude/settings.local.json中设置是推荐的方法。环境变量将对MCP服务器进程和钩子命令都可用。
浏览器自动打开
在MCP管理模式下运行时,如果在3秒内没有前端连接,浏览器将自动打开。要禁用此行为:
{
"env": {
"MCP_VOICE_HOOKS_AUTO_OPEN_BROWSER": "false"
}
}
实验性:替代安装方法 - 插件模式
只需将以下内容添加到你项目的.claude/settings.local.json中,然后重启Claude Code:
{
"extraKnownMarketplaces": {
"mcp-voice-hooks-marketplace": {
"source": {
"source": "git",
"url": "https://github.com/johnmatthewtennant/mcp-voice-hooks.git"
}
}
},
"enabledPlugins": {
"mcp-voice-hooks-plugin@mcp-voice-hooks-marketplace": true
}
}
如果你想暂时禁用插件,请将enabled设置为false。
Scan to contact