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: clonagem de voz rápida de 3 segundos lançada por Ali com suporte para tags-1 emocionalmente controladas

 

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:

Download dos modelos git do #, verifique se você tem o git lfs instalado
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:

definir PYTHONPATH=terceiro_partido/AcademiCodec;terceiro_partido/Matcha-TTS

Uso básico:

from cosyvoice.cli.cosyvoice import CosyVoice
from cosyvoice.utils.file_utils import load_wav
importar torchaudio
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M-SFT')
Uso do sft #
print(cosyvoice.list_avaliable_spks())
output = cosyvoice.inference_sft('Hello, I'm Tongyi Generative Speech Large Model. , 'Chinese female')
torchaudio.save('sft.wav', output['tts_speech'], 22050)
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M')
Uso do # zero_shot
prompt_speech_16k = load_wav('zero_shot_prompt.wav', 16000)
output = cosyvoice.inference_zero_shot('Recebi um presente de aniversário do meu melhor amigo de longe, a surpresa inesperada e a profunda bênção encheram meu coração de doce alegria, e meu sorriso desabrochou como uma flor. , 'I hope you can do better than me in the future.' , prompt_speech_16k)
torchaudio.save('zero_shot.wav', output['tts_speech'], 22050)
Uso do # em vários idiomas
prompt_speech_16k = load_wav('cross_lingual_prompt.wav', 16000)
output = cosyvoice.inference_cross_lingual('<|en|>Portanto, manter a gerência alinhada, o interesse alinhado com o ativo que está entrando na família é uma das razões pelas quais às vezes não compramos tudo. Por que às vezes não compramos tudo?", prompt_speech_16k)
torchaudio.save('cross_lingual.wav', output['tts_speech'], 22050)
cosyvoice = CosyVoice('speech_tts/CosyVoice-300M-Instruct')
Uso de instruções do #
output = cosyvoice.reference_instruct('Diante dos desafios, ele demonstrou uma notável<strong>corajoso</strong>junto com<strong>sabedoria</strong>.' Theo \'Crimson\', 'Chinese Man', 'Theo \'Crimson\', é um líder rebelde impetuoso e apaixonado. Luta com fervor pela justiça, mas luta contra a impulsividade.)
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

entrevistas http://localhost:9886

CosyVoice: projeto de código aberto de clonagem de voz de 3 segundos lançado por Ali com suporte para controle de emoções tag-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

entrevistas http://localhost:50000

CosyVoice: projeto de código aberto de clonagem de voz de 3 segundos lançado por Ali com suporte para tags de controle de emoções-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 pastasaída/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 pastasaída/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 pastasaída/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.
Aprendizagem fácil com IA

O guia do leigo para começar a usar a IA

Ajuda você a aprender a utilizar as ferramentas de IA com baixo custo e a partir de uma base zero.A IA, assim como o software de escritório, é uma habilidade essencial para todos. Dominar a IA lhe dará uma vantagem em sua busca de emprego e metade do esforço em seu trabalho e estudos futuros.

Ver detalhes>
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

Chefe do Círculo de Compartilhamento de IA

O Chief AI Sharing Circle se concentra no aprendizado de IA, fornecendo conteúdo abrangente de aprendizado de IA, ferramentas de IA e orientação prática. Nosso objetivo é ajudar os usuários a dominar a tecnologia de IA e explorar juntos o potencial ilimitado da IA por meio de conteúdo de alta qualidade e compartilhamento de experiências práticas. Seja você um iniciante em IA ou um especialista sênior, este é o lugar ideal para adquirir conhecimento, aprimorar suas habilidades e realizar inovações.

Entre em contato conosco
pt_BRPortuguês do Brasil