Muyan-TTS: síntesis y entrenamiento del habla en podcasts personalizados
Últimos recursos sobre IAPublicado hace 3 meses Círculo de intercambio de inteligencia artificial 2.1K 00
Introducción general
Muyan-TTS es un modelo de texto a voz (TTS) de código abierto diseñado para podcasts. Está preentrenado con más de 100.000 horas de datos de audio de podcasts y admite la síntesis de voz sin muestras para generar voz natural de alta calidad. El modelo se basa en Llama-3.2-3B y combina las tecnologías SoVITS Muyan-TTS también admite la personalización del habla a partir de decenas de minutos de datos del habla de una sola persona, adaptados a las necesidades de timbres específicos. El proyecto se publica bajo licencia Apache 2.0, con el código de entrenamiento completo, el flujo de procesamiento de datos y los pesos del modelo alojados en GitHub, Hugging Face y ModelScope, y se anima a los desarrolladores a que desarrollen y contribuyan a la comunidad.

Lista de funciones
- Síntesis de voz de muestra ceroGeneración de voz de alta calidad con estilo podcast sin formación adicional, adaptándose a una amplia gama de entradas tonales.
- Personalización de la voz: Genera la voz de un orador específico afinando unos minutos de datos de voz de una persona.
- Velocidad de razonamiento eficiente: Aproximadamente 0,33 segundos de generación de audio por segundo en una sola GPU NVIDIA A100, superando a múltiples modelos TTS de código abierto.
- Código de formación de código abierto: Proporciona un proceso de formación completo, desde el modelo base hasta el modelo de ajuste fino, con soporte para la personalización por parte de los desarrolladores.
- Proceso de datosIntegración con Whisper, FunASR y NISQA para limpiar y transcribir datos de audio de podcasts.
- Asistencia para la implantación de API: Proporciona herramientas API para facilitar la integración en podcasts u otras aplicaciones de voz.
- Pesos del modelo abierto: Los pesos de los modelos Muyan-TTS y Muyan-TTS-SFT pueden descargarse de Hugging Face y ModelScope.
Utilizar la ayuda
Proceso de instalación
La instalación de Muyan-TTS debe realizarse bajo entorno Linux, se recomienda Ubuntu. A continuación se detallan los pasos:
- almacén de clones
Abra un terminal y ejecute el siguiente comando para clonar el repositorio Muyan-TTS:git clone https://github.com/MYZY-AI/Muyan-TTS.git cd Muyan-TTS
- Creación de un entorno virtual
Creación de un entorno virtual para Python 3.10 con Conda:conda create -n muyan-tts python=3.10 -y conda activate muyan-tts
- Instalación de dependencias
Ejecute el siguiente comando para instalar las dependencias del proyecto:make build
Nota: FFmpeg necesita ser instalado. funciona en Ubuntu:
sudo apt update sudo apt install ffmpeg
- Descargar modelo preentrenado
Descargue los pesos del modelo en el siguiente enlace:- Muyan-TTS. Cara de abrazo, ModelScope
- Muyan-TTS-SFT. Cara de abrazo, ModelScope
- chinese-hubert-base. Cara de abrazo
Coloque el archivo de modelo descargado en la carpetapretrained_models
cuya estructura es la siguiente
pretrained_models ├── chinese-hubert-base ├── Muyan-TTS └── Muyan-TTS-SFT
- Verificar la instalación
Después de asegurarse de que todas las dependencias y archivos del modelo están correctamente instalados, se puede realizar la inferencia o el entrenamiento.
Utilización del modelo de base (síntesis de voz de muestra cero)
El modelo base de Muyan-TTS admite la síntesis de voz de muestra cero, que es adecuada para generar rápidamente voz de tipo podcast. Los pasos son los siguientes:
- Preparar el texto de entrada y el audio de referencia
Prepare un texto (text
) y el discurso de referencia (ref_wav_path
). Ejemplo:ref_wav_path="assets/Claire.wav" prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige." text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
- Ejecute el comando de razonamiento
Utilice el siguiente comando para generar voz, especificandomodel_type
debido abase
::python tts.py
O simplemente ejecuta el código de inferencia del núcleo:
async def main(model_type, model_path): tts = Inference(model_type, model_path, enable_vllm_acc=False) wavs = await tts.generate( ref_wav_path="assets/Claire.wav", prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together." ) output_path = "logs/tts.wav" with open(output_path, "wb") as f: f.write(next(wavs)) print(f"Speech generated in {output_path}")
El discurso generado se guarda en la carpeta
logs/tts.wav
. - Sustitución del audio de referencia
En el modo de muestra cero, elref_wav_path
Puede sustituirse por la voz de cualquier locutor, y el modelo imitará su timbre para generar una nueva voz.
Utilización del modelo SFT (personalización de la voz)
El modelo SFT se afina con datos de habla de una sola persona adecuados para generar timbres específicos. El procedimiento es el siguiente:
- Preparar los datos de entrenamiento
Recoge al menos unos minutos de datos del habla de una sola persona y guárdalos en formato WAV. Utilice como ejemplo el conjunto de datos dev-clean de LibriSpeech, disponible para su descarga:wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
Después de descomprimir el
prepare_sft_dataset.py
especificado enlibrispeech_dir
es la ruta de descompresión. - Generar datos de entrenamiento
Ejecute el siguiente comando para procesar los datos y generardata/tts_sft_data.json
::./train.sh
El formato de los datos es el siguiente:
{ "file_name": "path/to/audio.wav", "text": "对应的文本内容" }
- Ajuste de la configuración de entrenamiento
compiladortraining/sft.yaml
, establecer parámetros como la tasa de aprendizaje, el tamaño del lote, etc. - Iniciar la formación
train.sh
El siguiente comando se ejecuta automáticamente para iniciar el entrenamiento:llamafactory-cli train training/sft.yaml
Una vez finalizado el entrenamiento, los pesos del modelo se guardan en el archivo
pretrained_models/Muyan-TTS-new-SFT
. - Copiar los pesos SoVITS
Poniendo el modelo basesovits.pth
Copiar en el directorio del nuevo modelo:cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
- razonamiento en funcionamiento
Para generar discurso utilizando el modelo SFT, es necesario mantenerref_wav_path
Coherente con el altavoz utilizado en la formación:python tts.py --model_type sft
Despliegue mediante API
Muyan-TTS soporta el despliegue de APIs para una fácil integración en las aplicaciones. Los pasos son los siguientes:
- Iniciar el servicio API
Ejecute el siguiente comando para iniciar el servicio. el puerto por defecto es 8020:python api.py --model_type base
Los registros de servicio se guardan en el
logs/llm.log
. - Enviar solicitud
Utilice el siguiente código Python para enviar la solicitud:import requests payload = { "ref_wav_path": "assets/Claire.wav", "prompt_text": "Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.", "text": "Welcome to the captivating world of podcasts, let's embark on this exciting journey together.", "temperature": 0.6, "speed": 1.0, } url = "http://localhost:8020/get_tts" response = requests.post(url, json=payload) with open("logs/tts.wav", "wb") as f: f.write(response.content)
advertencia
- requisitos de hardwarePara la inferencia se recomienda la GPU NVIDIA A100 (40 GB) o equivalente.
- restricción lingüística: Dado que los datos de formación están principalmente en inglés, actualmente sólo se admite la entrada en inglés.
- Calidad de los datosLa calidad del habla del modelo SFT depende de la claridad y coherencia de los datos de entrenamiento.
- Costes de formaciónEl coste total del preentrenamiento fue de aproximadamente 50.000 dólares, incluyendo el procesamiento de datos (30.000 dólares), el preentrenamiento LLM (19.200 dólares) y el entrenamiento del descodificador (0,134 millones de dólares).
escenario de aplicación
- Creación de contenidos para podcasts
Muyan-TTS convierte rápidamente los guiones de podcast en habla natural para que los creadores independientes generen audio de alta calidad. Los usuarios pueden generar habla al estilo podcast con solo introducir el texto y el habla de referencia, lo que reduce los costes de grabación. - Producción de audiolibros
Con el modelo SFT, los creadores pueden personalizar la voz de determinados personajes para generar capítulos de audiolibros. El modelo admite la generación de audios largos, lo que resulta idóneo para contenidos extensos. - Desarrollo de asistentes de voz
Los desarrolladores pueden integrar Muyan-TTS en los asistentes de voz a través de API para ofrecer una experiencia de interacción por voz natural y personalizada. - Generación de contenidos educativos
Las escuelas u organizaciones de formación pueden convertir el material didáctico a voz para generar audio para ejercicios de comprensión oral o explicaciones de cursos, adecuados para el aprendizaje de idiomas o para discapacitados visuales.
CONTROL DE CALIDAD
- ¿Qué idiomas admite Muyan-TTS?
En la actualidad sólo se admite el inglés, ya que los datos de entrenamiento están dominados por podcasts en inglés. En el futuro se podrán utilizar otros idiomas ampliando el conjunto de datos. - ¿Cómo mejorar la calidad del habla de los modelos SFT?
Utilice datos de habla unipersonal claros y de alta calidad para evitar el ruido de fondo. Asegúrese de que los datos de entrenamiento coinciden con el estilo de habla de la escena de destino. - ¿Y el razonamiento lento?
Garantizar el uso de ayudas vLLM Entornos GPU acelerados. Ennvidia-smi
Comprueba el uso de memoria para asegurarte de que el modelo se carga correctamente en la GPU. - ¿Admite el uso comercial?
Muyan-TTS se publica bajo la licencia Apache 2.0 y se admite su uso comercial, sujeto a los términos de la licencia. - ¿Cómo puedo obtener asistencia técnica?
Las incidencias pueden enviarse a través de GitHub (Cuestiones) o únete a la comunidad Discord (Discordia) Consigue apoyo.
© declaración de copyright
Derechos de autor del artículo Círculo de intercambio de inteligencia artificial Todos, por favor no reproducir sin permiso.
Artículos relacionados
Sin comentarios...