Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ node_modules/
dist/
src-tauri/target/

# Generated by tauri at build time
src-tauri/gen/schemas/

# Environment
.env

Expand Down
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Intelligent voice dictation for macOS. Press a shortcut to start, speak, press a

- **Toggle dictation** — `Cmd+Shift+Space` to start recording, press again to transcribe and paste
- **Cancel anytime** — `Cmd+Shift+C` to cancel without pasting
- **3 STT engines** — OpenAI, Voxtral (Mistral), or Gemini (Google) — switch freely in settings
- **5 STT engines** — OpenAI, Groq, Voxtral (Mistral), Gemini (Google), or Parakeet (100% local) — switch freely in settings
- **AI reformulation** — Clean up grammar, remove hesitations and repetitions
- **Auto-translation** — Translate to French, English, Spanish, German, Italian, or Portuguese
- **Floating overlay** — Minimal animated pill with real-time audio waveform
Expand All @@ -27,8 +27,12 @@ Intelligent voice dictation for macOS. Press a shortcut to start, speak, press a
| Engine | Transcription model | Reformulation model | API key |
|--------|--------------------|--------------------|---------|
| **OpenAI** | `gpt-4o-transcribe` | `gpt-4o-mini` | [platform.openai.com](https://platform.openai.com/api-keys) |
| **Groq** | `whisper-large-v3-turbo` | `llama-3.3-70b-versatile` | [console.groq.com](https://console.groq.com/keys) |
| **Voxtral** (Mistral) | `voxtral-mini-latest` | `mistral-small-latest` | [console.mistral.ai](https://console.mistral.ai/api-keys) |
| **Gemini** (Google) | `gemini-2.5-flash` | `gemini-2.5-flash-lite` | [aistudio.google.com](https://aistudio.google.com/apikey) |
| **Parakeet** (NVIDIA, local) | `parakeet-tdt-0.6b-v3` via ONNX Runtime | provider of your choice (optional) | none — model (~670 MB) downloaded from the settings |

**Parakeet** runs 100% locally: no audio ever leaves your machine. It supports 25 European languages with automatic language detection. The model is loaded at startup so the first dictation is instant. Reformulation and translation stay optional — pick any chat provider in the settings, or leave its key empty and the transcription is pasted as-is (still fully local).

## Installation

Expand Down Expand Up @@ -82,7 +86,7 @@ The `.dmg` and `.app` bundle will be in `src-tauri/target/release/bundle/`.
src-tauri/src/
├── lib.rs # App state, Tauri commands, config, shortcuts
├── audio/ # Microphone capture (cpal, 48kHz → 16kHz)
├── stt/ # STT engines (OpenAI, Voxtral, Gemini)
├── stt/ # STT engines (OpenAI, Groq, Voxtral, Gemini, Parakeet)
└── pipeline/ # Real-time streaming pipeline

ui/
Expand Down
18 changes: 9 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@
"license": "MIT",
"packageManager": "pnpm@10.22.0",
"devDependencies": {
"@tauri-apps/api": "^2.10.1",
"@tauri-apps/cli": "^2.10.0",
"@types/react": "^19.2.13",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.3",
"react": "^19.2.4",
"react-dom": "^19.2.4",
"@tauri-apps/api": "^2.11.1",
"@tauri-apps/cli": "^2.11.4",
"@types/react": "^19.2.18",
"@types/react-dom": "^19.2.7",
"@vitejs/plugin-react": "^5.2.0",
"react": "^19.2.8",
"react-dom": "^19.2.8",
"typescript": "^5.9.3",
"vite": "^7.3.1"
"vite": "^7.3.6"
},
"dependencies": {
"@tauri-apps/plugin-process": "^2.3.1",
"@tauri-apps/plugin-updater": "^2.10.0",
"@tauri-apps/plugin-updater": "^2.11.0",
"lucide-react": "^0.575.0"
}
}
Loading