83 lines
3.4 KiB
Markdown
83 lines
3.4 KiB
Markdown
# 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
|