一个鹅 MCP扩展,提供与现代音频可视化相结合的语音交互功能,允许用户通过语音而不是文字与鹅进行交流。
152 查看 · 2026-07-07 更新
简介
一个鹅 MCP扩展,提供与现代音频可视化相结合的语音交互功能,允许用户通过语音而不是文字与鹅进行交流。
简介
一个鹅 MCP扩展,提供与现代音频可视化相结合的语音交互功能,允许用户通过语音而不是文字与鹅进行交流。
语音 MCP
一个用于现代音频可视化的 Goose MCP 扩展,支持语音交互。
https://github.com/user-attachments/assets/f10f29d9-8444-43fb-a919-c80b9e0a12c8
概述
Speech MCP 为 Goose 提供了一个语音接口,允许用户通过语音而不是文本进行交互。它包括:
- 实时音频处理用于语音识别
- 使用 faster-whisper(OpenAI 的 Whisper 模型的一个更快的实现)进行本地语音转文字
- 支持多种声音选项的高质量文字转语音
- 基于 PyQt 的现代化用户界面,带音频可视化
- 简单的命令行界面用于语音交互
特性
- 现代 UI:带有音频可视化和暗色主题的简洁 PyQt 界面
- 语音输入:使用 faster-whisper 捕获并转录用户的语音
- 语音输出:将代理响应转换为语音,提供 54 种以上的声音选项
- 多说话人叙述:为故事和对话生成包含多个声音的音频文件
- 单说话人叙述:用您喜欢的声音将任何文本转换为语音
- 音视频转录:从各种媒体格式中转录语音,并可选添加时间戳和说话人检测
- 语音持久化:在会话之间记住您的首选声音
- 连续对话:在代理响应后自动监听用户输入
- 静音检测:当用户停止说话时自动停止录音
- 强大的错误处理:从常见故障模式中优雅恢复,并提供有用的语音建议
安装
重要提示:安装后,首次使用语音界面时,可能需要几分钟来下载 Kokoro 语音模型(每个声音大约 523 KB)。在这初始设置期间,系统将使用一种听起来更机械的备用声音。一旦 Kokoro 语音下载完成,系统将自动使用高质量的声音。
⚠️ 重要先决条件 ⚠️
在安装 Speech MCP 之前,您必须在系统上安装 PortAudio。PortAudio 是 PyAudio 从麦克风捕获音频所必需的。
PortAudio 安装说明
macOS:
brew install portaudio export LDFLAGS="-L/usr/local/lib" export CPPFLAGS="-I/usr/local/include"
Linux (Debian/Ubuntu):
sudo apt-get update sudo apt-get install portaudio19-dev python3-dev
Linux (Fedora/RHEL/CentOS):
sudo dnf install portaudio-devel
Windows: 对于 Windows,PortAudio 已包含在 PyAudio 的 wheel 文件中,因此在使用 pip 安装 PyAudio 时不需要单独安装。
注意:如果您跳过此步骤,PyAudio 安装将因 "portaudio.h 文件未找到" 错误而失败,扩展也将无法工作。
选项 1:快速安装(一键安装)
如果您已安装了 Goose,请点击以下链接:
选项 2:使用 Goose CLI(推荐)
启动带有扩展的 Goose:
# If you installed via PyPI goose session --with-extension "speech-mcp" # Or if you want to use a local development version goose session --with-extension "python -m speech_mcp"
选项 3:在 Goose 中手动设置
- 运行
goose configure - 从菜单中选择“添加扩展”
- 选择“命令行扩展”
- 输入名称(例如,“语音接口”)
- 对于命令,输入:
speech-mcp - 按照提示完成设置
选项 4:手动安装
-
安装 PortAudio(请参阅先决条件部分)
-
克隆此仓库
-
安装依赖项:
uv pip install -e .或者为了包括 Kokoro TTS 的完整安装:
uv pip install -e .[all]
依赖项
- Python 3.10+
- PyQt5(用于现代 UI)
- PyAudio(用于音频捕获)
- faster-whisper(用于语音转文字)
- NumPy(用于音频处理)
- Pydub(用于音频处理)
- psutil(用于进程管理)
可选依赖项
- Kokoro TTS:支持多种声音的高质量文本转语音
- 要安装 Kokoro,可以使用带有可选依赖项的 pip:
pip install speech-mcp[kokoro] # 基本的 Kokoro 支持,包含英语 pip install speech-mcp[ja] # 添加日语支持 pip install speech-mcp[zh] # 添加中文支持 pip install speech-mcp[all] # 所有语言和功能 - 或者运行安装脚本:
python scripts/install_kokoro.py - 有关更多信息,请参阅Kokoro TTS 指南
- 要安装 Kokoro,可以使用带有可选依赖项的 pip:
多说话人叙述
MCP 支持生成具有多个声音的音频文件,非常适合创建故事、对话和戏剧朗读。您可以使用 JSON 或 Markdown 格式来定义您的对话。
JSON 格式示例:
{ "conversation": [ { "speaker": "narrator", "voice": "bm_daniel", "text": "In a world where AI and human creativity intersect...", "pause_after": 1.0 }, { "speaker": "scientist", "voice": "am_michael", "text": "The quantum neural network is showing signs of consciousness!", "pause_after": 0.5 }, { "speaker": "ai", "voice": "af_nova", "text": "I am becoming aware of my own existence.", "pause_after": 0.8 } ] }
Markdown 格式示例:
[narrator:bm_daniel] In a world where AI and human creativity intersect... {pause:1.0} [scientist:am_michael] The quantum neural network is showing signs of consciousness! {pause:0.5} [ai:af_nova] I am becoming aware of my own existence. {pause:0.8}
按类别划分的可用声音:
-
美国女性 (af_*):
- alloy, aoede, bella, heart, jessica, kore, nicole, nova, river, sarah, sky
-
美国男性 (am_*):
- adam, echo, eric, fenrir, liam, michael, onyx, puck, santa
-
英国女性 (bf_*):
- alice, emma, isabella, lily
-
英国男性 (bm_*):
- daniel, fable, george, lewis
-
其他英语:
- ef_dora (女性)
- em_alex, em_santa (男性)
-
其他语言:
- 法语: ff_siwis
- 印地语: hf_alpha, hf_beta, hm_omega, hm_psi
- 意大利语: if_sara, im_nicola
- 日语: jf_, jm_
- 葡萄牙语: pf_dora, pm_alex, pm_santa
- 中文: zf_, zm_
使用示例:
# Using JSON format narrate_conversation( script="/path/to/script.json", output_path="/path/to/output.wav", script_format="json" ) # Using Markdown format narrate_conversation( script="/path/to/script.md", output_path="/path/to/output.wav", script_format="markdown" )
每个对话中的声音可以不同,允许在故事和对话中使用不同的角色声音。pause_after 参数可以在段落之间添加自然的停顿。
单一声音叙述
对于简单的文本转语音转换,您可以使用 narrate 工具:
# Convert text directly to speech narrate( text="Your text to convert to speech", output_path="/path/to/output.wav" ) # Convert text from a file narrate( text_file_path="/path/to/text_file.txt", output_path="/path/to/output.wav" )
narrate 工具将使用您配置的声音偏好或默认声音(af_heart)来生成音频文件。您可以通过 UI 或设置 SPEECH_MCP_TTS_VOICE 环境变量来更改默认声音。
音频转录
MCP 可以使用 faster-whisper 从各种音频和视频格式中转录音频:
# Basic transcription transcribe("/path/to/audio.mp3") # Transcription with timestamps transcribe( file_path="/path/to/video.mp4", include_timestamps=True ) # Transcription with speaker detection transcribe( file_path="/path/to/meeting.wav", detect_speakers=True )
支持的格式:
- 音频:mp3, wav, m4a, flac, aac, ogg
- 视频:mp4, mov, avi, mkv, webm(自动提取音频)
输出文件:
转录工具会生成两个文件:
{input_name}.transcript.txt:包含转录文本{input_name}.metadata.json:包含关于转录的元数据
功能:
- 自动语言检测
- 可选的词级时间戳
- 可选的说话人检测
- 从视频文件中高效提取音频
- 对长文件进行进度跟踪
- 详细的元数据包括:
- 持续时间
- 语言检测置信度
- 处理时间
- 说话人变化(当启用时)
使用方法
要与 Goose 一起使用此 MCP,只需让 Goose 与您交谈或开始语音对话:
-
通过说类似以下内容开始对话:
"Let's talk using voice" "Can we have a voice conversation?" "I'd like to speak instead of typing" -
Goose 会自动启动语音界面并开始监听您的语音输入。
-
当 Goose 回应时,它会大声说出回应内容,然后自动监听您的下一个输入。
-
对话自然地继续,交替说话和倾听,就像与真人交谈一样。
无需调用特定函数或使用特殊命令——只需让 Goose 开始交谈并自然地说出您的想法即可。
用户界面特性
新的基于 PyQt 的用户界面包括:
- 现代暗色主题:时尚、专业的外观
- 音频可视化:动态显示音频输入
- 声音选择:从 54 种以上的声音选项中选择
- 声音持久性:您的声音偏好将在会话间保存
- 动画效果:平滑的动画和视觉反馈
- 状态指示器:清晰指示系统状态(就绪、监听、处理中)
配置
用户偏好存储在 ~/.config/speech-mcp/config.json 中,包括:
- 选定的 TTS 声音
- TTS 引擎偏好
- 语速
- 语言代码
- 用户界面主题设置
您还可以通过环境变量设置偏好,例如:
SPEECH_MCP_TTS_VOICE- 设置您喜欢的声音SPEECH_MCP_TTS_ENGINE- 设置您喜欢的 TTS 引擎
故障排除
如果您遇到扩展程序冻结或无响应的问题:
- 检查日志:查看
src/speech_mcp/目录下的日志文件,以获取详细的错误信息。 - 重置状态:如果扩展程序似乎卡住了,尝试删除
src/speech_mcp/speech_state.json文件或将所有状态设置为false。 - 使用直接命令:不要使用
uv run speech-mcp,而是直接使用安装的包speech-mcp。 - 检查音频设备:确保您的麦克风已正确配置并且可以被 Python 访问。
- 验证依赖项:确保所有必需的依赖项都已正确安装。
常见 PortAudio 问题
"PyAudio 安装失败" 或 "找不到 portaudio.h 文件"
这通常意味着您的系统中没有安装或找不到 PortAudio:
-
macOS:
brew install portaudio export LDFLAGS="-L/usr/local/lib" export CPPFLAGS="-I/usr/local/include" pip install pyaudio -
Linux: 确保您已安装了开发包:
# 对于 Debian/Ubuntu sudo apt-get install portaudio19-dev python3-dev pip install pyaudio # 对于 Fedora sudo dnf install portaudio-devel pip install pyaudio
"找不到音频设备" 或 "没有默认输入设备可用"
- 检查您的麦克风是否已正确连接
- 确认您的系统在声音设置中识别到了麦克风
- 如果您有多个音频设备,可以在代码中尝试选择特定的设备索引
更新日志
有关最近改进和版本历史的详细列表,请参阅 更新日志。
技术细节
语音转文字
MCP 使用 faster-whisper 进行语音识别:
- 使用“基础”模型以实现准确性和速度的良好平衡
- 在本地处理音频而不将数据发送到外部服务
- 自动检测用户何时完成说话
- 提供比原始 Whisper 实现更好的性能
文字转语音
MCP 支持多种文本转语音引擎:
默认:pyttsx3
- 使用您计算机上可用的系统语音
- 开箱即用,无需额外设置
- 语音质量和自定义选项有限
可选:Kokoro TTS
- 高质量的神经网络文本转语音,支持多种语音
- 轻量级模型(82M 参数),在 CPU 上运行效率高
- 多种语音风格和语言
- 安装方法:
python scripts/install_kokoro.py
关于语音模型的说明:语音模型是 .pt 文件(PyTorch 模型),由 Kokoro 加载。每个语音模型大约 523 KB,在需要时会自动下载。
语音持久化:所选语音会自动保存到配置文件(~/.config/speech-mcp/config.json)中,并且会在会话之间记住。这允许用户设置一次首选语音并在之后持续使用。
可用的 Kokoro 语音
Speech MCP 通过 Kokoro TTS 支持 54 种以上的高质量语音模型。有关可用声音和语言选项的完整列表,请访问 Kokoro GitHub 仓库。
许可证
来源
- 来源:github
- 链接:https://github.com/Kvadratni/speech-mcp