Beautiful Voice-to-Text Transcription App
A minimal, elegant voice-to-text transcription application with a stunning breathing microphone interface. Convert your speech to text with a beautiful, modern UI.
- Beautiful Minimal UI - A clean and focused interface.
- Stunning Animations - Dynamic microphone visualization with a breathing animation and an audio-responsive waveform.
- Dual AI Modes - Choose between the powerful OpenAI Whisper API or a private, offline local model using
faster-whisper. - Global Hotkeys - Start and stop recording from anywhere on your desktop (Windows only,
Win+Shift+by default). - Theming - Customize the look and feel with multiple light and dark themes.
- Compact Mode - Switch to a super-compact, always-on-top style UI.
- Custom Title Bar - A sleek, custom title bar for a more integrated look (can be disabled).
- Smart Output - Copy to clipboard, auto-paste to your active application, or just display the text.
- Easy Settings - Modern tabbed settings for audio, transcription, UI, and output.
- Microphone Control - Auto-detects active microphone, with options to manually select and test.
- Silent Mode - Hide transcription text for privacy.
pip install git+https://github.com/quillscribe/quillscribe.git
quillscribe-
Clone the repository:
git clone https://github.com/quillscribe/quillscribe.git cd quillscribe -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python run.py
- Get your API key from OpenAI Platform.
- Open QuillScribe → Click Settings.
- In the Whisper tab, select OpenAI Whisper API.
- Enter your API key.
- Click Save Settings.
Pros: Fast, high-quality, works immediately. Cons: Requires internet, may have usage costs.
- Open QuillScribe → Click Settings.
- In the Whisper tab, select Local Whisper.cpp (Private, works offline).
- Use the dropdowns to select a model category and a specific model. Smaller models are faster but less accurate.
- The application will handle downloading the model if it's not already present.
- Click Save Settings.
Pros: Private, works offline, no ongoing costs. Cons: Requires model download, can be slower and less accurate than the API depending on the model and your hardware.
- Start Recording: Click the microphone or use the global hotkey (
Win+Shift+by default on Windows). - Watch the Magic: The microphone animates with a live audio waveform.
- Stop Recording: Click the microphone again or use the hotkey.
- Get Results: Text is automatically copied/pasted based on your settings.
- Copy Only - Copies transcription to the clipboard.
- Paste Only - Pastes directly to the active application.
- Copy & Paste - Does both.
- Display Only - Shows text in the app without copying or pasting.
- Python 3.9+
- Windows 10/11 (Primary target, with global hotkeys)
- Microphone (Built-in or external)
- Internet connection (For API mode and initial model downloads)
PySide6- Modern Qt6 UI framework.sounddevice- Real-time audio capture.numpy- Audio processing.openai- Whisper API integration.faster-whisper- Efficient local Whisper model implementation.pyperclip- Clipboard operations.
- No microphone detected: Check Windows microphone permissions. Ensure the microphone is connected and enabled. Use the "Refresh" and "Test" buttons in the Audio settings. Try the "Auto-select active microphone" feature.
- Poor audio quality: Use the Test button in settings to check your audio levels. Reduce background noise and speak closer to the microphone.
- API errors: Verify your API key is correct and that you have a working internet connection.
- Local model issues: Ensure you have enough disk space for the model download. If transcription is slow, try a smaller model (e.g.,
tinyorbase).
quillscribe/
├── src/quillscribe/
│ ├── __init__.py
│ ├── main.py # Main application & UI
│ ├── audio_manager.py # Audio capture & processing
│ ├── whisper_manager.py # Whisper integration (API & local)
│ ├── settings_dialog.py # Settings panel
│ ├── config_manager.py # Configuration handling
│ └── ...
├── requirements.txt
├── setup.py
├── run.py # Application launcher
└── README.md
git clone https://github.com/quillscribe/quillscribe.git
cd quillscribe
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python run.pyQuillScribe uses Nuitka to build optimized native executables for superior runtime performance.
- Python 3.9+ installed
- C Compiler (Nuitka will auto-download MinGW64 if needed)
-
Clone the repository:
git clone https://github.com/quillscribe/quillscribe.git cd quillscribe
-
Install dependencies:
pip install -r requirements.txt pip install -r requirements-dev.txt
-
Run the Nuitka build script:
.\build_nuitka.ps1
The script will:
- Automatically download MinGW64 compiler (first run only, ~300MB)
- Clean previous builds and caches
- Compile QuillScribe to native code (takes 5-10 minutes on first build)
- Create
QuillScribe.exeandQuillScribe-Installer.exe
-
Run the installer or executable:
- Use the installer:
QuillScribe-Installer.exe - Or run directly:
QuillScribe.exe
- Use the installer:
- First build: Takes 5-10 minutes as Nuitka downloads MinGW64 and compiles to C
- Subsequent builds: Faster due to caching (2-3 minutes)
- Cache management: The script automatically cleans Nuitka cache for clean rebuilds
- Output:
QuillScribe.exeis a standalone executable with all dependencies bundled
Nuitka was chosen over PyInstaller for several key advantages:
- Better Performance: Native compiled code runs 2-3x faster
- Faster Startup: No extraction to temp directory needed
- Smaller Memory Footprint: More efficient resource handling
- Better Compatibility: Handles complex dependencies like
faster-whispermore reliably
Required Data Files:
src/quillscribe/icons/- SVG and ICO icons for the UIsrc/sounds/- WAV files for recording notificationssrc/quillscribe/app_logo.ico- Application icon
We welcome contributions! Please fork the repository, create a feature branch, and submit a pull request.
This project is licensed under the MIT License.
Made with care by the QuillScribe Team
Transform your voice into text with elegance and simplicity.