Como foi construído

Documentação técnica

A engenharia por trás do AudioWriter: transcrição de áudio que roda dentro do navegador, sem mandar o arquivo pra lugar nenhum.

1. Por que no navegador

Áudio costuma ser sensível (reunião, entrevista, conversa). Mandar pra uma API significa confiar num terceiro e pagar por minuto. O AudioWriter inverte isso: a IA roda na máquina do usuário. Não há login, não há banco, não há upload — só o navegador.

2. Transcrição de arquivo (Whisper / WASM)

O modo principal usa o @xenova/transformers pra rodar o Whisper (modelo de fala da OpenAI) compilado pra WebAssembly, dentro de um Web Worker (não trava a interface). O modelo é baixado uma vez e fica em cache. O áudio é reamostrado pra 16 kHz no navegador antes da inferência.

// assets/js/worker.js
transcriber = await pipeline(
  'automatic-speech-recognition',
  model, // 'Xenova/whisper-base' (rápido) ou 'whisper-small' (preciso)
  { quantized: true, progress_callback /* barra de download */ }
);
const out = await transcriber(audio, {
  language: 'portuguese', return_timestamps: true // p/ legenda .srt
});

Os timestamps por trecho viram uma legenda .srt direto no cliente.

3. Ditado ao vivo (Web Speech API)

O modo secundário usa a SpeechRecognition do navegador pra ditar em tempo real. Honestidade: no Chrome esse modo usa o serviço de voz do navegador (pode passar pela nuvem do fornecedor) — por isso a promessa de “100% local” é reservada ao modo de arquivo (Whisper).

4. Privacidade & dados

  • Sem servidor no caminho: o arquivo nunca é enviado; a transcrição acontece no dispositivo.
  • Sem cadastro: as transcrições que você salva ficam no localStorage do seu próprio navegador.
  • Exportação local: .txt e .srt gerados no cliente.