InícioBlog → Transcrição de mensagens de voz: WhatsApp, Telegram e outros

Transcrição de mensagens de voz: WhatsApp, Telegram e outros

Publicado em 2026-08-18 · 5 min de leitura

Mensagem de voz é cômoda para quem manda e incômoda para quem recebe: não dá para passar os olhos, nem buscar, nem ler numa reunião. A transcrição automática resolve isso — veja como colocá-la dentro de um bot ou de um processo de atendimento.

O que diferencia uma mensagem de voz

Mensagens de voz têm três particularidades que valem ser levadas em conta:

Enviando o áudio para transcrição

O arquivo vai exatamente como chegou do mensageiro:

from openai import OpenAI

client = OpenAI(base_url="https://voicesscribe.com/v1", api_key="sua chave")

with open("mensagem.ogg", "rb") as f:
    text = client.audio.transcriptions.create(model="whisper-1", file=f).text

print(text)

O formato é identificado pelo conteúdo do arquivo, não pela extensão, então um nome errado não atrapalha o reconhecimento.

Um bot que responde em texto

O fluxo é simples: recebeu o áudio, baixou o arquivo, mandou transcrever, devolveu o texto no chat.

async def on_voice(message, bot):
    file = await bot.download(message.voice.file_id)   # ogg/opus
    text = client.audio.transcriptions.create(
        model="whisper-1", file=("voz.ogg", file), language="pt",
    ).text
    await message.reply(text or "Não consegui entender o áudio")

A resposta vem na mesma requisição, então o usuário recebe o texto poucos segundos depois de enviar a mensagem.

Mensagens curtas: como ganhar precisão

Em gravações de dois ou três segundos o trabalho é mais difícil: há pouco contexto e a detecção de idioma pode errar. Três truques que quase sempre ajudam:

  1. Informe o idiomalanguage="pt". A detecção automática é desligada e os erros em frases curtas desaparecem.
  2. Sugira o formato esperado pelo prompt. Para códigos: prompt="Código de confirmação de quatro dígitos".
  3. Olhe a confiança. A resposta verbose_json traz a probabilidade do idioma: um valor baixo é sinal de que vale reconferir.

Fluxos em vários idiomas

Se as mensagens chegam em idiomas diferentes, não há nada a configurar: o idioma é detectado pelo som e há suporte a 99 deles. A resposta verbose_json devolve o idioma reconhecido — um jeito prático de rotear o atendimento para quem fala aquela língua.

Uma ressalva: o idioma é decidido pelo começo da gravação. Se a pessoa começa em português e passa para o inglês, a transcrição segue em «modo português» — esse tipo de mensagem é melhor tratar à parte.

O que fazer com silêncio e áudios vazios

Parte das mensagens acaba vazia: toque acidental, queda de conexão, ruído de fundo sem fala. Nesses casos o serviço devolve texto vazio em vez de frases inventadas — filtros internos cortam as «alucinações» típicas de redes neurais, como créditos finais e agradecimentos por assistir.

No código basta checar a string vazia e não mostrar ao usuário uma resposta sem sentido.

Teste com as suas próprias gravações. O cadastro leva um minuto e os minutos gratuitos bastam para avaliar a qualidade.

Obter uma chave de API grátis

Perguntas frequentes

Preciso converter ogg para wav antes de enviar?

Não. O arquivo é aceito no formato em que o mensageiro o entrega: ogg, opus, mp3, m4a, wav e outros formatos comuns.

Áudios em português são bem reconhecidos?

Sim, o português está entre os idiomas com melhor qualidade de reconhecimento. O idioma é detectado sozinho, mas em fluxos de um idioma só vale informá-lo explicitamente.

Quanto tempo leva a transcrição de um áudio?

Uma mensagem comum de até um minuto é processada em um ou dois segundos, e a resposta volta na mesma requisição.

O que volta se não houver fala na gravação?

Texto vazio. O serviço não inventa conteúdo onde não existe.

Existe limite de tamanho de arquivo?

Sim, 25 MB por requisição. Para mensagens de voz isso é folgado: em opus, esse tamanho corresponde a várias horas de fala.

Leitura relacionada