Tutorial: Clonando vozes com IA | so-vits-svc

  • Autor Autor gabrielher
  • Data de início Data de início
Este tópico foi traduzido automaticamente do espanhol. Ver original
gabrielher

gabrielher

Dseda
No recomendado
Verificado
Verificación en dos pasos activada
Verificado por Binance
Acho que ninguém publicou um guia sobre como fazer isso, sei que existem vídeos, etc., mas aqui vou fazer um pequeno guia de como treinar esta IA para gerar a voz de quem você quiser e colocá-la para cantar, como ficou tão na moda nestas últimas semanas.

Com este guia é possível obter resultados como os tão famosos do xokas, ou um de amostra que eu treinei:



Disclaimer: Guia em processo de construção e melhoria. Por enquanto sem capturas.

O que vamos utilizar?
so-vits-svc-fork

É uma versão mais simples de utilizar do so-vits-svc, que inclui uma interface gráfica (que não é necessária) e alguns scripts mais fáceis de utilizar na hora de preparar os dados.


Requisitos:

  • Este guia foca no Windows, no Linux será muito parecido, mas a instalação será um pouco diferente.
  • Placa de vídeo NVIDIA. Se não, você vai levar 3 semanas para ver algum resultado decente.
  • Programa para separar as vozes do resto dos sons (Por exemplo, Ultimate Vocal Remover 5)

Treinamento:
  • Placa de vídeo com pelo menos 6GB de VRAM, pode funcionar com 4GB, mas as velocidades que serão alcançadas são realmente baixas. Mas se você tiver >=10GB, muito melhor.
  • Entre 100 e 200 áudios de entre 5 e 10 segundos, da voz que queremos treinar. Que fale apenas essa voz e quanto mais limpos forem os áudios, melhor. Ou seja, que não corte palavras no final, que não se ouçam ruídos de fundo, etc.

Inferência:
- Aqui é um pouco mais baixo e com 4GB de VRAM você já pode executar o modelo sem muito problema.



Instalação:

A instalação é bastante simples, baixamos este arquivo:


Preparação dos dados:

Aqui cada um terá que fazer seu trabalho de campo, buscando um áudio no qual se ouça a voz corretamente, limpá-lo, cortá-lo.

Para isso, um possível fluxo é: Baixar um vídeo do YouTube onde fale, passá-lo pelo Ultimate Vocal Remover para eliminar músicas e sons que não sejam a voz e, uma vez que temos o áudio, cortá-lo em pedaços, com Adobe Audition ou Audacity, por exemplo.

O objetivo é acabar tendo entre 100 e 150 áudios de entre 5 e 10 segundos. Muito importante respeitar estas durações.


Treinando a IA:

NOTA: Quando algo está entre {}, como {voz}, significa que se substitua por um texto, como por exemplo o nome da pessoa. Assim projeto-{voz}, poderia ser projeto-ilitri.

Uma vez que temos tudo instalado e os áudios preparados, podemos começar a treinar nosso modelo.

Para isso, criamos uma pasta, podemos chamá-la de projeto-{voz}.

Dentro desta pasta, criaremos outra chamada dataset_raw. E dentro de dataset_raw, outra com o nome da voz.

Assim deveríamos ter projeto-{voz}/dataset_raw/{voz}

Agora abrimos um terminal na pasta projeto-{voz}, e começaremos a fazer os passos prévios ao treino.

Executaremos os comandos, um por um, quando acabar o anterior:

Cita:
svc pre-resample

svc pre-config

svc pre-hubert -fm crepe

Agora, na pasta projeto-{voz}, veremos que além de dataset_raw que havíamos criado, foram geradas outras muitas pastas.

Nos interessa configs. Entramos dentro, até encontrar um arquivo chamado config.json.

Este é o arquivo que controla como o modelo é treinado. O principal são os campos "epochs" e "batch_size".

Abrimos o arquivo config.json.

Por enquanto vamos mudar o batch size para "auto", salvamos.

Agora no terminal que tínhamos aberto antes, começamos a treinar:

Cita:

svc train -t

Agora temos que ver entre todo o texto que sai qual batch_size vai utilizando. Se sair algum erro e quebrar, deveremos ir mudando o batch_size manualmente. Começando por exemplo em 16, e baixando. Este valor dependerá da memória. Com uma placa de 6GB e cerca de 150 áudios de 7 segundos, o batch que funciona são 6. Com mais memória, poderia ser aumentado. Questão de ir testando.

Uma vez encontrado o batch_size, podemos mudar os epochs a treinar. Os epochs são a quantidade de "treinos" a realizar.

No geral, começaremos a ver resultados decentes a partir do step 25000. Para traduzir isto para o epoch, aplicamos a seguinte fórmula: epochs = 25000 / (num_audios / batch_size)

Já aqui só resta esperar.

Se você quiser pausar o treinamento, pressionando control + c ele para, e depois voltando a executar svc train -t ele retoma pelo último checkpoint que tenha sido salvo.


Inferência (Gerando áudios):

A inferência, por sorte, é bastante mais simples que o treinamento.

Precisamos do áudio no qual queiramos substituir a voz pela da nossa IA e executá-la. Em alguns segundos teremos o resultado.

Para isso, escolhemos o áudio que queiramos substituir, passamos pelo Ultimate Vocal Remover (ou outra ferramenta que faça o mesmo), e colocamos o arquivo que esse programa gerar na pasta projeto-{voz}.

Agora executamos no terminal:

svc infer {voz} -fm crepe-tiny {arquivo_de_voz}.wav

Finalmente, ao terminar, encontraremos na mesma pasta um novo arquivo chamado {arquivo_de_voz}.out.wav

Espero que a alguém sirva. O guia ainda está em processo de construção. Falhas, melhorias, etc., serão corrigidas.

Perguntas por mensagem 🙂
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
muito obrigado pela grande contribuição, a verdade é que é de grande utilidade saber manejar esse tipo de IA, embora eu tenha uma dúvida, quanto tempo levaria para ter um resultado decente com as opções de PC que menciona
 
Você não pode mostrar alguma amostra do que conseguiu com este tutorial, irmão? Seria interessante ouvir. Obrigado pelo tutorial, sigo o tópico para ver resultados posteriores. Abraços.
 
muito obrigado pela grande contribuição, a verdade é que é de grande utilidade saber manejar esse tipo de IA, embora eu tenha uma dúvida, quanto tempo levaria para ter um resultado decente com as opções de PC que menciona
Aprox 1 dia

Você não pode mostrar alguma amostra do que conseguiu com este tutorial, irmão? Seria interessante ouvir. Obrigado pelo tutorial, sigo o tópico para ver resultados posteriores. Abraços.

Deixei um vídeo do TikTok como exemplo.. Pouco a pouco irei atualizando
 
Você não pode mostrar alguma amostra do que conseguiu com este tutorial, irmão? Seria interessante ouvir. Obrigado pelo tutorial, sigo o tópico para ver resultados posteriores. Abraços.

Se você não tem GPU, pode usar o Google Colab
 
Se você não tem GPU, pode usar o Google Colab
Obrigado amigo, vou testar, na verdade não tenho muita GPU hahaha e sei que instalar algo assim será muito difícil para mim, ainda bem que sempre existem essas alternativas. Obrigado
 
Obrigado pela contribuição, amigo. Vou acompanhar o tópico para ver se aplico em um futuro próximo.
 
Dúvida: Se alguém "reutilizar" minha voz com uma IA, poderei reivindicar os direitos?
 
Obrigado pelo tutorial, me interessa, um desses dias vou colocar à prova. 😉
 
Obrigado pela contribuição, mais adiante vou colocar à prova
 
Obrigado, já tinham me comentado sobre isso, no fim de semana vou mexer com isso,

Você sabe se para rodar isso em modo local é necessário algo específico? Com o Stable Diffusion uso uma 3090 para usar localmente.
 
Agradeço pela ótima contribuição.
Obrigado
 
Muito obrigado pela contribuição, eu estava procurando algo assim.

Na verdade não encontrei boas informações, mas aqui tenho tudo completo
 
Vou salvar nos favoritos, interessante, obrigado
 
Obrigado, vou fazer um teste para ver o que sai.
 
Interessantíssimo cara, obrigado pelo guia, espero aplicar em breve para aproveitar minha GPU. Ficarei atento às suas atualizações.
 
Boa contribuição, agradeço muito. Estava justamente pesquisando sobre a clonagem de vozes e, embora não goste muito por conta do tema de golpes e isso, pode ajudar em boas causas se for usado corretamente.
 
Estou testando e vai mais rápido no Google Colab do que no meu PC Windows com uma 3070
 
Estou testando e vai mais rápido no Google Colab do que no meu PC Windows com uma 3070
de quantas amostras é o seu dataset? quais são seus números de batch_size e epochs??

no PC onde estou agora tenho uma 3060ti e cada epoch demora 2 minutos e, pelo que li, precisarei de umas 5k, ou seja, 200 horas de treinamento 🙁
 
Voltar
Topo