Skip to content

Texto a voz (motores locales)

Genera mensajes de voz naturales y expresiones habladas de personajes directamente en tu máquina sin pagar tarifas por carácter ni transmitir audio a APIs de voz de terceros.

TomoriBot trata la voz como una capacidad de punto de conexión personalizado. Los motores locales se ejecutan fuera del bot como servidores HTTP e implementan POST /synthesize; los motores de clonación reciben texto junto con la muestra de audio de referencia configurada, mientras que los motores con soporte para VoiceDesign también pueden recibir instrucciones en lenguaje natural.

Motores disponibles

Flujo de configuración

  1. Elige un motor de las tarjetas anteriores y configura su contenedor desde servers/tts/.
  2. En /providers, elige + Agregar nuevo punto de conexión personalizado y usa la Compatibilidad de API tts-clone.
  3. Selecciona el punto de conexión guardado y usa su menú desplegable de modelos para agregar su modelo de voz, modo de fuente de voz y marcado de script.
  4. Abre /config > Modelos > Cambiar modelos y selecciona el punto de conexión bajo TTS (diseño de voz) o TTS (clonación de voz). Los puntos de conexión automáticos activan ambas selecciones; desactivar una conserva la otra.

Para proveedores de voz alojados y selecciones personales, consulta Voz: TTS y STT.

Acceso a la red

Cada servidor local de TTS se vincula a 127.0.0.1 por defecto, por lo que únicamente un bot en la misma máquina puede comunicarse con él. Cuando TomoriBot se ejecuta en Docker o en otra máquina, establece TOMORI_TTS_HOST=0.0.0.0 para el servidor y registra el punto de conexión con la dirección del host, por ejemplo http://host.docker.internal:8015.

Cada servidor lee su propia variable de puerto (CHATTERBOX_PORT, QWEN3TTS_PORT, IRODORI_TTS_PORT, FISH_S2_PORT, VOXCPM2_PORT, COSYVOICE3_PORT, MOSS_TTS_PORT), por lo que varios pueden ejecutarse simultáneamente desde un mismo archivo .env. bun run launch pasa .env a los servidores que inicia; un servidor iniciado manualmente solo lee las variables de su propio shell.

Los servidores no disponen de autenticación: cualquier usuario que alcance el puerto puede ejecutar síntesis en tu GPU. Vincula fuera del bucle invertido solo en una red de confianza, y coloca un proxy inverso con autenticación delante de cualquier servidor que expongas más allá de ella.

Voces de persona

Para la clonación de voz, sube una muestra limpia de un solo hablante en /config > Modelos > Parámetros y voces TTS, y luego asígnala en Persona > Voz. Consulta la guía del motor para conocer la duración de clip recomendada y los requisitos de transcripción.

TomoriBot admite muestras de hasta 130 segundos y las convierte a WAV mono. El límite de tamaño de subida es de 10 MB por defecto; SPEECH_SAMPLE_MAX_MB permite modificarlo. Un formato comprimido como FLAC puede facilitar que un clip largo se ajuste al límite.

Para los motores compatibles con diseño de voz, guarda una descripción de voz en Persona > Voz. Una persona puede tener tanto una descripción como una muestra; la prioridad de fuente de voz determina qué fuente utilizable se prueba primero. Consulta las guías de cada motor para conocer los modos compatibles y el marcado de script.

Habilita los mensajes de voz en /config > Permisos, y luego pídele a una persona que envíe uno o usa /generate voice-message para probarlo.