Transcrição + Análise de Reuniões
Status: No ar desde a Phase 73 (2026-06-06). Envie gravações de áudio/vídeo pelo compositor do chat — o Arc OS transcreve, analisa o conteúdo visual, resume e indexa na busca do projeto.
Visão Geral
O pipeline de transcrição de reuniões transforma uma gravação bruta em conhecimento estruturado e pesquisável sem sair do Arc OS:
Upload (Transcripts page or composer paperclip)
→ Groq whisper-large-v3 (~100× realtime, $0.111/audio-hour)
→ Claude vision on key frames (video only — slide content, screen shares)
→ Claude Sonnet summary (tldr, action items, decisions, topics)
→ Cohere RAG embed (transcript searchable via arc kb search)
→ done (source file deleted from disk)
Estimativa de custo (chave Anthropic BYOK): ~US$ 0,20–0,45 por reunião de 30 minutos (vision + resumo) + ~US$ 0,056 de transcrição Groq. A funcionalidade requer um plano pago (Starter / Starter Cloud / Beta).
Enviando uma Gravação
- Abra o workspace de qualquer projeto.
- Clique no ícone de clipe no compositor do chat.
- Selecione um arquivo de áudio ou vídeo. Formatos suportados:
- Vídeo: mp4, mov, webm, mkv, m4v
- Áudio: mp3, wav, m4a, aac, ogg, opus, flac
- Tamanho máximo: 1 GB
- Um chip de progresso aparece no compositor mostrando a etapa atual e o percentual.
- Quando o chip atinge 100% (Summary ready), o botão Send é desbloqueado — você pode enviar uma mensagem referenciando a transcrição imediatamente.
- Após uma breve etapa adicional (indexação RAG), o status muda para done e o arquivo de origem é excluído.
Durante o processamento: você pode digitar outras mensagens no compositor. Apenas anexos de mídia ainda em processamento bloqueiam o botão Send.
O que é Injetado no Chat
Quando você envia uma mensagem contendo um anexo de transcrição concluído, o texto da transcrição é automaticamente anexado à sua mensagem:
Your message text here
--- TRANSCRIPT: meeting-2026-06-06.mp4 (video) ---
[whisper transcript text...]
--- END TRANSCRIPT ---
O worker de IA vê a transcrição completa inline, como qualquer outro documento. Você pode fazer perguntas sobre ela, pedir resumos ou pedir que o worker extraia itens de ação.
Etapas do Pipeline em Detalhe
Etapa 1 — Extração de áudio (ffmpeg)
Para arquivos de vídeo, o Arc OS extrai a trilha de áudio para um WAV mono de 16 kHz. Para arquivos de áudio, é apenas uma conversão de formato.
Etapa 2 — Transcrição (Groq whisper-large-v3)
O WAV é enviado à API da Groq (modelo whisper-large-v3). Velocidade: ~100× tempo real (clipe de 11 s → menos de 1 s). A GROQ_API_KEY da plataforma é configurada em Platform Settings → Transcription por um admin. Multilíngue — ucraniano, inglês e todos os outros idiomas principais são suportados nativamente.
Etapa 3 — Extração de frames por mudança de cena (apenas vídeo)
O ffmpeg amostra frames nos pontos de mudança de cena (threshold 0.4, sensibilidade de 0 = todo frame até 1 = nunca). Os timestamps são gravados em timestamps.json para que as descrições dos frames mapeiem de volta às posições exatas do vídeo.
Máximo de frames por vídeo: 50 (~US$ 0,15 no pior caso em custos do Claude vision).
Etapa 4 — Análise com Claude vision (apenas vídeo)
Cada frame amostrado é enviado ao Claude Sonnet vision com um prompt focado em:
- Slides e conteúdo de apresentações (títulos, pontos-chave, gráficos)
- Compartilhamentos de tela (apps, código, dashboards, URLs visíveis)
- Diagramas (caixas, setas, rótulos)
- Texto visível (rótulos de UI, cabeçalhos, números importantes)
Frames só de webcam ou frames sem conteúdo informativo são marcados como "No informational content" e não contribuem para o resumo.
Falhas em frames não são fatais — a descrição vira [vision failed: <reason>] e o pipeline continua.
Etapa 5 — Resumo com Claude Sonnet
A transcrição (e as descrições de frames do vision, se disponíveis) são enviadas ao Claude Sonnet. O resumo é armazenado como JSON estruturado:
{
"tldr": "Team reviewed Q3 revenue forecast and decided to ship the new feature by end of month.",
"key_points": [
"Q3 revenue is 15% above projection",
"Two blockers remain on the backend API"
],
"action_items": [
{ "task": "Fix auth endpoint before Thursday", "owner": "Serhii" },
{ "task": "Update stakeholder deck", "owner": null }
],
"decisions": [
"Ship feature to production on June 30"
],
"topics": ["Q3 revenue", "product launch", "API blockers"],
"model": "claude-sonnet-4-5",
"generated_at": "2026-06-06T10:42:00Z"
}
Falhas no resumo revertem a transcrição ao estado anterior, preservando o texto bruto. Você pode tentar novamente após corrigir sua chave Anthropic.
Etapa 6 — Embedding RAG (Phase 73.6)
O texto completo (transcrição + descrições de frames + resumo) é dividido em chunks e embedado via Cohere embed-multilingual-v3.0 no índice vetorial do projeto. Após esta etapa:
- A gravação fica pesquisável via
arc kb searche pela ferramenta de conhecimento no chat - O arquivo de origem é excluído do disco (decisão D4 do CEO — a tabela de transcrições é a fonte da verdade)
- O status muda para
done
Para pular a indexação RAG: passe embed_to_rag=false no formulário de upload (apenas via API; a UI sempre indexa por padrão).
Configuração de Chave API BYOK
O Claude vision e o resumo usam a sua chave de API da Anthropic:
- Vá em Profile → API Keys → Anthropic Key.
- Cole sua chave. Ela é criptografada com AES-256-GCM antes do armazenamento.
- Se nenhuma chave pessoal estiver configurada, a chave compartilhada da plataforma é usada (sujeita aos limites de taxa da plataforma).
A transcrição Groq usa a GROQ_API_KEY da plataforma — nenhuma chave pessoal é necessária para a transcrição.
Pesquisando Transcrições
Quando uma transcrição atinge done, ela passa a ser encontrável via busca semântica:
arc kb search "action items from last standup"
arc kb search "decision about Q3 launch"
A partir do compositor do chat, o worker de IA pode responder perguntas fundamentadas nas suas transcrições automaticamente via a ferramenta ask_notebooklm (que consulta o mesmo índice RAG).
Você pode restringir apenas a transcrições via o parâmetro doc_types:
GET /api/crm/projects/:name/rag/search?q=...&doc_types=transcript
Custos e Limites
| Recurso | Limite | Notas |
|---|---|---|
| Tamanho do upload | 1 GB | Por arquivo |
| Frames de vision | 50 máx. | Limite rígido; frames excedentes são descartados |
| Custo do Claude vision | ~US$ 0,003/frame | Em resolução JPEG típica de 1024×768 |
| Custo do resumo Claude | ~US$ 0,005–0,02 | Depende do tamanho da transcrição (≤60 000 caracteres enviados ao resumo) |
| Transcrição Groq | US$ 0,111/hora de áudio | Chave da plataforma; ~US$ 0,056 por reunião de 30 min |
| Cota mensal (Starter) | 60 min | Reinicia no dia 1º de cada mês |
| Cota mensal (Starter Cloud) | 300 min | Reinicia no dia 1º de cada mês |
| Cota mensal (Beta) | 1 200 min | Reinicia no dia 1º de cada mês |
| Jobs simultâneos | 1 | Jobs entram em fila; uma transcrição por vez por servidor |
Solução de Problemas
| Sintoma | Causa provável | Correção |
|---|---|---|
| Chip preso em "Transcribing" por >2 min | Timeout da API Groq ou gravação longa | Verifique a GROQ_API_KEY em Platform Settings; jobs entram em fila |
Etapa de vision mostra [vision failed: ...] |
Chave Anthropic ausente ou com limite de taxa | Defina a chave BYOK em Profile → API Keys |
| Resumo falhou, status revertido | Erro da API do Claude | Corrija a chave; o pipeline aceitará um novo upload |
| Embed RAG falhou (não fatal) | Problema na chave da Cohere | A transcrição continua utilizável; arc kb search não a encontrará até re-embedar |
| Botão Send ainda bloqueado após "Summary ready" | Cache do navegador desatualizado | Atualize a página |
| "No informational content" em todos os frames | Gravação só de webcam (sem compartilhamento de tela) | Esperado; o vision ignora frames de webcam pura |
Referências
master-bot/transcript-worker.ts— orquestrador do pipeline (Phase 73.2 + 73.4 + 73.5 + 73.6)master-bot/transcript-vision.ts— Claude vision por frame (Phase 73.4, #380)master-bot/transcript-summary.ts— resumo Claude Sonnet (Phase 73.5, #381)shared/migrations/052_transcripts.ts— tabela de transcriçõesshared/migrations/053_transcript_jobs.ts— rastreador de progresso dos jobsfrontend/src/crm/pages/workspace/Composer.jsx— chip de upload + progresso via SSE- Referência da API: endpoints da Phase 73
- Arquitetura: RAG — doc_type transcript