# 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 o MVP estrutural: - app Tauri 2 funcional; - modal editável em TypeScript sem framework pesado; - backend Rust modular; - catálogo do modelo `cstr/parakeet-tdt-0.6b-v3-GGUF` em Q8; - contratos para CrispASR sidecar, API OpenAI-compatible, gravação e inserção de texto; - tray/system tray básico; - CI, build e release via GitHub Actions. Ainda não implementa captura real de áudio, hotkey global, download real do modelo ou injeção nativa em outros aplicativos. Essas integrações já têm módulos dedicados para implementação incremental. ## Arquitetura ```text src/ Frontend TypeScript/CSS src-tauri/src/ audio/ Estado de gravação MVP transcription/ Contratos, CrispASR sidecar e API compatível com OpenAI injection/ Contratos/fallback de inserção 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: `745121600` bytes - 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. ## Compatibilidade Windows/Linux - Windows: alvo principal para inserção automática futura via APIs Win32. - Linux X11: alvo de automação completa quando possível. - 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 ```bash 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 em `main`. - `.github/workflows/build.yml`: gera bundles Windows/Linux em push para `main` e manualmente. - `.github/workflows/release.yml`: publica GitHub Releases em tags `v*.*.*`. 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