Speech MCP

by Kvadratni

Integrations

  • Provides specific installation instructions for PortAudio on Fedora Linux systems

  • Provides links to GitHub repositories for Goose and Kokoro, allowing users to access the source code and additional resources

  • Supports Linux systems with specific installation instructions for different distributions

语音 MCP

Goose MCP 扩展,用于与现代音频可视化进行语音交互。

https://github.com/user-attachments/assets/f10f29d9-8444-43fb-a919-c80b9e0a12c8

概述

Speech MCP 为Goose提供了语音界面,允许用户通过语音而非文本进行交互。它包括:

  • 用于语音识别的实时音频处理
  • 使用 Faster-whisper(OpenAI Whisper 模型的更快实现)进行本地语音转文本
  • 高品质文本转语音,多种语音选项
  • 基于 PyQt 的现代 UI,具有音频可视化功能
  • 用于语音交互的简单命令行界面

特征

  • 现代用户界面:基于 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-dev

Linux(Fedora/RHEL/CentOS):

sudo dnf install portaudio-devel

**Windows:**对于 Windows,PortAudio 包含在 PyAudio wheel 文件中,因此使用 pip 安装 PyAudio 时无需单独安装。

注意:如果跳过此步骤,PyAudio 安装将失败并出现“未找到 portaudio.h 文件”错误,并且扩展将无法工作。

选项 1:快速安装(一键安装)

如果您已安装 Goose,请点击下面的链接:

goose://extension?cmd=uvx&&arg=-p&arg=3.10.14&arg=speech-mcp@latest&id=speech_mcp&name=Speech Interface&description=Voice interaction with audio visualization for 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 中手动设置

  1. 运行goose configure
  2. 从菜单中选择“添加扩展”
  3. 选择“命令行扩展”
  4. 输入名称(例如“语音界面”)
  5. 对于命令,输入: speech-mcp
  6. 按照提示完成设置

选项 4:手动安装

  1. 安装 PortAudio(参见先决条件部分)
  2. 克隆此存储库
  3. 安装依赖项:
    uv pip install -e .
    或者包括 Kokoro TTS 的完整安装:
    uv pip install -e .[all]

依赖项

  • Python 3.10+
  • PyQt5(适用于现代 UI)
  • PyAudio(用于音频捕获)
  • 更快的耳语(用于语音转文本)
  • NumPy(用于音频处理)
  • Pydub(用于音频处理)
  • psutil(用于进程管理)

可选依赖项

  • Kokoro 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}

按类别划分的可用声音:

  1. 美国女性(af_*):
    • 合金、奥德、贝拉、心、杰西卡、科雷、妮可、新星、河流、莎拉、天空
  2. 美国男性(am_*):
    • 亚当、艾科、埃里克、芬里尔、利亚姆、迈克尔、奥尼克斯、帕克、圣诞老人
  3. 英国女性(bf_*):
    • 爱丽丝、艾玛、伊莎贝拉、莉莉
  4. 英国男性(bm_*):
    • 丹尼尔、寓言、乔治、刘易斯
  5. 其他英语
    • ef_dora(女)
    • em_alex,em_santa(男)
  6. 其他语言
    • 法语: 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 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(自动提取音频)

输出文件:

转录工具生成两个文件:

  1. {input_name}.transcript.txt :包含转录文本
  2. {input_name}.metadata.json :包含有关转录的元数据

特征:

  • 自动语言检测
  • 可选的字级时间戳
  • 可选扬声器检测
  • 从视频文件中高效提取音频
  • 长文件的进度跟踪
  • 详细元数据包括:
    • 期间
    • 语言检测置信度
    • 处理时间
    • 扬声器变化(启用时)

用法

要将此 MCP 与 Goose 一起使用,只需让 Goose 与您交谈或开始语音对话:

  1. 通过以下方式开始对话:
    "Let's talk using voice" "Can we have a voice conversation?" "I'd like to speak instead of typing"
  2. Goose 将自动启动语音界面并开始聆听您的语音输入。
  3. 当 Goose 做出回应时,它会大声说出回应,然后自动听取您的下一个输入。
  4. 对话自然地继续进行,交替说和听,就像与人交谈一样。

无需调用特定功能或使用特殊命令 - 只需让 Goose 说话并开始自然地说话。

UI 功能

新的基于 PyQt 的 UI 包括:

  • 现代深色主题:时尚、专业的外观
  • 音频可视化:音频输入的动态可视化
  • 语音选择:从 54+ 种语音选项中选择
  • 语音持久性:您的语音偏好在会话之间保存
  • 动画效果:流畅的动画和视觉反馈
  • 状态指示器:清晰指示系统状态(就绪、监听、处理)

配置

用户偏好存储在~/.config/speech-mcp/config.json中,包括:

  • 选定的TTS语音
  • TTS 引擎偏好
  • 语速
  • 语言代码
  • UI主题设置

您还可以通过环境变量设置首选项,例如:

  • SPEECH_MCP_TTS_VOICE - 设置您喜欢的声音
  • SPEECH_MCP_TTS_ENGINE - 设置您首选的 TTS 引擎

故障排除

如果您遇到扩展程序冻结或无响应的问题:

  1. 检查日志:查看src/speech_mcp/中的日志文件以获取详细的错误消息。
  2. 重置状态:如果扩展似乎卡住了,请尝试删除src/speech_mcp/speech_state.json或将所有状态设置为false
  3. 使用直接命令:不要uv run speech-mcp ,而是直接使用已安装的带有speech-mcp的包。
  4. 检查音频设备:确保您的麦克风配置正确并且可供 Python 访问。
  5. 验证依赖项:确保所有必需的依赖项都已正确安装。

常见的 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 :确保您拥有开发包:
    # 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 使用 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 代码库

执照

MIT 许可证

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    Enables recording audio from a microphone and transcribing it using OpenAI's Whisper model. Works as both a standalone MCP server and a Goose AI agent extension.
    Last updated -
    4
    Python
    MIT License
  • -
    security
    A
    license
    -
    quality
    A Model Context Protocol server that integrates high-quality text-to-speech capabilities with Claude Desktop and other MCP-compatible clients, supporting multiple voice options and audio formats.
    Last updated -
    TypeScript
    MIT License
  • -
    security
    A
    license
    -
    quality
    A MCP server that creates graphic recordings by converting websites or text input into visual summaries using different prompt styles (standard, elementary, timeline).
    Last updated -
    TypeScript
    MIT License
  • -
    security
    -
    license
    -
    quality
    An MCP server that enables LLMs to generate spoken audio from text using OpenAI's Text-to-Speech API, supporting various voices, models, and audio formats.
    Last updated -
    1
    JavaScript
    MIT License

View all related MCP servers

ID: yzai8tyjnf