Skip to content

Como clonar uma voz com IA no seu próprio computador!

Este é o post 5 de 6 da série de IA a Z

O post e vídeo de hoje trazem novamente o uso de IA na minha própria máquina. Porém, dessa vez vamos explorar um modelo de IA que foi treinado para gerar fala a partir de um texto. Você provavelmente já viu este tipo de tecnologia em diversos lugares. Até alguns poucos anos atrás, você estava acostumado com essa tecnologia (que é chamada de TTS, ou Text to Speech/Texto para Fala) com uma voz específica, geralmente uma mulher, e que parecia muito um robô falando, fugindo bastante de uma fala natural.

Além de clonar o texto, o modelo foi treinado para conseguir clonar vozes com apenas alguns segundos de áudio. Por ser um modelo ao qual tenho acesso gratuito, pensei que a qualidade não seria boa, mas me surpreendeu em vários aspectos (e em outros, nem tanto). O grande ponto aqui vai mais uma vez para o fato de ser uma IA que você tem acesso e pode explorar no seu próprio computador. Pode fazer testes, pode estudá-la, pode treiná-la, etc…

Coqui TTS e XTTS

Para subir o modelo, eu optei por usar docker. A coqui ai facilitou minha vida criando um projeto chamado XTTS STREAMING SERVER, onde ele encapsula esse modelo em uma API e interface web usando o Gradio.
Apesar disso, ainda tinham alguns ajustes necessários, então eu criei um novo projeto no GitHub e botei aqui tudo que você precisa pra subir isso com docker: https://github.com/rrg92/docker-xtts

Docker compose

Basicamente, eu criei um docker compose que sobe a API e a interface Web de uma vez só. O XTTS Streaming Server instrui você a subir isso de forma separada… Então, eu apenas juntei todo o processo em um comando só.
O serviço chamado “server” é a API, que é o modelo de fato que gera voz. Inclusive, se você reparar no download inicial que ele faz do modelo, vai ver que são os mesmos arquivos do repositório do Hugging Face do XTTS
Aqui também, ele instala um monte de dependências, o que inclui um clone do repositório da coqui ai e instala todas as libs em python… Se eu fosse fazer isso do zero, me daria um belo trabalho… Tudo facilitado ai pra vocês! Obrigado coqui ai!

O outro serviço que criei, chamei de “XTTS”. É apenas a interface web. No projeto original do xtts streaming server, ele orienta como você pode subir a interface usando o script python demo.py.
Esse script sobe a interface que se comunica com o serviço de API descrito anteriormente. Aqui a COQUI AI também ajudou sensacionalmente, já deixando toda a interface bonitinha com as principais opções: colocar o texto, escolher o speaker, idioma e o clone…
O que eu faço de diferente é justamente adicionar isso pra subir logo após a API subir… E também instalar algumas dependências adicionais, como o ffmpeg, para que possamos clonar qualquer formato de áudio (isso me ajudou a poupar tempo para clonar alguns áudios do whatsapp)

Enfim, a COQUI AI fez uma bela contribuição pra comunidade e eu adicionei algumas coisinhas para facilitar ainda mais pra comunidade também. É só acessar o link do meu repositório git acima e usar!

O vídeo está aqui. Inclusive, eu usei 5 vozes do XTTS para gerar esse vídeo… Eu curti a narração, ficou parecendo gravação em estúdio profissional!

O resto, deixo pra você conferir:

Navegação da série<< [IA a Z – 04] Testando uma IA no meu próprio computadorApresentando o 🤗 Hugging Face >>

Leave a Reply

Your email address will not be published. Required fields are marked *