Descripción Detallada del Proyecto CosyVoice
Resumen del Proyecto
CosyVoice es un modelo de generación de voz multilingüe a gran escala desarrollado por el equipo FunAudioLLM de Alibaba, que proporciona una solución completa de pila completa para inferencia, entrenamiento e implementación. Este proyecto se centra en la tecnología de síntesis de voz de alta calidad, compatible con múltiples idiomas y escenarios de aplicación.
Características Principales
Últimas Características de CosyVoice 2.0
Idiomas Soportados
- Chino, Inglés, Japonés, Coreano
- Dialectos Chinos: Cantonés, Sichuanés, Shanghainés, Tianjinés, Wuhanés, etc.
Avances Tecnológicos
- Interlingüístico y Multilingüe Mixto: Soporta escenarios de cambio de idioma y código con clonación de voz zero-shot.
- Soporte de Streaming Bidireccional: Integra tecnologías de modelado offline y streaming.
- Síntesis de Latencia Ultrabaja: Latencia de síntesis del primer paquete de tan solo 150 milisegundos, manteniendo una salida de audio de alta calidad.
- Precisión de Pronunciación Mejorada: Reducción de errores de pronunciación del 30% al 50% en comparación con la versión 1.0.
- Logros en Pruebas de Referencia: Alcanza la tasa de error de caracteres más baja en el conjunto de pruebas difíciles de Seed-TTS.
- Consistencia de Tono: Asegura una consistencia de tono fiable para la síntesis de voz zero-shot e interlingüística.
- Mejora de la Prosodia y la Calidad del Sonido: Alineación de audio sintetizado mejorada, con una puntuación de evaluación MOS que aumenta de 5.4 a 5.53.
- Flexibilidad Emocional y de Dialecto: Soporta un control emocional más fino y ajustes de acento.
Versiones del Modelo
CosyVoice2-0.5B (Recomendado)
- La última versión, con un rendimiento superior.
- Soporta todas las últimas características.
Serie CosyVoice-300M
- CosyVoice-300M: Modelo base
- CosyVoice-300M-SFT: Versión de ajuste fino supervisado
- CosyVoice-300M-Instruct: Versión de ajuste fino con instrucciones
Modos de Funcionalidad
1. Clonación de Voz Zero-Shot
- Clona una voz con solo unos segundos de muestra de audio.
- Soporta la clonación de voz interlingüística.
- Mantiene las características de tono del hablante original.
2. Síntesis Interlingüística
- Sintetiza voz en otro idioma utilizando una muestra de audio en un idioma.
- Soporta combinaciones de múltiples idiomas como chino, inglés, japonés, coreano, cantonés, etc.
3. Conversión de Voz
- Convierte la voz de un hablante al tono de otro hablante.
- Cambia el tono manteniendo el contenido original.
4. Modo de Ajuste Fino Supervisado (SFT)
- Realiza la síntesis de voz utilizando identidades de hablantes predefinidas.
- Calidad de síntesis estable y fiable.
5. Modo de Control por Instrucciones (Instruct)
- Controla la síntesis de voz a través de instrucciones en lenguaje natural.
- Soporta etiquetas de emoción y efectos especiales.
- Permite controlar el estilo de voz, la expresión emocional, etc.
6. Control Fino
- Soporta marcadores especiales como risa
[laughter]
, respiración [breath]
, etc.
- Soporta control de énfasis
<strong></strong>
.
- Ajuste fino de la emoción y la prosodia.
Arquitectura Técnica
Tecnologías Clave
- Marcado de Voz Discreto: Basado en la tecnología de marcado de voz discreto supervisado.
- Decodificación Semántica Progresiva: Utiliza modelos de lenguaje (LMs) y Flow Matching.
- Modelado de Streaming Bidireccional: Soporta inferencia en tiempo real y por lotes.
- Integración Multimodal: Integración perfecta con modelos de lenguaje grandes.
Optimización del Rendimiento
- Soporte de Inferencia de Streaming: Incluye almacenamiento en caché KV y optimización SDPA.
- Muestreo con Percepción de Repetición (RAS): Mejora la estabilidad del LLM.
- Aceleración TensorRT: Soporta inferencia acelerada por GPU.
- Precisión FP16: Equilibra el rendimiento y la calidad.
Instalación y Uso
Requisitos del Entorno
- Python 3.10
- GPU compatible con CUDA (recomendado)
- Gestión de entornos Conda
Inicio Rápido
# Clonar el repositorio
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
# Crear el entorno
conda create -n cosyvoice -y python=3.10
conda activate cosyvoice
conda install -y -c conda-forge pynini==2.1.5
pip install -r requirements.txt
Descarga del Modelo
from modelscope import snapshot_download
# Descargar CosyVoice2.0 (Recomendado)
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
# Descargar otras versiones
snapshot_download('iic/CosyVoice-300M', local_dir='pretrained_models/CosyVoice-300M')
snapshot_download('iic/CosyVoice-300M-SFT', local_dir='pretrained_models/CosyVoice-300M-SFT')
snapshot_download('iic/CosyVoice-300M-Instruct', local_dir='pretrained_models/CosyVoice-300M-Instruct')
Ejemplo de Uso Básico
from cosyvoice.cli.cosyvoice import CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio
# Inicializar el modelo
cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B')
# Clonación de voz zero-shot
prompt_speech = load_wav('./asset/zero_shot_prompt.wav', 16000)
for i, result in enumerate(cosyvoice.inference_zero_shot(
'收到好友从远方寄来的生日礼物,那份意外的惊喜与深深的祝福让我心中充满了甜蜜的快乐。',
'希望你以后能够做的比我还好呦。',
prompt_speech
)):
torchaudio.save(f'output_{i}.wav', result['tts_speech'], cosyvoice.sample_rate)
# Síntesis controlada por instrucciones
for i, result in enumerate(cosyvoice.inference_instruct2(
'今天天气真不错,我们去公园散步吧。',
'用四川话说这句话',
prompt_speech
)):
torchaudio.save(f'instruct_{i}.wav', result['tts_speech'], cosyvoice.sample_rate)
Esquemas de Implementación
Implementación de la Interfaz Web
python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice2-0.5B
Implementación del Contenedor Docker
cd runtime/python
docker build -t cosyvoice:v1.0 .
# Servicio gRPC
docker run -d --runtime=nvidia -p 50000:50000 cosyvoice:v1.0 \
/bin/bash -c "cd /opt/CosyVoice/CosyVoice/runtime/python/grpc && \
python3 server.py --port 50000 --model_dir iic/CosyVoice2-0.5B"
# Servicio FastAPI
docker run -d --runtime=nvidia -p 50000:50000 cosyvoice:v1.0 \
/bin/bash -c "cd /opt/CosyVoice/CosyVoice/runtime/python/fastapi && \
python3 server.py --port 50000 --model_dir iic/CosyVoice2-0.5B"
Escenarios de Aplicación
Aplicaciones Comerciales
- Atención al Cliente Inteligente: Sistemas de atención al cliente multilingües.
- Audiolibros: Narración personalizada y doblaje de personajes.
- Asistentes de Voz: Experiencia de interacción humano-máquina natural.
- Educación en Línea: Producción de contenido educativo multilingüe.
Aplicaciones Creativas
- Producción de Podcasts: Generación automatizada de contenido de podcasts.
- Doblaje de Juegos: Síntesis de voz de personajes.
- Producción de Videos Cortos: Soluciones de doblaje rápidas.
- Traducción de Voz: Traducción de voz a voz en tiempo real.
Integración Técnica
- Integración con LLM: Construcción de sistemas de diálogo completos.
- Chat de Voz Emocional: Robots de diálogo que admiten la expresión emocional.
- Podcasts Interactivos: Generación de contenido dinámico.
- Audiolibros Expresivos: Rica expresividad emocional.
Ventajas Técnicas
Indicadores de Rendimiento
- Latencia: Síntesis del primer paquete de tan solo 150 ms.
- Calidad: MOS