Kokoro TTS
Un servidor que proporciona capacidades de texto a voz utilizando el motor Kokoro TTS.
Documentación
Servidor MCP Kokoro TTS
Un servidor de Model Context Protocol (MCP) que proporciona capacidades de texto a voz utilizando el motor Kokoro TTS. Este servidor expone la funcionalidad TTS a través de herramientas MCP, lo que facilita la integración de síntesis de voz en tus aplicaciones.
Requisitos previos
- Python 3.10 o superior
- Gestor de paquetes
uv
Instalación
- Primero, instala el gestor de paquetes
uv:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Clona este repositorio e instala las dependencias:
uv venv
source .venv/bin/activate # On Windows, use: .venv\Scripts\activate
uv pip install .
Características
- Síntesis de texto a voz con voces personalizables
- Velocidad de habla ajustable
- Soporte para guardar audio en archivos o reproducción directa
- Soporte de reproducción de audio multiplataforma (Windows, macOS, Linux)
- Backend remoto opcional compatible con OpenAI (p. ej. kokoro-fastapi) para descargar la síntesis a una máquina con GPU
Uso
El servidor proporciona una única herramienta MCP generate_speech con los siguientes parámetros:
text(obligatorio): El texto a convertir en vozvoice(opcional): Voz a utilizar para la síntesis (por defecto: "af_heart")speed(opcional): Multiplicador de velocidad del habla (por defecto: 1.0)save_path(opcional): Directorio para guardar archivos de audioplay_audio(opcional): Si se debe reproducir el audio inmediatamente (por defecto: False)
Ejemplo de uso
from mcp.client import Client
async with Client() as client:
await client.connect("kokoro-tts")
# Generate and play speech
result = await client.call_tool(
"generate_speech",
{
"text": "Hello, world!",
"voice": "af_heart",
"speed": 1.0,
"play_audio": True
}
)
Backend remoto (compatible con OpenAI)
Por defecto, el servidor ejecuta Kokoro localmente. Si ya ejecutas un endpoint TTS compatible con OpenAI, como kokoro-fastapi (útil para ejecutarlo en una GPU), apunta el servidor a él con variables de entorno — no se necesitan torch/kokoro locales:
| Variable | Por defecto | Descripción |
|---|---|---|
KOKORO_BASE_URL | (sin definir) | URL base compatible con OpenAI, p. ej. http://localhost:8880/v1. Cuando se define, la síntesis se envía aquí en lugar de ejecutarse localmente. |
KOKORO_API_KEY | not-needed | Token Bearer, si tu endpoint lo requiere. |
KOKORO_MODEL | kokoro | Nombre del modelo enviado al endpoint. |
Internamente, esto llama a POST {KOKORO_BASE_URL}/audio/speech con el payload estándar de OpenAI (model, input, voice, speed, response_format: wav).
Docker
docker build -t kokoro-tts-mcp .
docker run --rm -i kokoro-tts-mcp
Para usar un backend remoto en lugar de incluir Kokoro:
docker run --rm -i -e KOKORO_BASE_URL=http://host.docker.internal:8880/v1 kokoro-tts-mcp
Dependencias
- kokoro >= 0.8.4
- mcp[cli] >= 1.3.0
- soundfile >= 0.13.1
- httpx >= 0.27.0
Soporte de plataformas
La reproducción de audio es compatible con:
- Windows (usando
start) - macOS (usando
afplay) - Linux (usando
aplay)
Configuración de MCP
Añade la siguiente configuración a tu archivo de configuración de MCP:
{
"mcpServers": {
"kokoro-tts": {
"command": "/Users/giannisan/pinokio/bin/miniconda/bin/uv",
"args": [
"--directory",
"/Users/giannisan/Documents/Cline/MCP/kokoro-tts-mcp",
"run",
"tts-mcp.py"
]
}
}
}
Licencia
MIT © Gianni Sanrochman