chore: add ci release workflows and docs
This commit is contained in:
1 parent
8957a1b90c
commit
a88206db2b
9 files changed
+262
-6
No files matched your search
@@ -0,0 +1,82 @@
|
||||
# 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
|
||||
Reference in new issue
Block a user