返回 MCP 目录
public公开dns本地运行

kokoro-tts-mcp

Kokoro文本转语音(TTS)MCP服务器,支持生成MP3文件并可选上传至S3存储

article

README

🚀 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 <your-text>

请将 <your-text> 替换为实际的文本内容。

示例:配置并运行 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)

其他资源

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端