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
localStoragedo seu próprio navegador. - Exportação local:
.txte.srtgerados no cliente.