Kokoro 文本转语音 媒体处理
一个使用Kokoro TTS技术从文本生成MP3音频文件的服务器,具有可选的S3上传功能。
服务介绍
Kokoro Text to Speech (TTS) MCP 服务器
Kokoro Text to Speech MCP 服务器可以生成 .mp3 文件,并可选择上传到 S3。
使用:https://huggingface.co/spaces/hexgrad/Kokoro-TTS
配置
- 克隆到本地仓库。
- 下载 Kokoro Onnx 权重 中的 kokoro-v1.0.onnx 和 voices-v1.0.bin,并将它们存储在同一个仓库中。
将以下内容添加到您的 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"
}
}
安装 ffmmeg
这需要将 .wav 转换为 .mp3 文件
对于 Mac:
brew install ffmpeg
要在本地运行,请将这些信息添加到您的 .env 文件中。请参阅 env.example 并将其复制到 .env 文件中,然后根据您的需求进行修改。
支持的环境变量
AWS_ACCESS_KEY_ID: 您的 AWS 访问密钥 IDAWS_SECRET_ACCESS_KEY: 您的 AWS 秘密访问密钥AWS_S3_BUCKET_NAME: S3 存储桶名称AWS_S3_REGION: S3 区域(例如 us-east-1)AWS_S3_FOLDER: S3 存储桶内的文件夹路径AWS_S3_ENDPOINT_URL: 可选的自定义端点 URL 用于 S3 兼容存储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
使用 TTS 客户端
mcp_client.py 脚本允许您向服务器发送 TTS 请求。使用方法如下:
连接设置
当在同一台机器上运行服务器和客户端时:
- 服务器应绑定到
0.0.0.0(所有接口)或127.0.0.1(仅限本地主机) - 客户端应连接到
localhost或127.0.0.1
基本用法
python mcp_client.py --text "Hello, world!"
从文件读取文本
python mcp_client.py --file my_text.txt
自定义声音和速度
python mcp_client.py --text "Hello, world!" --voice "en_female" --speed 1.2
禁用 S3 上传
python mcp_client.py --text "Hello, world!" --no-s3
命令行选项
python mcp_client.py --help
MP3 文件管理
TTS 服务器生成的 MP3 文件会被存储在本地,并可以选择上传到 S3。您可以配置如何管理这些文件:
本地存储
- 在
.env文件中设置MP3_FOLDER以指定 MP3 文件的存储位置 - 文件将保存在此文件夹中,除非被自动删除
自动清理
- 设置
MP3_RETENTION_DAYS=30(或任意数字)以自动删除超过该天数的文件 - 设置
DELETE_LOCAL_AFTER_S3_UPLOAD=true以在成功上传到 S3 后立即删除本地文件
S3 集成
- 使用
S3_ENABLED=true或DISABLE_S3=true来启用/禁用 S3 上传 - 在
.env文件中配置 AWS 凭证和存储桶设置 - 可以使用客户端的
--no-s3选项来按请求禁用 S3 上传