Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

CosyVoice: projeto de código aberto de clonagem de voz de 3 segundos lançado por Ali com suporte para tags controladas emocionalmente

Introdução geral

O CosyVoice é um modelo multilíngue de geração de fala em larga escala que oferece recursos de pilha completa, desde a inferência, o treinamento até a implantação. Desenvolvido pela equipe do FunAudioLLM, ele tem como objetivo obter uma síntese de fala de alta qualidade por meio de transformadores autorregressivos avançados e modelos de difusão baseados em ODE. O CosyVoice não só é compatível com a geração de fala em vários idiomas, mas também executa o controle de emoções e a síntese em cantonês em um nível comparável à pronúncia humana.

Experiência on-line gratuita (conversão de texto em fala): https://modelscope.cn/studios/iic/CosyVoice-300M


Experiência on-line gratuita (fala para texto): https://www.modelscope.cn/studios/iic/SenseVoice

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

 

Lista de funções

  • Geração de fala em vários idiomas: suporta a síntese de fala em vários idiomas.
  • Clonagem de fala: a capacidade de clonar as características da fala de um orador específico.
  • Conversão de texto em fala: converta o conteúdo de texto em uma fala natural e suave.
  • Controle de emoções: expressão de emoções ajustáveis ao sintetizar a fala.
  • Síntese em cantonês: oferece suporte à geração de fala em cantonês.
  • Saída de áudio de alta qualidade: sintetize áudio de alta fidelidade por meio do vocoder HiFTNet.

 

Usando a Ajuda

Processo de instalação

Recentemente, o Ali Tongyi Labs abriu o modelo de fala CosyVoice, que suporta a geração de fala natural, multilíngue, timbre e controle de emoções, e se destaca na geração de fala em vários idiomas, geração de fala com amostra zero, síntese de som em vários idiomas e recursos de execução de comandos.

O CosyVoice usa um total de mais de 150.000 horas de treinamento de dados para dar suporte à síntese de cinco idiomas, chinês, inglês, japonês, cantonês e coreano, e o efeito da síntese é significativamente melhor do que os modelos tradicionais de síntese de fala.

O CosyVoice é compatível com a clonagem de tons em um único disparo: são necessários apenas de 3 a 10 segundos de áudio bruto para gerar tons analógicos, incluindo até mesmo detalhes como ritmo e emoção. Ele também apresenta bom desempenho na síntese de fala em vários idiomas.

Como a versão oficial não é compatível com as plataformas Windows e Mac por enquanto, desta vez implantamos o CosyVoice localmente nessas duas plataformas, respectivamente.

Plataforma Windows

Primeiro, vá para a plataforma Windows e clone o projeto:

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

Acesso a projetos.

cd CosyVoice_For_Windows

Gerar módulos embutidos:

git submodule update --init --recursive

Em seguida, instale as dependências:

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

A versão oficial recomendada do Python é a 3.8, mas a 3.11 realmente funciona e, teoricamente, a 3.11 tem melhor desempenho.

Em seguida, faça o download da versão Windows do instalador do deepspeed para instalá-lo:

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

Por fim, instale a versão gpu do torch: o

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

Aqui, a versão do cuda é selecionada como 12, ou você pode instalar a 11.

Em seguida, foi feito o download do 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

É muito rápido porque usa o armazém Magic Hitch na China

Por fim, adicione as variáveis de ambiente:

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)

O Webui é recomendado aqui para maior intuição e conveniência:

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

Visite http://localhost:9886

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

Observe que o torch oficial usa o sox para o backend; aqui ele é alterado para soundfile:

torchaudio.set_audio_backend('soundfile')

Pode haver alguns bugs, portanto, fique atento às atualizações oficiais do projeto no futuro.

Plataforma MacOS

Agora, no caso da plataforma MacOs, é melhor clonar o projeto primeiro:

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

Instale a dependência:

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

Em seguida, você precisa instalar o sox via Homebrew:

brew install sox

Portanto, ele está configurado, mas não se esqueça de adicionar variáveis de ambiente:

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

O uso permanece o mesmo da versão para Windows.

O webui ainda é recomendado aqui: o

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

Visite http://localhost:50000

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

observações finais

Com toda a justiça, a CosyVoice merece ser uma grande fábrica, a qualidade do modelo não é de se dizer, representando o mais alto nível de IA doméstica, o nome Tongyi Labs não é falso, é claro, se você também puder abrir o código-fonte do código após a engenharia, seria melhor, acredito que após a otimização do libtorch, esse modelo será o código-fonte aberto do TTS não é uma boa escolha.

 

Processo de uso

  1. geração de fala::
    • Prepare o arquivo de texto de entrada (por exemplo, input.txt) com uma frase por linha.
    • Execute o seguinte comando para geração de fala:
      python generate.py --input input.txt --output output/
      
    • Os arquivos de voz gerados serão salvos na pastaoutput/Catálogo.
  2. clonagem de fala::
    • Prepare um arquivo de amostra de fala (por exemplo, sample.wav) do falante-alvo.
    • Execute o seguinte comando para clonagem de voz:
      python clone.py --sample sample.wav --text input.txt --output output/
      
    • Os arquivos de voz clonados serão salvos na pastaoutput/Catálogo.
  3. controle emocional::
    • As emoções podem ser ajustadas com parâmetros de linha de comando ao gerar a fala:
      python generate.py --input input.txt --output output/ --emotion happy
      
    • As emoções de apoio incluem: felicidade, tristeza, raiva e neutralidade.
  4. Síntese em cantonês::
    • Prepare um arquivo de texto em cantonês (por exemplo, cantonese_input.txt).
    • Execute o seguinte comando para a geração de fala em cantonês:
      python generate.py --input cantonese_input.txt --output output/ --language cantonese
      
    • Os arquivos de voz em cantonês gerados serão salvos na pastaoutput/Catálogo.

Procedimento de operação detalhado

  1. Preparação do texto::
    • Verifique se o arquivo de texto de entrada está formatado corretamente, com uma frase por linha.
    • O texto deve ser o mais conciso e claro possível, evitando frases complexas.
  2. Preparação de amostras de voz::
    • As amostras de fala devem ser claras, de uma única pessoa, com o mínimo possível de ruído de fundo.
    • Recomenda-se que a duração da amostra seja inferior a 1 minuto para garantir a clonagem ideal.
  3. parametrização::
    • Ajuste os parâmetros da fala gerada, como emoção, idioma, etc., conforme necessário.
    • A personalização pode ser obtida modificando os arquivos de configuração ou os parâmetros da linha de comando.
  4. Validação dos resultados::
    • Os arquivos de voz gerados podem ser ouvidos com um reprodutor de áudio.
    • Se os resultados não forem satisfatórios, o texto de entrada ou as amostras de fala podem ser ajustados e gerados novamente.
Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " CosyVoice: projeto de código aberto de clonagem de voz de 3 segundos lançado por Ali com suporte para tags controladas emocionalmente
pt_BRPortuguês do Brasil