Tentei clonar a voz do Filipe Deschamps e fiz ele cantar "Ai se eu te pego" (usando IA)
Oi, olá!
Sim, é mais ou menos isso mesmo que está no título e eu posso explicar. Então vamo lá!
Sumário1. Um pouco de contexto2. O que é RVC? 3. A ideia 4. Os "testes" ├ 1 - Vídeo do Diego narrado pelo Filipe └ 2 - Michel... Digo, Filipe cantando "Ai se eu te pego" 5. Considerações finais |
Um pouco de contexto
Recentemente eu estava andando pelo YouTube e vi um corte da live de um streamer que acompanho chamado "Felps". Nesse vídeo eu descobri uma coisa que o pessoal começou a fazer chamada de "AI Cover", que basicamente são músicas com vozes feitas por IA com a voz de vários artistas (incluindo artistas que já morreram), o que gera um resultado estranhamente interessante.
Eu como um bom entusiasta de IA, fiquei muito entusiasmado com isso, e procurei saber como o pessoal fazia isso. Acabei chegando em uma comunidade no Discord chamada "AI HUB" e lá o pessoal treinava vários modelos para "RVC e So-Vits", que no caso, são IAs que fazem a conversão da voz, que é treinada usando um dataset feito com a voz limpa do artista ou pessoa. Daí então, começei a usar o RVC para fazer meus "testes".
O que é RVC?
RVC (Retrieval based Voice Conversion) é uma IA de conversão de voz fácil de usar baseada em VITS. O modelo do RVC foi pré-treinado com um dataset open-source de quase 50 horas com músicas licenciadas de alta qualidade. O RVC (além de outra IA chamada "So-Vits") é muito usado atualmente para a criação desses "AI Covers".
O RVC funciona primeiro encontrando uma voz de origem que seja semelhante à voz de saída. Isso é feito usando um algoritmo de similaridade de voz para comparar as duas vozes. Depois que uma voz de origem semelhante é encontrada, o modelo RVC aprende a converter a voz de origem na voz de destino. Isso é feito treinando o modelo com um dataset de gravações de voz de origem e destino. O modelo aprende a prever a voz de destino dada a voz de origem.
A ideia
Uma das minhas ideias de uso, foi de treinar um modelo com a voz do nosso querido Filipe Deschamps para usar a voz dele em cima da voz de outras pessoas que eu tinha em mente (e por "outras pessoas" quero dizer sim de outros "Micheis Teló").
Para começar, eu teria que treinar um modelo com a voz do Filipe. Para isso, eu precisaria criar um dataset limpo com pelo menos 20 minutos de audio do Filipe. O que não foi muito difícil. Nesse caso, acabei usando o vídeo "secreto" sobre as tabcoins para treinar o modelo. Eu fiz uma limpeza no audio original e usei um script em Python para splitar o audio em vários audios menores de 10 segundos (o que é necessário para treinar o modelo).
Depois de criar o dataset, fiz o upload dele para o Google Drive e usei um Jupyter Notebook no Google Colab para treinar o modelo. No total eu treinei o modelo com 500 epochs (o que levou algumas horas). Só não treinei mais por causa da limitação de uso de GPU imposta pela Google Colab. Depois disso, baixei o model e deixei o modelo guardado por um tempo até eu ter as ideias de testes para usar com ele.
Os "testes"
Vídeo do Diego narrado pelo Filipe
Para começar a testar a voz falada do Filipe, eu baixei um vídeo do Diego Fernandes (também conhecido como "Teló do Foguete") sobre 5 dicas para uma carreira sólida como programador. Depois, eu cortei o vídeo em partes de 1 minuto, já que o RVC não sabe lidar com trechos muito longos de áudio e renderizei todos os áudios com a voz do Filipe no RVC. Para finalizar, eu uni os áudios gerados em um vídeo. O resultado foi esse aqui:
(Click na imagem para abrir o link, ou abra ele em outra aba)
Sobre o resultado, eu achei que ficou mais ou menos consistente com a voz do Filipe. Em alguns momentos, a voz dele soa bem parecida com a textura da voz do Filipe, porém, com trejeitos de fala claros do Diego. Não acho que tenha ficado perfeito, mas, na minha opnião, ficou parecida com a voz do Filipe, mesmo que mesclada ao do Diego.
Michel... Digo, Filipe cantando "Ai se eu te pego"
Para fazer o bendito "cover", eu levei um pouco mais de tempo. Primeiro eu baixei um áudio limpo do Michel Teló original cantando "Ai se eu te pego" (o que foi um pouco difícil, por incrível que pareça). Depois de baixar, eu usei um isolador de voz chamado: "Moises" para isolar a voz do cantor. Depois, dividi a acapella em audios de 30 segundos e enviei para o RVC com o mesmo modelo do Filipe. Depois, eu uni os audios resultantes, baixei um instrumental da música e tentei editar tudo usando o FL Studio. E o resultado final foi esse:
(Click na imagem para abrir o link, ou abra ele em outra aba)
Eu particularmente achei o resultado bem curioso, já que a voz do Filipe dessa vez ficou bem mais aguda mesclada com a voz do outro Teló, ao mesmo tempo em que achei engraçado e bizarro. Eu não sei se o resultado se deve ao fato de eu ter treinado o modelo usando audios falados ao invés de cantados (por razões óbvias).
Considerações finais
Eu gostei bastante de ter feitos esses testes e eu acho bizarro como a IA está evoluindo ao ponto de conseguirmos criar deep fakes tão bizarramente parecidos com a pessoa original (não sei se é o caso com o modelo do Filipe, haha). Isso sem contar outras evoluções, como as imagens geradas por IA, que evoluiu assustadoramente em um periodo de 1 ano. Eu acredito que com o avanço de outras IAs, como IAs de geração de vídeo e linguagem natural, nós vamos poder ter vídeos praticamente inteiros feitos por IAs (talvez).
Caso você tenha alguma ideia do que eu possa fazer com o modelo do Filipe, ou tenha algum feedback, por favor, comente!
No mais, muito obrigado por ter lido até aqui :)