Kokoro Tts Mcp

Kokoro Tts Mcp

🚀 Kokoro 文本转语音(TTS)MCP 服务器

Kokoro 文本转语音(TTS)MCP 服务器可用于生成 .mp3 文件,并且提供了上传至 S3 的选项,为文本转语音需求提供了便捷的解决方案。

使用链接:https://huggingface.co/spaces/hexgrad/Kokoro-TTS

🚀 快速开始

✨ 主要特性

  • 能够生成 .mp3 文件。
  • 支持将生成的文件上传到 S3。

📦 安装指南

克隆仓库

将项目克隆到本地仓库。

下载权重文件

下载 Kokoro Onnx 权重kokoro-v1.0.onnxvoices-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 

请将 替换为实际的文本内容。

示例:配置并运行 MCP 服务器和客户端

  1. 启动 MCP 服务器:
uv run mcp-tts.py
  1. 在另一个终端窗口中,启动 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)

其他资源

  • 0 关注
  • 0 收藏,38 浏览
  • system 提出于 2025-10-07 06:36

相似服务问题

相关AI产品