DEV Community

Cover image for NeoVoice AI: De Transcrição a Ata de Reunião Inteligente com Uma Flag
NjC-IA
NjC-IA

Posted on

NeoVoice AI: De Transcrição a Ata de Reunião Inteligente com Uma Flag

Se você já usou o NeoVoice AI para transcrição e análise de áudio, sabe que a API já entregava bastante coisa: transcrição completa, análise de sentimento, identificação de tópicos e resumo executivo — tudo em uma única chamada POST.

Agora, o NeoVoice deu um passo além. Com a adição de um único parâmetro booleano no body da requisição, a API passa a gerar atas de reunião estruturadas com título, participantes, decisões, tarefas e pendências. E se você precisar de um documento formal, pode receber a ata como um arquivo .docx pronto para download.

O melhor? Zero breaking changes. Se você já integra o NeoVoice, sua implementação continua funcionando exatamente como antes.


A Arquitetura da Mudança

O design dessa feature é elegantemente simples. O endpoint continua sendo o mesmo POST /analyze_audio. O fluxo de transcrição é idêntico. A única diferença está em dois novos parâmetros opcionais no body JSON:

{
  "audio_base64": "...",
  "filename": "reuniao_sprint.mp3",
  "language_code": "pt-BR",
  "generate_ata": true,
  "output_format": "json"
}
Enter fullscreen mode Exit fullscreen mode

generate_ata (boolean, default false) — Quando true, a IA analisa a transcrição com um prompt especializado em atas de reunião em vez do prompt padrão de analytics. O modelo de IA é o mesmo; a diferença está 100% no system prompt.

output_format (string, "json" | "docx", default "json") — Só é relevante quando generate_ata: true. Controla se a resposta volta como JSON estruturado ou como binário .docx.

O parâmetro generate_ata usa comparação estrita is True — aceita apenas JSON boolean true, não strings. Requisições sem o campo se comportam exatamente como antes. Backward-compatible por omissão.


Os Três Modos de Resposta

Modo 1: Analytics (comportamento original)

Sem generate_ata ou com generate_ata: false. Nada muda:

import requests

url = "https://neovoice-ai.p.rapidapi.com/analyze_audio"
headers = {
    "X-RapidAPI-Key": "SUA_CHAVE",
    "X-RapidAPI-Host": "neovoice-ai.p.rapidapi.com"
}

payload = {
    "audio_url": "https://exemplo.com/reuniao.mp3",
    "language_code": "pt-BR"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

print(data["transcript"])
print(data["analytics"]["overall_sentiment"])
print(data["analytics"]["main_topics"])
print(data["analytics"]["summary"])
Enter fullscreen mode Exit fullscreen mode

Resposta:

{
  "status": "success",
  "transcript": "...",
  "analytics": {
    "overall_sentiment": "positivo",
    "main_topics": ["sprint planning", "prazo de entrega", "módulo X"],
    "summary": "A equipe alinhou prioridades para o próximo sprint..."
  }
}
Enter fullscreen mode Exit fullscreen mode

Modo 2: Ata Inteligente em JSON

Adicione generate_ata: true:

payload = {
    "audio_url": "https://exemplo.com/reuniao.mp3",
    "language_code": "pt-BR",
    "generate_ata": True,
    "output_format": "json"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

print(data["ata"]["titulo"])
print(data["ata"]["participantes"])
print(data["ata"]["decisoes"])
print(data["ata"]["tarefas"])
print(data["ata"]["pendentes"])
Enter fullscreen mode Exit fullscreen mode

Resposta:

{
  "status": "success",
  "transcript": "...",
  "ata": {
    "titulo": "Reunião de alinhamento de sprint",
    "participantes": ["Ana (PO)", "Bruno (dev)", "Carlos (QA)"],
    "decisoes": [
      "Aprovado prazo de entrega para 15/07",
      "Módulo X será priorizado sobre o módulo Y"
    ],
    "tarefas": [
      {
        "responsavel": "Bruno",
        "acao": "Subir PR do módulo X",
        "prazo": "28/06"
      },
      {
        "responsavel": "Carlos",
        "acao": "Criar suite de testes de regressão",
        "prazo": "30/06"
      }
    ],
    "pendentes": [
      "Aguardar resposta jurídica sobre cláusula 4"
    ]
  }
}
Enter fullscreen mode Exit fullscreen mode

A estrutura é previsível e parseável. Cada tarefa tem responsavel, acao e prazo — perfeito para alimentar boards de projeto, Jira, Notion ou qualquer sistema de gestão.

Modo 3: Ata como Documento Word (.docx)

Troque output_format para "docx":

payload = {
    "audio_url": "https://exemplo.com/reuniao.mp3",
    "language_code": "pt-BR",
    "generate_ata": True,
    "output_format": "docx"
}

response = requests.post(url, json=payload, headers=headers)

# A resposta é binária — salve direto em arquivo
with open("ata_reuniao.docx", "wb") as f:
    f.write(response.content)

print("Ata salva como ata_reuniao.docx")
Enter fullscreen mode Exit fullscreen mode

A resposta vem com Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document e Content-Disposition: attachment; filename="ata_reuniao.docx". Não é JSON. Trate como blob/binário no frontend.

O documento gerado é um .docx real — abre no Word, Google Docs, LibreOffice. Formatado com seções, listas e tabelas de tarefas.


Limites Técnicos

Parâmetro Valor
Tamanho máximo do áudio 100 MB
Duração máxima processada 7 minutos
Formatos aceitos .wav, .mp3, .m4a, .mp4, .ogg, .opus, .flac, .aac, .wma, .webm, .amr
Idiomas pt-BR, en-US e outros suportados pelo motor de speech

A detecção de formato usa magic bytes — não depende da extensão do arquivo. Se você renomear um .mp3 para .wav, a API detecta o formato real e converte corretamente.


Por Que Isso é Bom de Verdade

A maioria das APIs de transcrição para por aí — te entrega texto e tchau. Se você quer algo estruturado, precisa montar seu próprio pipeline de LLM, escrever prompts, parsear saídas, lidar com alucinações e formatos quebrados.

O NeoVoice faz tudo isso em uma chamada. A mesma chamada que já existia. Com um campo a mais. Sem novo endpoint, sem nova autenticação, sem novo deployment. Se você já consome a API, é literalmente adicionar "generate_ata": true no seu payload.

E o export .docx é gerado server-side em memória — sem escrita em disco, sem dependência de serviços externos de conversão. Binário puro na resposta HTTP.


Comece Agora

Acesse o NeoVoice AI — Transcrição e Análise de Áudio com IA para conhecer o produto, ver demos e testar gratuitamente direto no navegador.

Para integrar via API, pegue sua chave no 👉 NeoVoice AI no RapidAPI

Os 3 primeiros usos são gratuitos. Happy coding! 🚀

Top comments (0)