Dia: un modelo texto-voz para generar diálogos multijugador hiperrealistas

Introducción general

Dia es un modelo de conversión de texto a voz (TTS) de código abierto desarrollado por Nari Labs que se centra en la generación de audio de diálogo hiperrealista. Transforma guiones de texto en diálogos realistas de varios caracteres en un solo proceso, admite el control de emociones y entonación, e incluso genera expresiones no verbales como la risa.En el corazón de Dia se encuentra un modelo de 1.600 millones de parámetros alojado en Hugging Face, con código y modelos de preentrenamiento a disposición de los usuarios a través de GitHub. Diseñado con un énfasis en la apertura y la flexibilidad, permite a los usuarios tener un control total sobre los guiones de diálogo y la salida de voz, y Dia proporciona una interfaz Gradio para que los usuarios tengan una idea rápida de cómo será el diálogo generado. El proyecto cuenta con el apoyo de Google TPU Research Cloud y Hugging Face ZeroGPU Grant, y se inspira en tecnologías como SoundStorm y Parakeet.

Dia:生成超现实多人对话的文本转语音模型

Dirección de demostración: https://huggingface.co/spaces/nari-labs/Dia-1.6B

 

Lista de funciones

  • Generación de diálogos surrealistas: Convierte guiones de texto en audio de diálogo de varios caracteres con soporte para etiquetas de hablante múltiple (p. ej. [S1], [S2]).
  • Emoción y control del tono: Ajuste de la emoción y entonación del habla mediante señales sonoras o semillas fijas.
  • expresión no verbal: Genere sonidos no verbales, como risas y pausas, para aumentar el realismo de los diálogos.
  • Interfaz interactiva de Gradio: Proporciona una interfaz visual para simplificar la generación de diálogos y las operaciones de salida de audio.
  • Modelos y códigos de fuente abiertaLos usuarios pueden descargar modelos preentrenados de Hugging Face u obtener el código fuente en GitHub.
  • Compatibilidad entre dispositivosCompatible con la GPU y con la CPU en el futuro.
  • Ajustes repetiblesGarantiza una generación coherente de resultados estableciendo semillas aleatorias.

 

Utilizar la ayuda

Proceso de instalación

Para utilizar Dia, primero tienes que clonar tu repositorio de GitHub y configurar tu entorno. Aquí tienes los pasos detallados:

  1. almacén de clones::
    Ejecute el siguiente comando en el terminal:

    git clone https://github.com/nari-labs/dia.git
    cd dia
    
  2. Creación de un entorno virtual::
    Utiliza Python para crear entornos virtuales y aislar dependencias:

    python -m venv .venv
    source .venv/bin/activate  # Windows 用户运行 .venv\Scripts\activate
    
  3. Instalación de dependencias::
    Dia Uso uv Herramientas para gestionar las dependencias. Instalación uv Y corre:

    pip install uv
    uv run app.py
    

    Esto instalará automáticamente las bibliotecas necesarias e iniciará la interfaz de Gradio.

  4. requisitos de hardware::
    • GPUsGPUs NVIDIA recomendadas compatibles con CUDA.
    • CPUOptimización para GPU: la optimización para GPU es mejor en la actualidad, pero está prevista la compatibilidad con CPU.
    • memoria de acceso aleatorio (RAM)Al menos 16 GB de RAM; se necesita más memoria para cargar los modelos.
  5. Verificar la instalación::
    estar en movimiento uv run app.py A continuación, el terminal mostrará la URL local de la interfaz de Gradio (normalmente la URL http://127.0.0.1:7860). Abra esta URL en su navegador y compruebe que la interfaz se carga correctamente.

Uso de la interfaz de Gradio

La interfaz Gradio es el principal método de interacción de Dia y resulta adecuada para realizar pruebas rápidas y generar diálogos. Los pasos son los siguientes:

  1. Abrir la interfaz::
    activar (un plan) uv run app.py La interfaz contiene cuadros de entrada de texto, ajustes de parámetros y áreas de salida de audio.
  2. Introducción de guiones de diálogo::
    Introduzca la secuencia de comandos en el cuadro de texto, utilizando la tecla [S1]y[S2] etc. para distinguir a los hablantes. Por ejemplo:

    [S1] 你好,今天过得怎么样?
    [S2] 还不错,就是有点忙。(笑)
    

    El script admite marcas no lingüísticas como (笑).

  3. Ajuste de los parámetros de generación::
    • Marcador de audio máximo(--max-tokens): Controla la longitud del audio generado, por defecto 3072.
    • Ratio CFG(--cfg-scale): Ajusta la calidad de generación, por defecto 3.0.
    • temp(--temperature): controla la aleatoriedad, por defecto 1.3, cuanto más alto sea el valor más aleatorio será.
    • Top-p(--top-p): probabilidad de muestreo del núcleo, por defecto 0,95.
      Estos parámetros pueden ajustarse en la interfaz, y los principiantes pueden utilizar los valores por defecto.
  4. Añadir pistas de audio (opcional)::
    Para mantener la coherencia de la voz, puedes cargar un audio de referencia. Haz clic en la opción "Audio Cue" de la interfaz y selecciona un archivo WAV. En la documentación oficial se menciona que pronto se publicarán directrices para el audio cueing, pero por ahora puedes consultar el ejemplo de la interfaz de Gradio.
  5. Generar audio::
    Pulsa el botón "Generar" y el modelo procesará el script y emitirá el audio. El tiempo de generación depende del rendimiento del hardware, normalmente entre unos segundos y decenas de segundos. El audio generado puede previsualizarse en la interfaz o descargarse como archivo WAV.
  6. fijación de semillas::
    Para garantizar que el sonido generado sea siempre el mismo, puedes establecer una semilla aleatoria. Haz clic en la opción "Semilla" de la interfaz e introduce un número entero (por ejemplo 35). Si no se ajusta, Dia puede generar un sonido diferente cada vez.

Uso de la línea de comandos

Además de Gradio, Dia también admite operaciones de línea de comandos para desarrolladores o generación por lotes. A continuación se muestra el ejemplo:

  1. Ejecución de scripts CLI::
    Se ejecuta en un entorno virtual:

    python cli.py "[S1] 你好! [S2] 嗨,很好。" --output output.wav
    
  2. Especificación de modelos::
    Por defecto, la función nari-labs/Dia-1.6B Modelos. Si utiliza un modelo local, deberá proporcionar un archivo de configuración y puntos de control:

    python cli.py --local-paths --config config.yaml --checkpoint checkpoint.pt "[S1] 测试" --output test.wav
    
  3. Parámetros de ajuste::
    Los parámetros de generación pueden establecerse desde la línea de comandos, por ejemplo:

    python cli.py --text "[S1] 你好" --output out.wav --max-tokens 3072 --cfg-scale 3.0 --temperature 1.3 --top-p 0.95 --seed 35
    

Función destacada Operación

  • Diálogo entre varios personajes::
    El punto fuerte de Dia es la generación de diálogos multiactor. Los guiones se crean con la [S1]y[S2] etc. para diferenciar a los personajes, el modelo asignará automáticamente una voz distinta a cada personaje. Se recomienda que el tono o la emoción del personaje se expliciten en el guión, por ejemplo:

    [S1] (兴奋)我们赢了!
    [S2] (惊讶)真的吗?太棒了!
    
  • expresión no verbal::
    Añadir a la secuencia de comandos (笑)y(停顿) etc., Dia generará los efectos sonoros correspondientes. Ejemplo:

    [S2] 这太好笑了!(笑)
    
  • coherencia de voz::
    Para evitar que se generen sonidos diferentes cada vez, fija la semilla o utiliza pistas de audio. La fijación de la semilla se realiza en la interfaz de Gradio o en la línea de comandos mediante el comando --seed Ajustes. Las indicaciones de audio deben cargarse como archivos WAV de alta calidad con clips de voz claros.

advertencia

  • Los modelos no se ajustan a sonidos específicosSonidos generados: los sonidos generados pueden ser diferentes cada vez, por lo que es necesario garantizar la coherencia mediante la siembra o la señalización acústica.
  • limitación de hardware: El rendimiento de la GPU tiene un impacto significativo en la velocidad de generación y puede ser más lento en dispositivos de gama baja.
  • Directrices éticasNari Labs proporciona directrices éticas y legales de uso que los usuarios deben seguir para evitar generar contenidos inapropiados.

 

escenario de aplicación

  1. creación de contenidos
    Dia es ideal para generar diálogos realistas para podcasts, animaciones o vídeos cortos. Los creadores pueden introducir guiones y generar rápidamente las voces de los personajes, eliminando los costes de grabación. Por ejemplo, los animadores pueden generar diálogos con diferentes entonaciones para sus personajes con el fin de mejorar su trabajo.
  2. Educación y formación
    Dia puede generar diálogos de audio para el aprendizaje de idiomas o la formación en juegos de rol. Por ejemplo, los profesores de idiomas pueden crear diálogos con múltiples roles que simulen escenarios reales para ayudar a los alumnos a practicar la comprensión y la expresión oral.
  3. desarrollo de juegos
    Los desarrolladores de juegos pueden utilizar Dia para generar diálogos dinámicos para los PNJ. Los scripts admiten el etiquetado de emociones y pueden generar diálogos específicos para cada personaje en distintos escenarios.
  4. Investigación y desarrollo
    Los investigadores de IA pueden explorar las tecnologías TTS mediante un desarrollo secundario basado en el código fuente abierto de Dia. El modelo admite la carga local, lo que resulta idóneo para la experimentación y la optimización.

 

CONTROL DE CALIDAD

  1. ¿Qué formatos de entrada admite Dia?
    Dia acepta guiones de texto con [S1]y[S2] Los marcadores distinguen a los hablantes. Signos no verbales como (笑)El audio cue está disponible opcionalmente en formato WAV.
  2. ¿Cómo puedo asegurarme de que los sonidos generados son coherentes?
    Las semillas fijas pueden establecerse configurando (--seed) o subir una implementación de audio cue. Las semillas pueden establecerse en la interfaz de Gradio o en la línea de comandos, y las pistas de audio deben ser archivos WAV de alta calidad.
  3. ¿Admite Dia el funcionamiento con CPU?
    Actualmente, Dia está optimizado para ejecutarse en GPU, aunque está previsto que en el futuro sea compatible con CPU, y se recomienda el uso de GPU NVIDIA para obtener el máximo rendimiento.
  4. ¿Cuánto se tarda en generar audio?
    El tiempo de generación depende del hardware y de la longitud del guión. En las GPU de alto rendimiento, los diálogos cortos suelen tardar unos segundos en generarse, y los diálogos largos pueden tardar decenas de segundos.
  5. ¿Dia es gratis?
    Dia es un proyecto de código abierto y el código y los modelos son gratuitos. Los usuarios son responsables del coste del hardware necesario para ejecutarlo.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

Debe iniciar sesión para participar en los comentarios.
Acceder ahora
ninguno
Sin comentarios...