语音交互MCP服务器

为Claude Code提供双向语音交互功能,通过本地运行的语音转文本和文本转语音工具实现与Claude的自然语言对话。

  • by shreyaskarnik
  • Python
  • 本地部署
  • 16 星标
  • 更新于
在 GitHub 查看 shreyaskarnik/voice-mcp

使用说明

语音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