- OpenAiTranscriptionConfig::default() model: alefiury/parakeet-tdt-0.6b-v3-ptBR-TAGARELA-onnx
- AppSettings default language: Some("pt") for PT-BR native
- Update tests in openai.rs and app.ts
- Update frontend settings modal placeholder
- Aligns with orelhIA MCP (same model and endpoint) — no API key needed
This connects transcript desktop to the same Parakeet backend that
orelhIA uses, so the same 'a orelha que seus agentes sempre precisaram'
branding applies here too.
Transcript Desktop
Aplicativo desktop de transcrição para Windows e Linux, construído com Tauri + Rust + TypeScript. O objetivo é oferecer ditado/transcrição offline-first com revisão obrigatória em modal antes de inserir texto em outro aplicativo.
Estado atual
Este repositório contém um MVP nativo funcional:
- app Tauri 2 funcional;
- modal editável em TypeScript sem framework pesado;
- backend Rust modular;
- catálogo e download do modelo
cstr/parakeet-tdt-0.6b-v3-GGUFem Q8; - captura real de microfone em WAV via CPAL;
- execução do sidecar CrispASR/Parakeet;
- hotkey global
Ctrl+Shift+Space; - inserção híbrida por clipboard + paste automático no Windows/X11 quando disponível;
- fallback manual no Wayland;
- tray/system tray básico;
- CI, build e release via GitHub Actions.
Arquitetura
src/ Frontend TypeScript/CSS
src-tauri/src/
audio/ Captura de microfone e gravação WAV
transcription/ Contratos, CrispASR sidecar e API compatível com OpenAI
injection/ Clipboard, paste automático e fallback manual
models/ Catálogo do modelo offline
settings/ Configuração padrão
tray.rs Menu da bandeja do sistema
ui_commands.rs Comandos Tauri expostos ao frontend
app_state.rs Estado compartilhado mínimo
A regra de design é manter arquivos pequenos, responsabilidades claras e zero overengineering. O app começa com contratos e stubs explícitos para as partes nativas mais arriscadas.
Modelo offline principal
- Repositório:
cstr/parakeet-tdt-0.6b-v3-GGUF - Arquivo:
parakeet-tdt-0.6b-v3-q8_0.gguf - Quantização:
Q8_0 - Tamanho registrado no catálogo:
745121600bytes - Modelo base: NVIDIA Parakeet TDT 0.6B v3
- Idioma: detecção automática; português incluído no conjunto suportado pelo modelo base.
O modelo não deve ser embutido no instalador principal. A estratégia recomendada é instalar o app leve e baixar o GGUF pelo gerenciador de modelos.
Sidecar CrispASR
O app chama por padrão o binário parakeet-main com:
parakeet-main -m <modelo.gguf> -f <audio.wav> -t <threads>
Para o modelo v3, o projeto CrispASR recomenda compilar o target parakeet-main no branch parakeet. O app limita automaticamente o número de threads a no máximo 4 para manter compatibilidade com PCs simples.
Enquanto o binário não estiver no PATH ou empacotado como sidecar, a transcrição local retorna erro claro após a gravação.
Compatibilidade Windows/Linux
- Windows: clipboard + tentativa de
Ctrl+VviaSendKeys. - Linux X11: clipboard + tentativa de
Ctrl+Vviaxdotoolquando instalado. - Linux Wayland: suporte parcial por limitação de segurança dos compositors. O fallback seguro é copiar o texto e orientar o usuário a colar manualmente.
Comandos locais
npm install
npm run typecheck
npm run test -- --run
npm run build
cargo test --manifest-path src-tauri/Cargo.toml
npm run tauri:build
CI/CD
Workflows:
.github/workflows/ci.yml: valida PRs e pushes emmain..github/workflows/build.yml: gera bundles Windows/Linux em push paramaine manualmente..github/workflows/release.yml: publica GitHub Releases em tagsv*.*.*.
A lógica fica em comandos npm/cargo para facilitar migração futura para GitLab CI.
Fontes técnicas usadas
- Tauri 2 commands: https://v2.tauri.app/develop/calling-rust
- Tauri 2 system tray: https://v2.tauri.app/learn/system-tray
- Tauri 2 sidecars: https://v2.tauri.app/develop/sidecar
- Tauri GitHub pipelines: https://v2.tauri.app/distribute/pipelines/github
- Tauri Linux prerequisites: https://v2.tauri.app/start/prerequisites
- NVIDIA Parakeet v3 model card: https://huggingface.co/nvidia/parakeet-tdt-0.6b-v3/blob/main/README.md
- cstr Parakeet GGUF: https://huggingface.co/cstr/parakeet-tdt-0.6b-v3-GGUF