使用说明
Kokoro文本转语音(TTS)MCP服务器
Kokoro文本转语音MCP服务器,可生成.mp3文件,并可选择上传到S3。
使用:https://huggingface.co/spaces/hexgrad/Kokoro-TTS
配置
- 克隆到本地仓库。
- 下载 Kokoro Onnx重量 为了 kokoro-v1.0.onx 和 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地区(例如美国东部-1)AWS_S3_FOLDER:S3存储桶中的文件夹路径AWS_S3_ENDPOINT_URL:S3兼容存储的可选自定义端点URLMCP_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。您可以配置这些文件的管理方式:
本地存储
- 集
MP3_FOLDER在你的.envfile指定MP3文件的存储位置 - 除非自动删除,否则文件将保留在此文件夹中
自动清理
- 集
MP3_RETENTION_DAYS=30(或任何数字)自动删除超过该天数的文件 - 集
DELETE_LOCAL_AFTER_S3_UPLOAD=true成功上传S3后立即删除本地文件
S3集成
- 启用/禁用S3上传
S3_ENABLED=true或DISABLE_S3=true - 在中配置AWS凭据和bucket设置
.env文件 - 可以使用客户端的
--no-s3选项