Private, local speech-to-text for Windows (and other platforms that run Python).
Transcribe audio or video files—or record from your microphone—using OpenAI Whisper via faster-whisper. Nothing is uploaded to the cloud; processing stays on your machine.
Notiec This App:
✓ FASTER (good for this app) • Modern CPU (last ~5–8 years), AVX2, 8+ fast cores • Examples: Intel Core 12th gen+ i5/i7/i9 · AMD Ryzen 5000/7000/9000 • + NVIDIA GPU + “Auto” in app = much faster Whisper
✓ OK (usable) • 4+ cores, 8 GB RAM → tiny/base models, short files • 16 GB RAM → more headroom for medium models
✗ SLOW (expect long waits on big files / large models) • Very old CPUs (e.g. many-core Xeons from 10+ years ago) • CPU-only + medium/large Whisper on long recordings
Tip: Smaller model (tiny/base) + GPU if available = quickest runs.
| Feature | Description |
|---|---|
| Local & private | Transcription runs offline after models are downloaded once. |
| Whisper models | Choose tiny → large-v2 (accuracy vs speed trade-off). |
| Languages | Any language Whisper supports; auto-detect or pick a language. |
| Files & mic | Open media files (WAV, MP3, M4A, FLAC, MP4, MKV, …) or record. |
| Optional split: Male / Female | Heuristic two-speaker split using MFCC clustering + pitch (approximate; best with two clear voices). |
| Compute | CPU only or Auto (use CUDA / GPU when PyTorch sees one). |
| Faster mode | Optional greedy decoding (beam_size=1) for quicker runs with slightly lower quality. |
| Timing | Live elapsed clock plus a breakdown after a job (e.g. load · detection · model · transcribe). |
| Media | FFmpeg on PATH recommended; imageio-ffmpeg helps decode many formats without a system FFmpeg. |
- Python 3.10+ recommended
- RAM — depends on model (e.g. 8 GB+ comfortable for
base; more forlarge). - GPU (optional) — NVIDIA with CUDA for faster transcription when using Auto; otherwise CPU.
- FFmpeg — optional but recommended for MP3/M4A/video containers (see app tip text).
cd AudioToText
python -m venv .venv
# Windows
.\.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -r requirements.txtpython main.py- Model — Start with
baseortinyon slower PCs. - Spoken language — Use Auto-detect or select the language.
- Compute — Auto if you have a supported NVIDIA GPU; else CPU only.
- Split male / female — Only if you need two columns; adds CPU work.
- Faster transcription (greedy) — Check for speed; uncheck for maximum default quality.
- Browse — Pick a file, or Record, then Transcribe.
Copy / Save — Exports text; split mode combines Male and Female sections in copy/save.
AudioToText/
├── main.py # Entry point
├── requirements.txt
└── audio_to_text/
├── app.py # CustomTkinter UI, workers, timing
├── engine.py # faster-whisper load & transcribe
├── voice_split.py # MFCC + pitch split (optional)
└── languages.py # Language list for the UI
- Transcription:
faster-whisperruns the Whisper model on CPU (int8) or GPU (float16) depending on settings. - Split mode: Audio is loaded at 16 kHz mono; windows are clustered; labels use median pitch (rough male/female mapping); each segment is transcribed separately.
- UI: Background threads run inference; the main thread updates text via a queue (batched to avoid freezing the window).
- Speaker split is heuristic — not perfect diarization; labels can swap or collapse to one voice.
- Whisper can hallucinate on silence or noisy audio—use VAD (on by default in the engine) and sensible models.
- Very old GPUs may not be supported by current PyTorch/CUDA—you may effectively run CPU-only.
Specify your license here (e.g. MIT). Dependencies have their own licenses.
Local Whisper desktop app — private file/mic transcription, optional male/female split, GPU/CPU, greedy speed mode, per-stage timing.