语音MCP回声
基于: Kvadratni/演讲mcp -最初的演讲MCP项目
多个AI CLI的语音界面-Claude Code、Gemini CLI、Codex CLI和MCP兼容工具。
特性
- 多CLI支持:适用于Claude Code、Gemini CLI、Codex CLI和任何MCP兼容工具
- 持续倾听 *(v0.2.0中的新功能)*:无阻塞后台监听,静音时自动重试
- 可配置STT:本地(更快的耳语)或云(Groq耳语、OpenAI耳语、谷歌语音)
- 可配置TTS:本地(pyttsx3)或云(谷歌云TTS、OpenAI TTS)
- 双语支持:英文和中文(繁体/简体)文本处理
- JARVIS摘要生成器:将长篇回答浓缩为简洁、有趣的摘要
快速开始
安装
# From git (recommended)
pip install 'speech-mcp-echo[recommended] @ git+https://github.com/lukechi1219/speech-mcp-echo.git@v0.2.1'
# Or from wheel
pip install 'speech-mcp-echo[recommended] @ https://github.com/lukechi1219/speech-mcp-echo/releases/download/v0.2.1/speech_mcp_echo-0.2.1-py3-none-any.whl'CLI集成
克劳德代码(主要目标)
增添 ~/.claude.json:
{
"mcpServers": {
"speech-mcp-echo": {
"command": "speech-mcp-echo"
}
}
}可选的:自动批准中的语音工具 ~/.claude/settings.json 为了避免出现确认提示:
{
"permissions": {
"allow": [
"mcp__speech-mcp-echo__start_conversation",
"mcp__speech-mcp-echo__voice_listen",
"mcp__speech-mcp-echo__voice_speak",
"mcp__speech-mcp-echo__voice_reply",
"mcp__speech-mcp-echo__voice_config",
"mcp__speech-mcp-echo__voice_status",
"mcp__speech-mcp-echo__start_listening",
"mcp__speech-mcp-echo__check_listening",
"mcp__speech-mcp-echo__cancel_listening"
]
}
}然后重新启动Claude Code并说: “让我们进行一次语音对话”
其他CLIs
Goose命令行界面:
goose session --with-extension "speech-mcp-echo"Gemini CLI:添加到 ~/.gemini/settings.json (格式与克劳德代码相同)
Codex CLI:添加到 ~/.codex/config.toml:
[mcp_servers.speech-mcp-echo]
command = "speech-mcp-echo"为什么选择这些技术?
STT:Groq Whisper(推荐)
我们选择了 Groq Whisper API 作为推荐的STT发动机,原因如下:
- 准确的:使用whisper-large-v3-turbo模型(WER约为12%,本地基础模型约为23%)
- 快速燃烧:Groq LPU硬件上的216倍实时速度
- 没有本地资源:无模型下载,无GPU/CPU负载
- 慷慨的免费套餐:API免费,价格优惠
- 简易设置:刚刚设置
GROQ_API_KEY环境变量 - OpenAI兼容:使用相同的
openai具有不同基本URL的SDK
# Set your Groq API key (get one free at https://console.groq.com)
export GROQ_API_KEY="gsk_..."STT:更快的耳语(当地替代方案)
更快的耳语 是完全离线操作的良好替代方案:
- 轻量级:大约150MB,而OpenAI的原始耳语大约1.5GB
- 快速:使用CTranslate2优化,比原始耳语快4倍
- 离线:完全离线工作,无API成本
- CPU友好:在采用int8量化的CPU上运行良好
TTS:谷歌云TTS(推荐)
我们选择了 谷歌云TTS 作为主要的TTS发动机,因为:
- 没有严重的依赖关系:与需要PyTorch(~2GB)的Kokoro不同,Google Cloud TTS使用简单的REST API
- 高质量:具有自然韵律的神经声音
- 多语言:对英语、中文(繁体/简体)和40多种语言的出色支持
- 灵活的身份验证:多种身份验证方法(见下文)
- 成本效益高:免费等级包括400万字符/月
- 跨平台:适用于macOS、Linux和Windows
Google Cloud TTS身份验证选项
选择最适合您的设置的方法:
选项A:gcloud CLI(推荐给开发人员)
# Install gcloud CLI
brew install google-cloud-sdk # macOS
# or: https://cloud.google.com/sdk/docs/install
# Login and configure
gcloud auth login
gcloud config set project YOUR_PROJECT_ID选项B:服务帐户(建议用于服务器/生产)
# 1. Create service account in Google Cloud Console
# - Go to IAM & Admin > Service Accounts
# - Create account with "Cloud Text-to-Speech API User" role
# - Download JSON key file
# 2. Set environment variable
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"
# 3. Optionally set project ID (if not in key file)
export GOOGLE_CLOUD_PROJECT="your-project-id"选项C:Python客户端库
# Install the library
pip install google-cloud-texttospeech
# Then use Option A or B for authentication
# The library will auto-detect credentials适配器会自动按顺序尝试这些方法,并使用第一个有效的方法。
为什么不是科科罗?
Kokoro是一款出色的本地TTS引擎,但它需要:
- PyTorch(约2GB下载)
- CUDA实现最佳性能
- 其他语言模型(misaki)
对于大多数用户来说,Google Cloud TTS通过更简单的设置提供了更好的质量。Kokoro仍然是喜欢完全离线操作的用户的可选本地替代品。
配置
配置存储在 ~/.config/speech-mcp-echo/config.json:
{
"stt": {
"engine": "groq",
"model": "whisper-large-v3-turbo",
"language": "auto",
"timeout": 45,
"silence_retry_count": 10,
"retry_prompt_type": "beep"
},
"tts": {
"engine": "google",
"voice": "cmn-TW-Standard-B",
"language": "cmn-TW"
},
"summarizer": {
"enabled": true,
"personality": "jarvis",
"language": "en"
}
}连续收听设置
| 设置 | 默认值 | 说明 |
|---|---|---|
stt.timeout | 每次尝试等待演讲的时间为45秒 | |
stt.silence_retry_count | 10 | 检测到静音时重试(~7.5分钟容差) |
stt.retry_prompt_type | “嘟嘟” | 重试时提示:“嘟嘟”、“语音”或“静音” |
### Supported Languages
| Language | STT (Groq/faster-whisper) | TTS (Google Cloud) |
|----------|---------------------------|-------------------|
| English | ✅ | ✅ en-US, en-GB |
| Chinese (Traditional) | ✅ | ✅ cmn-TW |
| Chinese (Simplified) | ✅ | ✅ cmn-CN |
| Japanese | ✅ | ✅ ja-JP |
### Environment Variables
API keys are read from environment variables:
- `GROQ_API_KEY` - For Groq Whisper STT (recommended)
- `OPENAI_API_KEY` - For OpenAI Whisper STT and TTS
- `GOOGLE_APPLICATION_CREDENTIALS` - For Google Cloud services (optional if using gcloud CLI)
- `ANTHROPIC_API_KEY` - For Claude-based summarization
## Architecture
src/演讲_mcp_echo/ ├── __初始化__.py#主要入口点 ├── __主要的__.py#模块执行 ├── audio_processor.py#音频捕获、播放、提示 ├── constants.py#集中式常量 ├── server.py#统一MCP服务器(所有工具) ├── config/#配置管理 ├── core/ │ └── voice_engine.py#STT、TTS、摘要 ├── 资源/ │ └── audio/#音频提示文件(.wav) ├── stt_adapters/#语音转文本引擎 │ ├── groq_whisper_adapter.py#云(推荐) │ ├── faster_withper_adapter.py#本地 │ ├── openai_whisper_adapter.py#云 │ └── google_speech_adapter.py#云 ├── tts_adapters/#文本转语音引擎 │ ├── google_tts_adapter.py#云(推荐) │ └── openai_tts_adapter.py#云 ├── 摘要/#响应摘要 │ ├── local_summarizer.py#基于JARVIS个性的规则 │ └── llm_summarzer.py基于llm(占位符) └── utils/ └── logger.py#集中式日志记录
## Development
Clone and install in development mode
git clone https://github.com/lukechi1219/speech-mcp-echo.git cd speech-mcp-echo pip install -e ".[dev]"
Run tests
pytest tests/
## 许可证
麻省理工学院
## 学分
改编自 [Kvadratni/演讲mcp](https://github.com/Kvadratni/speech-mcp) 支持多CLI。