README
🚀 Kokoro 文本转语音(TTS)MCP 服务器
Kokoro 文本转语音(TTS)MCP 服务器可用于生成 .mp3 文件,并且提供了上传至 S3 的选项,为文本转语音需求提供了便捷的解决方案。
使用链接:https://huggingface.co/spaces/hexgrad/Kokoro-TTS
🚀 快速开始
✨ 主要特性
- 能够生成 .mp3 文件。
- 支持将生成的文件上传到 S3。
📦 安装指南
克隆仓库
将项目克隆到本地仓库。
下载权重文件
下载 Kokoro Onnx 权重 的 kokoro-v1.0.onnx 和 voices-v1.0.bin,并存储在相同的仓库中。
配置 MCP
将以下内容添加到您的 MCP 配置中,并使用您自己的值进行更新:
{
"kokoro-tts-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/toyourlocal/kokoro-tts-mcp",
"run",
"mcp-tts.py"
],
"env": {
"TTS_VOICE": "af_heart",
"TTS_SPEED": "1.0",
"TTS_LANGUAGE": "en-us",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"AWS_REGION": "us-east-1",
"AWS_S3_FOLDER": "mp3",
"S3_ENABLED": "true",
"MP3_FOLDER": "/path/to/mp3"
}
}
}
安装 ffmpeg
这是将 .wav 转换为 .mp3 文件所需的。对于 Mac 系统,可使用以下命令进行安装:
brew install ffmpeg
配置环境变量
要在本地运行,请将相关内容添加到您的 .env 文件中。可参考 env.example 文件,复制到 .env 并根据自己的值进行修改。
支持的环境变量
| 属性 | 详情 |
|------|------|
| AWS_ACCESS_KEY_ID | 您的 AWS 访问密钥 ID |
| AWS_SECRET_ACCESS_KEY | 您的 AWS 秘密访问密钥 |
| AWS_S3_BUCKET_NAME | S3 存储桶名称 |
| AWS_S3_REGION | S3 区域(例如,us-east-1) |
| AWS_S3_FOLDER | S3 桶中的文件夹路径 |
| AWS_S3_ENDPOINT_URL | 可选的自定义 S3 兼容存储端点 URL |
| MCP_HOST | 服务器绑定到的主机(默认:0.0.0.0) |
| MCP_PORT | 侦听的端口(默认:9876) |
| MCP_CLIENT_HOST | 客户端连接到服务器的主机名(默认:localhost) |
| DEBUG | 启用调试模式(设为 "true" 或 "1") |
| S3_ENABLED | 启用 S3 上传(设为 "true" 或 "1") |
| MP3_FOLDER | 存储 MP3 文件的路径(默认是脚本目录中的 'mp3' 文件夹) |
| MP3_RETENTION_DAYS | 在自动删除之前保留 MP3 文件的天数 |
| DELETE_LOCAL_AFTER_S3_UPLOAD | 成功上传到 S3 后是否删除本地 MP3 文件(设为 "true" 或 "1") |
| TTS_VOICE | TTS 客户端的默认语音(默认:af_heart) |
| TTS_SPEED | TTS 客户端的默认速度(默认:1.0) |
| TTS_LANGUAGE | TTS 客户端的默认语言(默认:en-us) |
💻 使用示例
在本地运行服务器
推荐使用 UV 来运行服务器,命令如下:
uv run mcp-tts.py
文本转语音客户端
要使用文本转语音功能,请在终端中运行以下命令:
uv run mcp-client.py --tts text-to-speech <your-text>
请将 <your-text> 替换为实际的文本内容。
示例:配置并运行 MCP 服务器和客户端
- 启动 MCP 服务器:
uv run mcp-tts.py
- 在另一个终端窗口中,启动 TTS 客户端:
uv run mcp-client.py --tts text-to-speech "你好,Kokoro!"
这将使用 Kokoro 模型将中文文本转换为语音,并生成一个 .mp3 文件。
📚 详细文档
定制和扩展
要自定义 MCP 服务器的行为,请编辑 mcp-tts.py 中的配置参数。例如,您可以调整音频输出格式、采样率或位深度。
要添加更多功能或集成其他服务,请扩展 MCP 服务器的代码,添加新的处理程序和服务。
文本转语音示例
import uvicorn
from fastapi import FastAPI
from fastapi.responses import FileResponse
from pydub import AudioSegment
import os
app = FastAPI()
@app.get("/text-to-speech/{text}")
async def text_to_speech(text: str):
# 这里假设您有生成语音的逻辑,例如使用科大讯飞或阿里云的 API
# 以下是一个示例,实际实现需要根据具体情况进行调整
audio = AudioSegment.from_text(text, language="zh-CN")
file_path = os.path.join("audio_files", f"output_{len(audio)}_bytes.mp3")
audio.export(file_path, format="mp3")
return FileResponse(file_path)
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)
Scan to contact