AVISO IMPORTANTE: É imperativo que as ferramentas mencionadas neste conteúdo não sejam utilizadas para fins ilícitos. O uso que você faz dessas ferramentas é de sua inteira responsabilidade. Esteja ciente de que o uso inadequado pode acarretar consequências legais. É proibido tentar replicar a voz de qualquer pessoa sem o devido consentimento, independentemente de como planeja usar essa replicação.
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
No vídeo, eu uso o modelo chamado XTTS, que foi criado pela empresa COQUI AI.
OBS: A coqui ai está em shutdown, isto é, o projeto não será mais mantido… Porém, o modelo e o código ainda está no git e podemos usar para o principal propósito aqui: estudar!
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:
Apaixonado por tecnologia e veterano em bancos de dados SQL Server, este entusiasta agora se aventura no fascinante universo da Inteligência Artificial.
Atualmente é o Head de Inovação da Power Tuning, onde é o responsável por trazer novas ideias para produtos e serviços, que melhorem a produtividade do time ou a experiência do cliente! Com muita experiência em programação, hardware, sistemas operacionais, e mais, agora quer juntar tudo isso nesse novo mundo e trazer muitas ideias e conhecimento sobre Inteligência Artificial!
Neste blog, vai compartilhar sua jornada de aprendizado e uso da IA, focando em como transformar nossa maneira de resolver problemas e inovar.
Contents