Consulta Ao Vivo — transcrição ASR em tempo real (RFC-008)¶
Tipo: Tutorial — "Aprenda fazendo" Versão mínima: v0.15-1 Tempo estimado: 15 minutos
Neste tutorial você vai realizar sua primeira consulta com transcrição automática em tempo real. Ao final, você terá um rascunho SOAP gerado a partir da fala, revisado e aplicado ao atendimento.
O que você vai aprender¶
- Instalar e configurar o componente ASR (reconhecimento de fala) local.
- Ativar o painel de Consulta Ao Vivo durante um atendimento.
- Entender o que a transcrição exibe e como ela funciona.
- Revisar e editar o rascunho gerado.
- Aplicar o rascunho às seções do SOAP com rastreabilidade de IA (CFM 2.454/2026).
Pré-requisitos¶
1. Instalar o extra [asr]¶
O componente de reconhecimento de fala é opt-in — não vem instalado por padrão para manter o instalador leve. Para habilitá-lo:
# Ative o ambiente virtual do Anotae primeiro
source .venv/bin/activate # Linux/macOS
# .venv\Scripts\activate.bat # Windows
pip install -e '.[asr]'
Isso instala sounddevice (captura de áudio) e pywhispercpp (bindings
whisper.cpp). Nenhuma dependência de rede é adicionada em runtime.
Sem ambiente virtual? Se você usa o instalador empacotado (AppImage/exe), abra Configurações → ASR → Instalar componente ASR e siga o assistente integrado.
2. Baixar o modelo Whisper¶
O modelo de reconhecimento de fala precisa ser baixado uma única vez.
- Abra o Anotae.
- Acesse Configurações (
Ctrl+,) → aba ASR. - Clique em Baixar modelo
small-pt(quantizado q5_0) (~155 MB). - Aguarde a barra de progresso completar. O modelo é salvo localmente em
~/.anotae/models/e nunca é enviado para servidores externos.
Requisitos de hardware: CPU ≥ 2 núcleos, RAM ≥ 4 GB. Em máquinas mais lentas, a transcrição pode levar alguns segundos por janela de 8s — isso é normal.
3. Verificar microfone¶
Certifique-se de que o microfone está conectado e com permissão de acesso:
- Linux: verifique se seu usuário pertence ao grupo
audio(groups $USER). - macOS: Preferências do Sistema → Privacidade → Microfone → Anotae ✓.
- Windows: Configurações → Privacidade → Microfone → permitir apps de desktop ✓.
Passo 1 — Abrir um atendimento¶
- Inicie o Anotae e desbloqueie o vault com sua senha-mestra.
- Selecione um paciente na lista ou crie um novo com
Ctrl+N. - Abra (ou crie) um atendimento. O editor SOAP deve estar visível.
Passo 2 — Ativar o painel de Consulta Ao Vivo¶
Com o editor SOAP aberto, ative o modo de consulta ao vivo de uma das formas:
| Ação | Como fazer |
|---|---|
| Atalho de teclado | Ctrl+R |
| Botão na barra de ferramentas | Clique em 🎙 Consulta Ao Vivo |
O painel lateral Consulta Ao Vivo abre à direita do editor SOAP.
O que aparece no painel¶
[00:00] Gravando... ▪▪▪
[00:08] Paciente refere dor em região lombar há três dias.
[00:16] Piora ao esforço físico, melhora com repouso.
[00:24] Não houve febre. Evacuações normais.
- Timestamp MM:SS — marca o início de cada janela de 8 segundos.
- Segmento transcrito — texto em português gerado pelo modelo local.
- Indicador de gravação — animação enquanto uma janela está sendo processada.
Aviso de privacidade exibido no topo do painel: "Áudio processado localmente. Nenhum dado sai deste dispositivo."
Passo 3 — Conduzir a consulta naturalmente¶
Fale normalmente durante o atendimento. Algumas dicas:
- Microfone próximo ao paciente melhora a transcrição de ambas as vozes.
- Janelas de 8 segundos: a cada 8s, o segmento atual é enviado ao modelo whisper.cpp em thread de background. Você ouvirá um clique suave (opcional, configurável em Configurações → ASR → Som de janela).
- Silêncios curtos são tratados normalmente — o modelo ignora janelas silenciosas automaticamente.
- Termos técnicos médicos em português são reconhecidos pelo modelo
small-pt. Para vocabulário muito especializado, corrija manualmente após a consulta. - Você pode pausar clicando em ⏸ Pausar (ou
Ctrl+Rnovamente) e retomar com o mesmo atalho.
Passo 4 — Encerrar a consulta e revisar o rascunho¶
Ao final do atendimento:
- Clique em ⏹ Encerrar consulta (ou pressione
Ctrl+R). - O Anotae processa as últimas janelas pendentes (pode levar até 10s).
- Um rascunho SOAP aparece na parte inferior do painel, organizado em seções:
── RASCUNHO GERADO POR IA (CFM 2.454/2026) ──
S — Subjetivo:
Paciente refere dor lombar há 3 dias, de caráter mecânico,
com piora ao esforço e melhora com repouso. Nega febre ou
alterações do trânsito intestinal.
O — Objetivo:
[Aguardando preenchimento manual]
A — Avaliação:
[Aguardando preenchimento manual]
P — Plano:
[Aguardando preenchimento manual]
O modelo preenche principalmente S (Subjetivo) a partir da fala do paciente. As seções O, A e P geralmente precisam de complementação manual — isso é esperado e seguro por design.
Passo 5 — Editar o rascunho¶
Antes de aplicar ao SOAP, revise criticamente cada seção:
- Corrija transcrições imprecisas — nomes de medicamentos, dosagens e CIDs são especialmente sensíveis.
- Remova ou complete seções marcadas como
[Aguardando preenchimento manual]. - Adicione informações obtidas no exame físico (seção O) e no raciocínio clínico (seção A).
Nota sobre o disclaimer CFM 2.454/2026¶
O rascunho inclui automaticamente a marcação:
Esta marcação é exigida pela resolução CFM 2.454/2026 para rastreabilidade de registros gerados com auxílio de IA. Não remova esta marcação — ela protege você profissionalmente ao documentar que o conteúdo foi revisado.
Passo 6 — Aplicar o rascunho ao SOAP¶
Quando o rascunho estiver revisado e correto:
- Clique em Aplicar rascunho no SOAP.
- O conteúdo de cada seção é inserido nos campos correspondentes do editor SOAP (S, O, A, P).
- As seções já preenchidas não são sobrescritas — o conteúdo do rascunho é acrescentado ao que já existe.
- O atendimento é automaticamente marcado como assistido por IA
(
mark_ai_assisted()), registrando modelo, data e hora no audit log.
Você pode editar livremente o SOAP após aplicar o rascunho. A marcação de IA permanece no histórico de auditoria, mas não impede nenhuma edição.
Passo 7 — Salvar o atendimento¶
Após aplicar e revisar o SOAP completo:
Ctrl+Spara salvar.- Os dados são armazenados criptografados localmente no vault SQLite.
- O áudio nunca foi gravado em disco em nenhum momento deste fluxo.
Garantias de privacidade¶
Esta seção documenta explicitamente o que acontece com o áudio durante uma consulta ao vivo:
| O que acontece | Detalhe |
|---|---|
| Captura de áudio | Janelas de 8s mantidas apenas em RAM |
| Transcrição | Executada localmente pelo whisper.cpp, em thread de background |
| Descarte | Cada janela WAV é descartada da memória imediatamente após transcrição |
| Disco | Nenhum arquivo de áudio é gravado em nenhum momento |
| Rede | Nenhuma chamada de rede é feita — 100% offline |
| Texto transcrito | Exibido no painel e usado para gerar o rascunho; salvo no vault apenas se você aplicar o rascunho |
Estes comportamentos estão documentados no código-fonte em
anotae/asr/streaming.py(docstring do módulo) e podem ser auditados livremente — o Anotae é software livre (AGPL-3.0).
Solução de problemas comuns¶
"Componente ASR não encontrado"¶
O extra [asr] não está instalado. Execute:
"Modelo não encontrado"¶
Acesse Configurações → ASR e baixe o modelo small-pt.
Transcrição muito lenta¶
- Verifique se outro processo está usando a CPU intensivamente.
- O modelo
small-pt q5_0requer ~1–2s por janela de 8s em CPU modesta. - Se a lentidão for persistente, considere usar
tiny-pt(menos preciso, mais rápido) em Configurações → ASR → Modelo.
Áudio não capturado / silêncio total¶
- Verifique as permissões de microfone (veja Pré-requisitos, item 3).
- Em Linux com PipeWire, pode ser necessário:
systemctl --user restart pipewire.
Texto em idioma errado¶
O modelo está configurado para português por padrão (language="pt").
Se a transcrição sair em inglês, verifique Configurações → ASR → Idioma.
Próximos passos¶
- Explore os templates curados por especialidade (
Ctrl+T) para estruturar o SOAP antes de iniciar a consulta ao vivo. - Leia
docs/how-to/usar-asr.mdpara configurações avançadas do ASR. - Para dúvidas sobre a resolução CFM 2.454/2026, consulte
docs/explanation/diretrizes-cds-avaliacao-2026-05.md.