Apresentação Detalhada do Projeto CosyVoice
Visão Geral do Projeto
CosyVoice é um modelo de geração de voz multilíngue de grande porte desenvolvido pela equipe FunAudioLLM da Alibaba, que oferece uma solução completa de pilha para inferência, treinamento e implantação. Este projeto se concentra em tecnologia de síntese de voz de alta qualidade, suportando vários idiomas e cenários de aplicação.
Principais Características
Últimas Características do CosyVoice 2.0
Idiomas Suportados
- Chinês, Inglês, Japonês, Coreano
- Dialetos Chineses: Cantonês, Sichuanês, Shanghainês, Tianjinês, Wuhanês, etc.
Avanços Tecnológicos
- Híbrido Interlinguístico e Multilíngue: Suporta cenários de troca de idiomas e códigos com clonagem de voz zero-shot.
- Suporte de Streaming Bidirecional: Integra tecnologias de modelagem offline e de streaming.
- Síntese de Latência Ultrabaixa: Latência de síntese do primeiro pacote de até 150 milissegundos, mantendo a saída de áudio de alta qualidade.
- Melhora na Precisão da Pronúncia: Redução de 30% a 50% nos erros de pronúncia em comparação com a versão 1.0.
- Conquistas de Benchmark: Atinge a menor taxa de erro de caracteres no conjunto de testes difíceis do conjunto de avaliação Seed-TTS.
- Consistência da Tonalidade: Garante uma consistência confiável da tonalidade na síntese de voz zero-shot e interlinguística.
- Aprimoramento da Prosódia e Qualidade Sonora: Alinhamento aprimorado do áudio sintetizado, com pontuação de avaliação MOS aumentando de 5,4 para 5,53.
- Flexibilidade Emocional e Dialetal: Suporta controle emocional mais refinado e ajuste de sotaque.
Versões do Modelo
CosyVoice2-0.5B (Recomendado)
- Versão mais recente, com desempenho superior.
- Suporta todas as características mais recentes.
Série CosyVoice-300M
- CosyVoice-300M: Modelo base
- CosyVoice-300M-SFT: Versão de ajuste fino supervisionado
- CosyVoice-300M-Instruct: Versão de ajuste fino de instrução
Modos de Funcionalidade
1. Clonagem de Voz Zero-Shot
- Clone a voz com apenas alguns segundos de amostra de áudio.
- Suporta clonagem de voz interlinguística.
- Mantém as características de tonalidade do falante original.
2. Síntese Interlinguística (Cross-lingual)
- Sintetize a fala em outro idioma usando uma amostra de áudio em um idioma.
- Suporta várias combinações de idiomas, como chinês, inglês, japonês, coreano, cantonês, etc.
3. Conversão de Voz (Voice Conversion)
- Converta a voz de um falante para a tonalidade de outro falante.
- Altere a tonalidade enquanto mantém o conteúdo original.
4. Modo de Ajuste Fino Supervisionado (SFT)
- Realize a síntese de voz usando identidades de falante predefinidas.
- Qualidade de síntese estável e confiável.
5. Modo de Controle de Instrução (Instruct)
- Controle a síntese de voz por meio de instruções em linguagem natural.
- Suporta rótulos emocionais e efeitos especiais.
- Controla o estilo da fala, expressão emocional, etc.
6. Controle Fino
- Suporta marcadores especiais como risadas
[laughter]
, respiração [breath]
, etc.
- Suporta controle de ênfase
<strong></strong>
.
- Ajuste fino de emoção e prosódia.
Arquitetura Técnica
Tecnologias Essenciais
- Marcação de Fala Discreta: Tecnologia de marcação de fala discreta baseada em supervisão.
- Decodificação Semântica Progressiva: Utiliza modelos de linguagem (LMs) e Flow Matching.
- Modelagem de Streaming Bidirecional: Suporta inferência em tempo real e em lote.
- Integração Multimodal: Integração perfeita com grandes modelos de linguagem.
Otimização de Desempenho
- Suporte de Inferência de Streaming: Inclui cache KV e otimização SDPA.
- Amostragem Sensível à Repetição (RAS): Melhora a estabilidade do LLM.
- Aceleração TensorRT: Suporta inferência acelerada por GPU.
- Precisão FP16: Equilibra desempenho e qualidade.
Instalação e Uso
Requisitos de Ambiente
- Python 3.10
- GPU com suporte CUDA (recomendado)
- Gerenciamento de ambiente Conda
Início Rápido
# Clonar o repositório
git clone --recursive https://github.com/FunAudioLLM/CosyVoice.git
cd CosyVoice
# Criar o ambiente
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
Download do Modelo
from modelscope import snapshot_download
# Baixar CosyVoice2.0 (recomendado)
snapshot_download('iic/CosyVoice2-0.5B', local_dir='pretrained_models/CosyVoice2-0.5B')
# Baixar outras versões
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')
Exemplo de Uso Básico
from cosyvoice.cli.cosyvoice import CosyVoice2
from cosyvoice.utils.file_utils import load_wav
import torchaudio
# Inicializar o modelo
cosyvoice = CosyVoice2('pretrained_models/CosyVoice2-0.5B')
# Clonagem 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íntese de controle de instrução
for i, result in enumerate(cosyvoice.inference_instruct2(
'今天天气真不错,我们去公园散步吧。',
'用四川话说这句话',
prompt_speech
)):
torchaudio.save(f'instruct_{i}.wav', result['tts_speech'], cosyvoice.sample_rate)
Soluções de Implantação
Implantação de Interface Web
python3 webui.py --port 50000 --model_dir pretrained_models/CosyVoice2-0.5B
Implantação de Contêiner Docker
cd runtime/python
docker build -t cosyvoice:v1.0 .
# Serviço 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"
# Serviço 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"
Cenários de Aplicação
Aplicações Comerciais
- Atendimento ao Cliente Inteligente: Sistema de atendimento ao cliente multilíngue.
- Audiolivros: Narração personalizada e dublagem de personagens.
- Assistentes de Voz: Experiência de interação homem-máquina natural.
- Educação Online: Produção de conteúdo de ensino multilíngue.
Aplicações Criativas
- Produção de Podcasts: Geração automatizada de conteúdo de podcast.
- Dublagem de Jogos: Síntese de voz de personagens.
- Produção de Vídeos Curtos: Solução de dublagem rápida.
- Tradução de Voz: Tradução de voz para voz em tempo real.
Integração Técnica
- Integração com LLM: Construção de sistemas de diálogo completos.
- Chat de Voz Emocional: Suporta robôs de diálogo com expressão emocional.
- Podcasts Interativos: Geração de conteúdo dinâmico.
- Audiolivros Expressivos: Rica expressividade emocional.
Vantagens Técnicas
Métricas de Desempenho
- Latência: Síntese do primeiro pacote de até 150ms.
- Qualidade: MOS