CosyVoice: Ali lanza un proyecto de código abierto de clonación de voz en 3 segundos con soporte para etiquetas controladas emocionalmente.

Introducción general

CosyVoice es un modelo de generación del habla multilingüe a gran escala que ofrece capacidades completas, desde la inferencia y el entrenamiento hasta la implementación. Desarrollado por el equipo FunAudioLLM, su objetivo es lograr una síntesis del habla de alta calidad mediante transformadores autorregresivos avanzados y modelos de difusión basados en ODE.CosyVoice no solo admite la generación del habla en varios idiomas, sino que también realiza el control de las emociones y la síntesis cantonesa a un nivel comparable al de la pronunciación humana.

Experiencia en línea gratuita (texto a voz): https://modelscope.cn/studios/iic/CosyVoice-300M

Experiencia en línea gratuita (voz a texto): https://www.modelscope.cn/studios/iic/SenseVoice

CosyVoice:阿里推出的3秒急速语音克隆开源项目,支持情感控制标签

 

Lista de funciones

  • Generación de voz multilingüe: admite la síntesis de voz en varios idiomas.
  • Clonación del habla: capacidad de clonar las características del habla de un orador concreto.
  • Texto a voz: Convierte el contenido de texto en voz natural y fluida.
  • Control de las emociones: expresión ajustable de las emociones al sintetizar el habla.
  • Síntesis cantonesa: admite la generación de voz en cantonés.
  • Salida de audio de alta calidad: sintetice audio de alta fidelidad mediante el vocoder HiFTNet.

 

Utilizar la ayuda

Proceso de instalación

Recientemente, Ali Tongyi Labs ha puesto a disposición pública el modelo de voz CosyVoice, que admite la generación de voz natural, el control multilingüe, del timbre y de las emociones, y destaca en la generación de voz multilingüe, la generación de voz sin muestras, la síntesis de sonido multilingüe y la ejecución de comandos.

CosyVoice utiliza un total de más de 150.000 horas de entrenamiento de datos para soportar la síntesis de cinco idiomas, chino, inglés, japonés, cantonés y coreano, y el efecto de síntesis es significativamente mejor que el de los modelos tradicionales de síntesis de voz.

CosyVoice permite clonar tonos de una sola vez: sólo se necesitan 3~10s de audio sin procesar para generar tonos analógicos, incluso incluyendo detalles como el ritmo y la emoción. También ofrece buenos resultados en la síntesis del habla en varios idiomas.

Dado que la versión oficial no es compatible de momento con las plataformas Windows y Mac, esta vez desplegamos CosyVoice localmente en estas dos plataformas respectivamente.

Plataforma Windows

Primero ven a la plataforma windows y clona el proyecto:

git clone https://github.com/v3ucn/CosyVoice_For_Windows

Acceso a los proyectos.

cd CosyVoice_For_Windows

Generar módulos incorporados:

git submodule update --init --recursive

A continuación, instale las dependencias:

conda create -n cosyvoice python=3.11  
conda activate cosyvoice  
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

La versión oficial recomendada de Python es la 3.8. La 3.11 funciona realmente, y en teoría la 3.11 tiene mejor rendimiento.

A continuación, descarga la versión para Windows del instalador de deepspeed para instalarlo:

https://github.com/S95Sedan/Deepspeed-Windows/releases/tag/v14.0%2Bpy311

Por último, instale la versión gpu de la antorcha: la

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

Aquí la versión de cuda está seleccionada como 12, o puedes instalar 11.

A continuación se descargó el modelo:

# git模型下载,请确保已安装git lfs  
mkdir -p pretrained_models  
git clone https://www.modelscope.cn/iic/CosyVoice-300M.git pretrained_models/CosyVoice-300M  
git clone https://www.modelscope.cn/iic/CosyVoice-300M-SFT.git pretrained_models/CosyVoice-300M-SFT  
git clone https://www.modelscope.cn/iic/CosyVoice-300M-Instruct.git pretrained_models/CosyVoice-300M-Instruct  
git clone https://www.modelscope.cn/speech_tts/speech_kantts_ttsfrd.git pretrained_models/speech_kantts_ttsfrd

Es muy rápido porque utiliza el almacén de Magic Hitch en China

Por último, añada las variables de entorno:

set PYTHONPATH=third_party/AcademiCodec;third_party/Matcha-TTS

Uso básico:

from cosyvoice.cli.cosyvoice import CosyVoice  
from cosyvoice.utils.file_utils import load_wav  
import torchaudio  
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M-SFT')  
# sft usage  
print(cosyvoice.list_avaliable_spks())  
output = cosyvoice.inference_sft('你好,我是通义生成式语音大模型,请问有什么可以帮您的吗?', '中文女')  
torchaudio.save('sft.wav', output['tts_speech'], 22050)  
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M')  
# zero_shot usage  
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)  
output = cosyvoice.inference_zero_shot('收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐,笑容如花儿般绽放。', '希望你以后能够做的比我还好呦。', prompt_speech_16k)  
torchaudio.save('zero_shot.wav', output['tts_speech'], 22050)  
# cross_lingual usage  
prompt_speech_16k = load_wav('cross_lingual_prompt.wav', 16000)  
output = cosyvoice.inference_cross_lingual('<|en|>And then later on, fully acquiring that company. So keeping management in line, interest in line with the asset that\'s coming into the family is a reason why sometimes we don\'t buy the whole thing.', prompt_speech_16k)  
torchaudio.save('cross_lingual.wav', output['tts_speech'], 22050)  
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M-Instruct')  
# instruct usage  
output = cosyvoice.inference_instruct('在面对挑战时,他展现了非凡的<strong>勇气</strong>与<strong>智慧</strong>。', '中文男', 'Theo \'Crimson\', is a fiery, passionate rebel leader. Fights with fervor for justice, but struggles with impulsiveness.')  
torchaudio.save('instruct.wav', output['tts_speech'], 22050)

Aquí se recomienda Webui para mayor intuición y comodidad:

python3 webui.py --port 9886 --model_dir ./pretrained_models/CosyVoice-300M

Visite http://localhost:9886

CosyVoice:阿里推出的3秒急速语音克隆开源项目,支持情感控制标签

Tenga en cuenta que la antorcha oficial utiliza sox para el backend, aquí se cambia a soundfile:

torchaudio.set_audio_backend('soundfile')

Puede haber algunos errores, así que permanezca atento a las actualizaciones oficiales del proyecto en el futuro.

Plataforma MacOS

Pasando ahora a la plataforma MacOs, es mejor clonar primero el proyecto:

git clone https://github.com/v3ucn/CosyVoice_for_MacOs.git

Instale la dependencia:

cd CosyVoice_for_MacOs  
conda create -n cosyvoice python=3.8  
conda activate cosyvoice  
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

A continuación, tienes que instalar sox a través de Homebrew:

brew install sox

Así que está configurado, pero no te olvides de añadir variables de entorno:

export PYTHONPATH=third_party/AcademiCodec:third_party/Matcha-TTS

El uso sigue siendo el mismo que en la versión para Windows.

Aquí se sigue recomendando el webui: el

python3 webui.py --port 50000 --model_dir speech_tts/CosyVoice-300M

Visite http://localhost:50000

CosyVoice:阿里推出的3秒急速语音克隆开源项目,支持情感控制标签

observaciones finales

Para ser justos, CosyVoice merece ser una gran fábrica, la calidad del modelo no es decir, que representa el más alto nivel de la IA doméstica, Tongyi Labs nombre no es falso, por supuesto, si también se puede abrir el código fuente después de la ingeniería, sería mejor, creo que después de la optimización de la libtorch, este modelo será el código abierto de la TTS no es una buena opción.

 

Proceso de utilización

  1. generación de voz::
    • Prepare el archivo de texto de entrada (por ejemplo, input.txt) con una frase por línea.
    • Ejecute el siguiente comando para la generación de voz:
      python generate.py --input input.txt --output output/
      
    • Los archivos de voz generados se guardarán en la carpetaoutput/Catálogo.
  2. clonación de voz::
    • Prepare un archivo de muestra de habla (por ejemplo, sample.wav) del hablante objetivo.
    • Ejecute el siguiente comando para la clonación de voz:
      python clone.py --sample sample.wav --text input.txt --output output/
      
    • Los archivos de voz clonados se guardarán en la carpetaoutput/Catálogo.
  3. control emocional::
    • Las emociones pueden ajustarse con parámetros de línea de comandos al generar el habla:
      python generate.py --input input.txt --output output/ --emotion happy
      
    • Las emociones de apoyo incluyen: feliz, triste, enfadado, neutro.
  4. Síntesis cantonesa::
    • Prepare un archivo de texto cantonés (por ejemplo, cantonese_input.txt).
    • Ejecute el siguiente comando para la generación del habla cantonesa:
      python generate.py --input cantonese_input.txt --output output/ --language cantonese
      
    • Los archivos de voz cantoneses generados se guardarán en la carpetaoutput/Catálogo.

Procedimiento de funcionamiento detallado

  1. Preparación de textos::
    • Asegúrese de que el archivo de texto de entrada tiene el formato correcto, una frase por línea.
    • El texto debe ser lo más conciso y claro posible, evitando las frases complejas.
  2. Preparación de muestras de voz::
    • Las muestras de habla deben ser claras, de una sola persona y con el menor ruido de fondo posible.
    • Se recomienda que la duración de la muestra sea inferior a 1 minuto para garantizar una clonación óptima.
  3. parametrización::
    • Ajuste los parámetros del discurso generado, como la emoción, el lenguaje, etc., según sea necesario.
    • La personalización puede lograrse modificando los archivos de configuración o los parámetros de la línea de comandos.
  4. Validación de los resultados::
    • Los archivos de voz generados pueden escucharse con un reproductor de audio.
    • Si los resultados no son satisfactorios, el texto de entrada o las muestras de voz pueden ajustarse y regenerarse.
© declaración de copyright
AiPPT

Artículos relacionados

Sin comentarios

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