使用说明
语音mcp
双向语音MCP服务器 克劳德代码.添加 listen() 和 speak() 工具,以便克劳德可以听到你的声音并进行回应——所有这些工具都在苹果硅上本地运行,通过 mlx音频.
User speaks → listen() → mic + VAD → Voxtral Realtime STT → text to Claude
Claude responds → speak(text) → Kokoro TTS → AudioPlayer → speakers
需求
- 带苹果硅(M1+)的macOS
- Python 3.11+
- 紫外线
- 工作麦克风和扬声器
设置
git clone <this-repo> && cd voice-mcp
uv sync
第一次运行从HuggingFace下载模型(总共约2.5 GB):
- 语音转文字:
mlx-community/Voxtral-Mini-4B-Realtime-2602-int4(Voxtral实时,4位量化) - 文本转语音:
mlx-community/Kokoro-82M-bf16(科科罗,82M参数)
配置Claude代码
回购包括 .mcp.json 所以Claude Code会自动发现服务器。只需从项目目录中打开Claude Code:
cd voice-mcp
claude
首次使用时,Claude Code会提示您批准MCP服务器。
从a使用 不同的项目,添加到该项目的 .mcp.json:
{
"mcpServers": {
"voice": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/voice-mcp", "run", "server.py"]
}
}
}
用法
语音输入
告诉克劳德“听我说”或使用 /listen 斜线命令。当麦克风处于活动状态时,您会听到一个上升的蜂鸣声——自然说话,录音在1.5秒的静音后自动停止(下降的蜂鸣声)。
语音输出
克劳德会自动说出对话式的回应。代码、数据和技术细节保留在终端中。
改变声音
使用 /voice 浏览9种语言的所有54种可用语音,或 /voice am_echo 直接切换。
工具
listen(duration?)
从麦克风录制音频并返回转录。
- 默认:基于VAD——等待发言,沉默后停止
- 随着
duration:固定长度录制(秒) - STT语言:ar、de、en、es、fr、hi、it、ja、ko、nl、pt、ru、zh
speak(text, voice?, speed?, lang?)
通过电脑扬声器大声朗读文本。
- 声音:Kokoro语音ID(默认值:
af_heart).看/voice对于选项 - 速度:播放速度倍数(默认值:1.0)
- 语言:语言代码--
a美国英语,b英国英语,e西班牙语,f法国人,h印地语,i意大利语,j日本人,p葡萄牙语,z普通话
运作原理
服务器作为Claude Code管理的stdio子进程运行。音频I/O(麦克风+扬声器)发生在服务器进程中;只有文本穿过MCP协议。
- 语音转文字:Voxtral实时(4B参数,int4)-通过具有自适应RMS归一化的因果编码器解码器流式传输音频
- 文本转语音:Kokoro(82M参数,bf16)——阿尔伯特文本编码器→ 韵律预测器→ iSTFTNet声码器
- 语音活动检测:webrtcvad(模式3),具有基于能量的回退功能
- 音频提示:通过声音设备合成音调——上升的铃声=收听,下降的铃声=完成
- 通知:收听开始/停止和讲话时通过挂钩显示macOS横幅
模型在服务器启动时通过FastMCP的生命周期挂钩预加载,因此第一次工具调用很快。
演示
打开你的声音——这个演示有声音!
克劳德代码
https://github.com/user-attachments/assets/22493ae6-2da9-4a06-b8ef-be203c98b35d
OpenAI Codex
https://github.com/user-attachments/assets/09b6dceb-d83d-46a9-a2fd-d66fa3bc1186
米斯特拉尔·维贝
https://github.com/user-attachments/assets/7530373f-719d-46c5-8a35-2337e8121356
