feat: wire model download UI and native docs

This commit is contained in:
Evandro committed 2026-06-11 01:18:40 -03:00
1 parent 0c39063150
commit 8f754b3f00
8 files changed
+218 -152

No files matched your search

+23 -9
View File
@@ -4,26 +4,28 @@ Aplicativo desktop de transcrição para Windows e Linux, construído com Tauri
## Estado atual
Este repositório contém o MVP estrutural:
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 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;
- catálogo e download do modelo `cstr/parakeet-tdt-0.6b-v3-GGUF` em 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.
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
audio/ Captura de microfone e gravação WAV
transcription/ Contratos, CrispASR sidecar e API compatível com OpenAI
injection/ Contratos/fallback de inserção
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
@@ -44,10 +46,22 @@ A regra de design é manter arquivos pequenos, responsabilidades claras e zero o
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:
```bash
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: alvo principal para inserção automática futura via APIs Win32.
- Linux X11: alvo de automação completa quando possível.
- Windows: clipboard + tentativa de `Ctrl+V` via `SendKeys`.
- Linux X11: clipboard + tentativa de `Ctrl+V` via `xdotool` quando 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