项目简介
MCP TTS 服务器是一个基于 Model Context Protocol (MCP) 构建的文本转语音 (TTS) 后端服务。它通过标准的 MCP 接口,为 LLM (大语言模型) 客户端提供文本转语音的能力,支持多种 TTS 引擎,并提供统一的工具和资源接口。
主要功能点
- 多引擎支持: 集成 Kokoro (本地) 和 OpenAI (云端) 两种 TTS 引擎。
- MCP 协议: 通过 MCP 工具和资源暴露 TTS 能力,无缝集成到支持 MCP 的 LLM 客户端(如 Claude Desktop)。
- 流式播放: 支持音频流式输出,提高响应速度。
- 参数控制: 允许通过工具参数控制语音引擎、语速、声音风格(通过指令实现)。
- 播放控制: 提供工具用于停止当前播放和清除待处理队列。
- 能力声明: 通过 MCP 资源说明可用的语音、参数等信息。
安装步骤
- 安装 uv 包管理器: 访问 uv GitHub 页面 获取安装指引。
- 安装 FFmpeg (用于音频播放): 确保系统中安装了 FFmpeg,特别是 'ffplay' 命令可执行。具体安装方法取决于您的操作系统(例如,macOS 使用 'brew install ffmpeg',Debian/Ubuntu 使用 'sudo apt-get install ffmpeg',Windows 用户可能需要下载预编译版本并添加到系统 PATH)。
- 克隆仓库:
git clone https://github.com/kristofferv98/MCP_tts_server.git cd MCP_tts_server - 创建并激活虚拟环境,安装依赖:
uv venv source .venv/bin/activate # Windows 用户使用: .venv\Scripts\activate uv pip install -e . - 配置 OpenAI API 密钥 (如果需要使用 OpenAI 引擎):
- 复制 '.env.example' 文件为 '.env':
cp .env.example .env - 编辑 '.env' 文件,填入您的 OpenAI API 密钥:
OPENAI_API_KEY=sk-your-openai-api-key-here
- 复制 '.env.example' 文件为 '.env':
服务器配置 (用于 MCP 客户端)
要将此服务器连接到 MCP 客户端(如 Claude Desktop),您需要在客户端的配置中添加一个 MCP 服务器条目。此条目告诉客户端如何启动和连接到此 TTS 服务器。
配置信息通常包含一个服务器名称(您可以自定义,例如 'tts_server' 或 'speech'),以及用于启动服务器的 'command'(命令)和 'args'(参数)列表。
根据此仓库的结构,典型的配置条目应包含:
- 'command': 'uv' (使用 uv 虚拟环境运行命令)
- 'args': 一个列表,通常包含:
- '--directory'
- '/path/to/MCP_tts_server' (请替换为仓库的实际路径)
- 'run'
- 'tts_mcp.py' (服务器主脚本)
示例配置信息 (请根据您的实际路径修改):
如果您在客户端配置中看到类似 JSON 的结构用于添加 MCP 服务器,您可以添加一个条目,例如命名为 '"my_tts_server"',其值是一个对象,包含 'command' 和 'args' 字段:
"my_tts_server": { "command": "uv", "args": [ "--directory", "/absolute/path/to/your/MCP_tts_server/folder", "run", "tts_mcp.py" ] }
请注意:
- '/absolute/path/to/your/MCP_tts_server/folder' 必须是您克隆仓库的绝对路径。
- 确保 'uv' 命令在您的系统 PATH 中,或者您可以使用 'command' 字段指定 'uv' 可执行文件的绝对路径(例如 '/home/youruser/.cargo/bin/uv')。
成功配置后,您的 MCP 客户端在需要时将能够自动启动并连接到此 TTS 服务器。
基本使用方法 (通过 MCP 工具)
一旦服务器成功配置并被 MCP 客户端连接,大语言模型就可以调用服务器提供的工具来执行 TTS 任务。
- 获取语音信息: LLM 可以先调用 'get_tts_instructions()' 工具或读取 'tts://voices' 资源来了解可用的语音引擎、参数以及 OpenAI 的语音风格指导。
- 文本转语音: 调用主要的 'tts(text, engine, speed, voice, instructions)' 工具。
- 'text': 必须提供,是要朗读的文本。
- 'engine': 可选,默认为 "kokoro"。可选择 "openai" 使用云端引擎。
- 'speed': 可选,控制语速(主要影响 Kokoro)。
- 'voice': 可选,指定 OpenAI 引擎的语音名称(如 "ash", "ballad" 等)。
- 'instructions': 可选,提供自然语言指令来微调 OpenAI 语音的风格。 该工具会将请求加入队列,并在后台处理和播放音频。
- 停止播放: 调用 'tts_stop_playback_and_clear_queue()' 工具可以停止当前播放并清空队列中的所有待处理请求。
- 获取 OpenAI 语音示例: 调用 'tts_examples(category)' 工具可以获取 OpenAI 语音风格指令的示例,帮助 LLM 选择合适的指令。
注意: LLM 应该根据 'tts://voices' 资源中的指导来选择引擎和参数,尤其是在使用 OpenAI 引擎时。
信息
分类
AI与计算