victorharry / zap-gpt

ChatGPT para Whatsapp
331 stars 149 forks source link

Suporte a Whisper API #7

Open joaoaugustogrobe opened 1 year ago

joaoaugustogrobe commented 1 year ago

Ontem à tarde, encontrei seu repositório enquanto tentava resolver um problema pessoal: ouvir áudios longos e tediosos. Decidi fazer um fork e começar a explorar a API do Whisper (também da OpenAI), que permite gerar uma transcrição de áudio.

Para gerar a transcrição do áudio, executei as seguintes etapas:

Identifiquei que a mensagem era um arquivo de áudio; Baixei o arquivo de áudio em ogg (o formato padrão de mídia de áudio do WhatsApp); Converti o arquivo para MP3 ou outro formato suportado pelo Whisper; Enviei o arquivo para o Whisper usando a API. Na minha implementação atual no meu fork, sempre que uma mensagem contém um áudio, o "zap-gpt" gera a transcrição e responde à mensagem com ela. Embora não acredite que esta seja a melhor maneira de adicionar suporte para áudios com essa ferramenta, as funções necessárias para gerar a transcrição do áudio estão implementadas.

Gostaria de discutir como podemos adicionar essa funcionalidade ao repositório. Pensei em algumas alternativas e encontrei uma abordagem que poderia ser integrada às funções atuais do bot, mantendo os comandos existentes. Ao processar a mensagem, verificaríamos se ela tem uma mensagem de "quote", ou seja, se ela está respondendo a outra mensagem. Caso a mensagem de quote seja uma mensagem com um áudio, executamos o Whisper como um middleware e executamos o comando com o output do Whisper.

Assim, o usuário poderia responder a uma mensagem de áudio com /bot, e o sistema executaria o comando /bot com o conteúdo transcrito do áudio respondido.

Além disso, poderiam ser implementados comandos auxiliares dessa forma, como /translate e /summary, para traduzir e fazer o resumo do áudio, respectivamente.