Convertendo Texto em Voz com a ChatGPT API

No post anterior implementamos um bot que, ao ser adicionado em um grupo do Telegram, realiza a moderação do conteúdo das mensagens enviadas pelos participantes. O desenvolvimento desse bot foi possível graças ao uso da API do ChatGPT, a qual é disponibilizada pela Open.ai e, dentre seus diversos recursos, permite a filtragem de conteúdo inapropriado em textos.

Ainda que o bot de moderação de conteúdo tenha permitido testar o funcionamento da API do ChatGPT na prática, ainda existem muitas possibilidades de uso a serem exploradas. Sendo assim, com o objetivo de aprender novas formas de uso dessa API, neste post, vamos desenvolver um bot que transforma texto em fala!

Sim… É isso mesmo que você leu. Iremos fazer a transformação de texto em voz suuuuper natural! kkkk

Antes de iniciarmos a implementação, é importante esclarecer que para fazer a conversão de texto em voz natural, a API do ChatGPT faz uso de um modelo de inteligência artificial chamado TTS. A API oferece duas variações desse modelo. A tts-1 é otimizada para casos de conversão em tempo real de texto para fala. Por sua vez, a tts-1-hd é otimizada para qualidade.

Além de variações do modelo de IA, a API também oferece diversas vozes a serem utilizadas na fala resultante da conversão.

Após essa contextualização, antes de iniciar a implementação, devemos criar uma conta no site da OpenAI e criar uma API key para poder realizar as requisições. Com tudo isso pronto, a chamada a API de conversão de texto para voz pode ser feita da seguinte forma:

Basicamente, são necessários três parâmetros para a execução da conversão, sendo eles: model, input e voice. O model refere-se ao modelo de IA (tts-1 ou tts-1-hd) a ser usado na conversão. Por sua vez, o input é o campo onde irá o texto a ser convertido. Por fim, o voice determina a voz a ser usada na fala resultante da conversão.

Por padrão, o resultado da requisição é um arquivo do tipo MP3 contendo o áudio no mesmo idioma do texto enviado. Além do MP3, são suportados diversos formatos, tais como: OPUS, AAC, FLAC e PCM. Abaixo, é possível ouvir o resultado da conversão do texto em voz feita na requisição anterior.

Uma vez entendido como fazer uma chamada à API, o próximo passo é iniciar a construção do bot. Sendo assim, precisamos fazer a configuração junto ao BotFather, porém, como esse procedimento já foi feito diversas vezes aqui no blog, vamos seguir para a codificação.

Na implementação do bot, precisamos que ele, ao receber uma mensagem do usuário, envie o texto via API para que seja realizada a conversão e, em seguida, exiba o áudio resultante ao usuário. Sendo assim, abaixo, é possível visualizar a codificação em PHP desse comportamento.

Como podemos observar na linha 6 do código-fonte acima, existe a constante CHATGPT_API, a qual armazena a URL da API. Além disso, na linha 19, existe a chamada ao método textToVoice. Esse método recebe o texto da mensagem e o envia para a conversão via API. Uma vez convertido em áudio, um arquivo MP3 é retornado, salvo no servidor e o nome do arquivo é retornado pelo método.

Uma vez que o bot obtém o resultado da conversão por meio do método textToVoice, ele usa o método sendAudio (linha 24) da API do Telegram para enviar o áudio ao usuário. A implementação dessa execução pode ser vista da linha 19 a 28.

Com o bot codificado, chegou a hora de ver o bot falando! kkk

Bom, é isso!

Espero que o exemplo de bot desenvolvido nesse post tenha lhe ajudado a entender melhor a API do ChatGPT e que isso possa contribuir em seus futuros projetos.

Caso você queira testar o bot, acesse: https://t.me/TextoParaVozGptBot

Para visualizar o código-fonte completo do bot que foi desenvolvido neste post, acesse: Texto para Voz Bot.

O bot desenvolvido neste tutorial foi hospedado na Umbler.

E aí gostou do post? Ficou com alguma dúvida? Então, deixe um comentário!

Deixe um comentário