Skip to content

simonerom/dettatura

Repository files navigation

Dettatura

AI-powered voice dictation desktop app — local, free, cross-platform.

Speak. It types. No cloud. No API key. No subscription.

Built with Electron + React + Vite and OpenAI Whisper running entirely on your machine via Transformers.js.

macOS Windows Linux License


Features

  • Local AI transcription — Whisper base model runs in-process, no data leaves your machine
  • Multilingual — Whisper auto-detects the spoken language (100+ languages)
  • Beautiful editor — warm parchment theme, Lora serif font, distraction-free writing
  • Microphone toggle — click the mic button or press Space to start/stop
  • Live waveform — animated bars while recording
  • Open & save .txt / .md files via native OS dialogs
  • Keyboard shortcuts: Ctrl/Cmd+S save · Ctrl/Cmd+O open · Space toggle mic

Requirements

  • Node.js 18 or newer
  • A working microphone
  • ~145 MB disk space for the Whisper model (downloaded once on first run)

Getting Started

# 1. Clone
git clone https://github.com/YOUR_USERNAME/dettatura.git
cd dettatura

# 2. Install dependencies
npm install

# 3. Launch in development mode
npm run dev

The app opens automatically. On first launch it downloads the Whisper base model (~145 MB) — subsequent launches are instant.


Build a distributable

npm run electron:build

Outputs in dist-app/:

  • macOS → .dmg
  • Windows → .exe installer
  • Linux → .AppImage

Whisper Model Options

Edit MODEL in src/workers/whisper.worker.js:

Model ID Size Speed Notes
Xenova/whisper-tiny ~75 MB Fastest Good for single language
Xenova/whisper-base ~145 MB Fast Default — best balance
Xenova/whisper-small ~465 MB Moderate Higher accuracy

Tech Stack

Layer Technology
Desktop shell Electron
UI React 19 + Vite
AI / ASR Transformers.js — Whisper
Styling Custom CSS (no framework)

Project Structure

dettatura/
├── electron/
│   ├── main.cjs        # Electron main process
│   └── preload.cjs     # Secure IPC bridge
├── src/
│   ├── components/     # Editor, Toolbar, StatusBar, MicButton, Waveform
│   ├── hooks/          # useWhisper, useFileOps
│   ├── workers/        # whisper.worker.js (Whisper runs off main thread)
│   ├── App.jsx
│   └── App.css
├── vite.config.js
└── package.json

License

MIT — free to use, modify, and distribute.

About

Local desktop dictation app powered by Whisper via Transformers.js

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors