用于现代音频可视化语音交互的Goose MCP扩展。
https://github.com/user-attachments/assets/f10f29d9-8444-43fb-a919-c80b9e0a12c8
Speech MCP 提供了与 Goose 的语音接口,允许用户通过语音而不是文本进行交互。它包括:
重要提示:安装后,首次使用语音接口时,可能需要几分钟下载 Kokoro 声音模型(每个声音大约 523 KB)。在此初始设置期间,系统将使用更机械的声音作为备用。一旦下载了 Kokoro 声音,将自动使用高质量的声音。
在安装 Speech MCP 之前,您必须在系统上安装 PortAudio。PortAudio 是 PyAudio 捕获麦克风音频所必需的。
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 轮文件中,因此无需单独安装,只需使用 pip 安装 PyAudio 即可。
注意:如果跳过此步骤,PyAudio 安装将因“找不到 portaudio.h 文件”而失败,扩展程序将无法工作。
如果您已安装 Goose,请点击以下链接:
启用扩展程序启动 Goose:
# 如果您是通过 PyPI 安装的
goose session --with-extension "speech-mcp"
# 或者如果您想使用本地开发版本
goose session --with-extension "python -m speech_mcp"
goose configurespeech-mcp安装 PortAudio(参见 前提条件 部分)
克隆此仓库
安装依赖项:
uv pip install -e .
或者为了完整安装包括 Kokoro TTS:
uv pip install -e .[all]
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.pyMCP 支持生成包含多种声音的音频文件,非常适合创建故事、对话和戏剧阅读。您可以使用 JSON 或 Markdown 格式定义对话。
{
"conversation": [
{
"speaker": "narrator",
"voice": "bm_daniel",
"text": "在一个人工智能与人类创造力交汇的世界里...",
"pause_after": 1.0
},
{
"speaker": "scientist",
"voice": "am_michael",
"text": "量子神经网络显示出意识的迹象!",
"pause_after": 0.5
},
{
"speaker": "ai",
"voice": "af_nova",
"text": "我开始意识到自己的存在。",
"pause_after": 0.8
}
]
}
[narrator:bm_daniel]
在一个人工智能与人类创造力交汇的世界里...
{pause:1.0}
[scientist:am_michael]
量子神经网络显示出意识的迹象!
{pause:0.5}
[ai:af_nova]
我开始意识到自己的存在。
{pause:0.8}
美国女性 (af_*):
美国男性 (am_*):
英国女性 (bf_*):
英国男性 (bm_*):
其他英语:
其他语言:
# 使用 JSON 格式
narrate_conversation(
script="/path/to/script.json",
output_path="/path/to/output.wav",
script_format="json"
)
# 使用 Markdown 格式
narrate_conversation(
script="/path/to/script.md",
output_path="/path/to/output.wav",
script_format="markdown"
)
对话中的每个声音都可以不同,允许在故事和对话中使用不同的角色声音。pause_after 参数在段落之间添加自然停顿。
对于简单的文字转语音转换,可以使用 narrate 工具:
# 直接将文本转换为语音
narrate(
text="要转换为语音的文本",
output_path="/path/to/output.wav"
)
# 将文本文件转换为语音
narrate(
text_file_path="/path/to/text_file.txt",
output_path="/path/to/output.wav"
)
narrate 工具将使用您配置的声音偏好或默认声音(af_heart)生成音频文件。您可以通过 UI 或设置 SPEECH_MCP_TTS_VOICE 环境变量来更改默认声音。
MCP 可以使用更快的 Whisper 从各种音频和视频格式中转录音频:
# 基础转录
transcribe("/path/to/audio.mp3")
# 带时间戳的转录
transcribe(
file_path="/path/to/video.mp4",
include_timestamps=True
)
# 带说话人检测的转录
transcribe(
file_path="/path/to/meeting.wav",
detect_speakers=True
)
转录工具生成两个文件:
{input_name}.transcript.txt:包含转录文本{input_name}.metadata.json:包含关于转录的元数据要使用此 MCP 与 Goose,只需让 Goose 与您交谈或开始语音对话:
开始对话,可以说:
"让我们用语音交谈"
"我们可以进行语音对话吗?"
"我想说话而不是打字"
Goose 将自动启动语音接口并开始监听您的语音输入。
当 Goose 回应时,它会大声说出回应,然后自动监听您的下一个输入。
对话自然交替进行,就像与人交谈一样。
无需调用特定函数或使用特殊命令——只需让 Goose 与您交谈并自然地说出即可。
新的基于 PyQt 的界面包括:
用户偏好存储在 ~/.config/speech-mcp/config.json 中,包括:
您还可以通过环境变量设置偏好,例如:
SPEECH_MCP_TTS_VOICE - 设置您偏好的声音SPEECH_MCP_TTS_ENGINE - 设置您偏好的文字转语音引擎如果您遇到扩展程序冻结或无响应的问题:
src/speech_mcp/ 中的日志文件获取详细的错误消息。src/speech_mcp/speech_state.json 或将所有状态设置为 false。uv run speech-mcp,直接使用已安装的包 speech-mcp。这通常意味着 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 使用更快的 Whisper 进行语音识别:
MCP 支持多种文字转语音引擎:
python scripts/install_kokoro.py关于声音模型的注意事项:声音模型是 .pt 文件(PyTorch 模型),由 Kokoro 加载。每个声音模型大约 523 KB,需要时会自动下载。
声音持久性:所选声音会自动保存到配置文件(~/.config/speech-mcp/config.json)并在会话之间记住。这允许用户一次设置他们偏好的声音,并在后续使用中保持一致。
Speech MCP 通过 Kokoro TTS 支持 54 种以上的高质量声音模型。完整的可用声音和语言选项列表,请访问 Kokoro GitHub 仓库。