Files
transcript/README.md
T

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