语音MCP
Goose MCP扩展,用于与现代音频可视化进行语音交互。
https://github.com/user-attachments/assets/f10f29d9-8444-43fb-a919-c80b9e0a12c8
概述
语音MCP为 鹅,允许用户通过语音而不是文本进行交互。它包括:
- 语音识别的实时音频处理
- 使用更快的耳语进行本地语音转文本(OpenAI whisper模型的更快实现)
- 具有多种语音选项的高质量文本转语音
- 基于PyQt的现代音频可视化用户界面
- 用于语音交互的简单命令行界面
特性
- 现代用户界面:基于PyQt的界面,具有音频可视化和深色主题
- 语音输入:使用更快的耳语捕获和转录用户语音
- 语音输出:使用54+语音选项将代理响应转换为语音
- 多人叙事:为故事和对话生成多个声音的音频文件
- 单声叙事:将任何文本转换为您喜欢的语音
- 音频/视频转录:使用可选的时间戳和说话者检测从各种媒体格式转录语音
- 语音持久性:在会话之间记住您喜欢的声音
- 持续对话:代理响应后自动监听用户输入
- 静音检测:当用户停止讲话时,自动停止录制
- 稳健的错误处理:从常见故障模式中优雅地恢复,并提供有益的语音建议
安装
重要提示:安装后,第一次使用语音接口时,下载Kokoro语音模型可能需要几分钟(每个语音约523 KB)。在初始设置期间,系统将使用听起来更像机器人的回退语音。下载Kokoro语音后,将自动使用高质量的语音。
⚠️ 重要先决条件⚠️
在安装Speech MCP之前,您 必须 在您的系统上安装PortAudio。PyAudio需要PortAudio才能从麦克风捕获音频。
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-devLinux(Fedora/RHEL/CentOS):
sudo dnf install portaudio-devel窗户: 对于Windows,PortAudio包含在PyAudio轮文件中,因此使用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(用于音频捕获)
- 更快的耳语(用于语音转文本)
- NumPy(用于音频处理)
- Pydub(用于音频处理)
- psutil(用于过程管理)
可选依赖关系
- 科科罗TTS:用于具有多种声音的高质量文本到语音转换
- 要安装Kokoro,您可以使用带有可选依赖项的pip:
pip install speech-mcp[kokoro] # Basic Kokoro support with English
pip install speech-mcp[ja] # Add Japanese support
pip install speech-mcp[zh] # Add Chinese support
pip install speech-mcp[all] # All languages and features- 或者,运行安装脚本: python scripts/install_kokoro.py - 看 Kokoro TTS指南 更多信息
多人叙事
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\_\*):
- 合金,aoede,贝拉,心,杰西卡,科尔,妮可,新星,河,萨拉,天空
- 美国男性 (am\_\*):
- 亚当、回声、埃里克、芬里尔、利亚姆、迈克尔、缟玛瑙、冰球、圣诞老人
- 英国女性 (bf\_\*):
- 爱丽丝、艾玛、伊莎贝拉、莉莉
- 英国男性 (bm\_\*):
- 丹尼尔,寓言,乔治,刘易斯
- 其他英语:
- 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"
)旁白工具将使用您配置的语音偏好或默认语音(af_heart)来生成音频文件。您可以通过UI或设置更改默认语音 SPEECH_MCP_TTS_VOICE 环境变量。
音频转录
MCP可以使用更快的耳语从各种音频和视频格式转录语音:
# 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:包含有关转录的元数据
特征:
- 自动语言检测
- 可选字级时间戳
- 可选扬声器检测
- 从视频文件中高效提取音频
- 长文件的进度跟踪
- 详细的元数据包括:
- 持续时间 - 语言检测置信度 - 处理时间 - 扬声器更改(启用时)
用法
要将此MCP与Goose一起使用,只需让Goose与您交谈或开始语音对话:
- 通过说以下内容开始对话:
"Let's talk using voice"
"Can we have a voice conversation?"
"I'd like to speak instead of typing"- Goose将自动启动语音界面并开始收听您的语音输入。
- 当Goose响应时,它会大声说出响应,然后自动监听您的下一个输入。
- 对话自然地继续着,说话和听交替进行,就像和一个人说话一样。
无需调用特定函数或使用特殊命令,只需让Goose说话并开始自然说话。
UI功能
新的基于PyQt的UI包括:
- 现代黑暗主题:时尚、专业的外观
- 音频可视化:音频输入的动态可视化
- 语音选择:从54+语音选项中选择
- 语音持久性:您的语音偏好在会话之间保存
- 最佳视觉效果:流畅的动画和视觉反馈
- 状态指示灯:系统状态的明确指示(就绪、监听、处理)
配置
用户偏好存储在 ~/.config/speech-mcp/config.json 包括:
- 选定的TTS语音
- TTS发动机偏好
- 语音速度
- 语言代码
- UI主题设置
您还可以通过环境变量设置首选项,例如:
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可以访问。
- 验证依赖关系:确保所有必需的依赖项都已正确安装。
常见端口音频问题
“PyAudio安装失败”或“未找到portaudio.h文件”
这通常意味着您的系统中未安装或找不到PortAudio:
- macOS:
brew install portaudio
export LDFLAGS="-L/usr/local/lib"
export CPPFLAGS="-I/usr/local/include"
pip install pyaudio- Linux:
确保您拥有开发包:
# For Debian/Ubuntu
sudo apt-get install portaudio19-dev python3-dev
pip install pyaudio
# For Fedora
sudo dnf install portaudio-devel
pip install pyaudio“找不到音频设备”或“没有可用的默认输入设备”
- 检查麦克风是否正确连接
- 验证您的系统在声音设置中识别麦克风
- 如果您有多个音频设备,请尝试在代码中选择特定的设备索引
更新日志
有关最近改进和版本历史的详细列表,请参阅 更新日志.
技术细节
语音到文本
MCP使用更快的耳语进行语音识别:
- 使用“基础”模型,实现精度和速度的良好平衡
- 在本地处理音频,而不向外部服务发送数据
- 自动检测用户何时发言完毕
- 相较于最初的Whisper实现,其性能得到了提升
文本转语音
MCP支持多种文本转语音引擎:
默认值:pyttsx3
- 使用计算机上可用的系统语音
- 无需额外设置即可开箱即用
- 有限的语音质量和定制
可选:Kokoro TTS
- 具有多个声音的高质量神经文本到语音
- 在CPU上高效运行的轻量级模型(82M参数)
- 多种语音风格和语言
- 要安装:
python scripts/install_kokoro.py
关于语音模型的说明:语音模型是 .pt Kokoro加载的文件(PyTorch模型)。每个语音模型的大小约为523 KB,并在需要时自动下载。
语音持久性:所选语音会自动保存到配置文件中(~/.config/speech-mcp/config.json)并且将在会话之间被记住。这允许用户一次性设置他们的首选语音,并保持一致的使用。
可用的Kokoro声音
语音MCP通过Kokoro TTS支持54种以上的高质量语音模型。有关可用语音和语言选项的完整列表,请访问 .
