Skip to content

IrodoriTTS

Irodori-TTS v4.1 es un modelo de texto a voz enfocado en japonés con clonación de voz y Diseño de voz basado en subtítulos en un solo punto de control. TomoriBot lo ejecuta a través del envoltorio local FastAPI en servers/tts/irodoritts/.

El modelo predeterminado es Aratako/Irodori-TTS-v4.1-Small. Los puntos de control compatibles de Hugging Face se pueden seleccionar con IRODORI_TTS_MODEL_ID, incluyendo ajustes finos de la comunidad como phasefield-audio/Irodori-TTS-v4.1-Anime.

Irodori ahora usa uv para la gestión de dependencias y backend de PyTorch. Instala uv primero, luego ejecuta el script de configuración desde la raíz del repositorio de TomoriBot.

Terminal window
.\servers\tts\irodoritts\install-irodori.ps1 cu128
.\servers\tts\irodoritts\.venv\Scripts\python.exe servers\tts\irodoritts\server.py
Terminal window
bash servers/tts/irodoritts/install-irodori.sh cu128
servers/tts/irodoritts/.venv/bin/python servers/tts/irodoritts/server.py

Los scripts de configuración crean servers/tts/irodoritts/.venv, por lo que bun run launch --irodoritts continúa funcionando después de la instalación.

Los backends disponibles son:

  • cu128: NVIDIA CUDA 12.8 en Windows/Linux
  • cpu: Solo CPU, o macOS CPU/MPS a través de PyPI
  • rocm: AMD ROCm en Linux/WSL
  • xpu: Intel XPU en Windows/Linux

La URL predeterminada del punto de conexión es http://127.0.0.1:8013.

El modelo predeterminado es Aratako/Irodori-TTS-v4.1-Small. Los repositorios compatibles de Hugging Face, ajustes finos de la comunidad (como phasefield-audio/Irodori-TTS-v4.1-Anime), o archivos de puntos de control locales se pueden configurar a través de variables de entorno.

Al iniciar el sidecar (directamente con Python o a través de bun run launch --irodoritts), el servidor lee automáticamente el .env de la raíz del repositorio (o un .env local en servers/tts/irodoritts/) y registra el ID del modelo activo al inicio.

Agrega a tu .env en la raíz de TomoriBot:

IRODORI_TTS_MODEL_ID="phasefield-audio/Irodori-TTS-v4.1-Anime"

A través de una variable de entorno por sesión

Section titled “A través de una variable de entorno por sesión”

En Windows PowerShell:

Terminal window
$env:IRODORI_TTS_MODEL_ID = "phasefield-audio/Irodori-TTS-v4.1-Anime"
.\servers\tts\irodoritts\.venv\Scripts\python.exe servers\tts\irodoritts\server.py

En Linux Bash:

Terminal window
IRODORI_TTS_MODEL_ID=phasefield-audio/Irodori-TTS-v4.1-Anime \
servers/tts/irodoritts/.venv/bin/python servers/tts/irodoritts/server.py

Uso de un archivo de punto de control local

Section titled “Uso de un archivo de punto de control local”

Si has descargado un archivo de punto de control (.pt o .safetensors) localmente, establece IRODORI_TTS_CHECKPOINT en su ruta:

IRODORI_TTS_CHECKPOINT="/ruta/a/punto_de_control_personalizado.pt"

El Irodori actual descarga el punto de control junto con cualquier activo de tokenizador incluido en el repositorio de Hugging Face. Las variantes de subcarpetas de Hugging Face también son admitidas por IRODORI_TTS_MODEL_ID cuando el repositorio del modelo las proporciona.

Ejecuta /providers, elige Agregar nuevo punto de conexión personalizado y usa la compatibilidad de API de voz:

  • Compatibilidad de API: tts-clone
  • endpoint_url: http://127.0.0.1:8013

Después de guardar la conexión, selecciónala y usa su menú desplegable de modelos para agregar un modelo de Voz. Para la v4.1, las configuraciones recomendadas son:

  • Voice Source Mode: Auto
  • Script Markup Style: Emoji

Auto permite que el mismo endpoint de Irodori admita ambos modos de voz de TomoriBot, para que las pistas de emoción sobrevivan al envío:

  • Las personas con una muestra de voz asignada bajo Persona > Voz envían un clip de referencia guardado para la clonación de voz.
  • Las personas con un prompt de Diseño de voz establecido bajo Persona > Voz envían el prompt en lenguaje natural guardado como condicionamiento de subtítulos de Irodori.

Aún puedes elegir Voice Clone como Modo de fuente de voz si solo deseas la clonación de voz de audio de referencia.

Usa /providers para el registro del endpoint y la configuración del modelo. Luego abre /config > Modelos > Cambiar modelos para seleccionar y activar el endpoint registrado.

  1. Prepara un clip de voz en japonés limpio de 10-20 segundos con un solo orador y sin música de fondo.
  2. Abre /config bajo Modelos > Parámetros y voces TTS y sube el clip.
  3. Abre /config bajo Persona > Voz, luego elige la persona y la muestra de voz.

Irodori v4.1 admite un condicionamiento de referencia más largo que el modelo v2 antiguo, pero el audio fuente limpio sigue siendo más importante que la duración bruta.

  1. Abre /config bajo Persona > Voz.
  2. Elige la persona.
  3. Ingresa una descripción en lenguaje natural de la voz y entrega deseadas.

TomoriBot envía este prompt como instruct; el envoltorio de Irodori lo asigna a la condición caption de v4.1. Las solicitudes de Diseño de voz no requieren un clip de referencia guardado.

TomoriBot elimina la sintaxis de emoji personalizados de Discord antes de enviar el texto al texto a voz. Con script_markup: emoji, los emojis Unicode se conservan para el condicionamiento de texto de Irodori.

El valor predeterminado sigue siendo el muestreo lineal de 40 pasos de mayor calidad de Irodori. Para menor latencia, prueba Sway Sampling con menos pasos:

Terminal window
$env:IRODORI_NUM_STEPS = "6"
$env:IRODORI_T_SCHEDULE_MODE = "sway"
$env:IRODORI_SWAY_COEFF = "-1.0"

Esta es una compensación entre calidad y velocidad de inferencia, así que pruébala con tu punto de control y voces elegidas antes de hacerla permanente.

Por qué los scripts de instalación son más simples ahora

Section titled “Por qué los scripts de instalación son más simples ahora”

El instalador anterior de TomoriBot clonaba y parcheaba el pyproject.toml de Irodori, instalaba manualmente dacvae y fijaba un commit antiguo de Irodori de la era v2. Esas soluciones alternativas eran necesarias para el diseño del paquete upstream anterior, pero ya no son apropiadas para el Irodori actual.

El sidecar ahora tiene su propio pyproject.toml y sigue la configuración del backend uv upstream. Irodori y dacvae permanecen fijados a commits conocidos allí para instalaciones reproducibles, pero TomoriBot ya no modifica el código fuente upstream durante la instalación.

VariablePredeterminadoPropósito
IRODORI_TTS_MODEL_IDAratako/Irodori-TTS-v4.1-SmallRepositorio de modelos de Hugging Face o fuente compatible de repositorio/subcarpeta
IRODORI_TTS_CHECKPOINTsin establecerPunto de control opcional local .pt o .safetensors; anula el modelo de Hugging Face
TOMORI_TTS_HOST127.0.0.1Dirección de enlace del servidor
TOMORI_TTS_PORT8013Puerto del servidor
IRODORI_MODEL_DEVICEautoDispositivo del modelo (auto, cuda, cpu, mps, xpu)
IRODORI_CODEC_DEVICEautoDispositivo del códec
IRODORI_MODEL_PRECISIONbf16 en CUDA, de lo contrario fp32Precisión del modelo
IRODORI_CODEC_PRECISIONfp32Precisión del códec
IRODORI_COMPILE_MODELfalseHabilitar torch.compile para el modelo Irodori
IRODORI_COMPILE_DYNAMICfalseHabilitar formas dinámicas al compilar
IRODORI_NUM_STEPS40Pasos de muestreo Euler
IRODORI_T_SCHEDULE_MODElinearPrograma de muestreo (linear o sway)
IRODORI_SWAY_COEFF-1.0Coeficiente Sway al usar el programa sway
IRODORI_CFG_SCALE_TEXT3.0Escala de orientación de texto
IRODORI_CFG_SCALE_CAPTION3.0Escala de orientación de subtítulos / Diseño de voz
IRODORI_CFG_SCALE_SPEAKER5.0Escala de orientación del orador de referencia
IRODORI_MAX_REF_SECONDSvalor predeterminado del punto de controlLímite opcional en la duración del audio de referencia
TOMORI_TTS_MAX_TEXT_CHARS1000Límite de longitud de texto por solicitud