CosyVoice: Ali lanza un proyecto de código abierto de clonación de voz en 3 segundos con soporte para etiquetas controladas emocionalmente.
Últimos recursos sobre IAActualizado hace 6 meses Círculo de intercambio de inteligencia artificial 3.8K 00
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

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

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

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
- 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 carpeta
output/
Catálogo.
- 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 carpeta
output/
Catálogo.
- 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.
- Las emociones pueden ajustarse con parámetros de línea de comandos al generar el habla:
- 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 carpeta
output/
Catálogo.
Procedimiento de funcionamiento detallado
- 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.
- 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.
- 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.
- 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
El artículo está protegido por derechos de autor y no debe reproducirse sin autorización.
Artículos relacionados
Sin comentarios...