3.4 KiB
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-GGUFem 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
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:
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.
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
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