Francium-Tech/CrispVoice
Francium-Tech/CrispVoice has 44 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 01:33 UTC. Last push 2026-07-26.
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
About
Studio-quality voice enhancement that never uploads your voice. Local, open-source alternative to cloud podcast enhancers.
Machine LearningREADME.md
OriginalCrispVoice
Studio-quality voice enhancement that never uploads your voice.
Live demo with before/after audio: crispvoice.francium.tech
Take any voice recording - a phone memo, a laptop-mic capture, a noisy call - and get back clean, full-bodied, podcast-ready audio. Runs 100% locally: your audio never leaves your machine.
Inspired by the excellent cleanvoice.ai and tools like Adobe Podcast Enhance. They showed what is possible; this project open sources how it is done, for anyone who wants the same result without sending their voice to a server.
What it does
"Studio quality" is two problems, and this pipeline solves both:
- Clarity front-end - a speech-enhancement transformer (ClearerVoice MossFormer2) pre-cleans the recording. Feeding the re-synthesis a clean input measurably improves word intelligibility of the final output.
- Restoration - a generative model (Resemble Enhance, MIT) re-synthesizes the voice at 44.1 kHz, adding back the bandwidth and body a cheap microphone never captured.
- Texture blend - 25% of a DeepFilterNet-denoised copy is mixed back in. Re-synthesis alone sounds subtly synthetic; the blend restores natural transients, breaths, and room decay. This stage came out of blind A/B testing against a commercial reference and moved the quality from "processed" to "studio."
- Mastering - a broadcast-style ffmpeg chain: chest warmth, articulation and air EQ, de-essing, gentle 2:1 compression, and EBU R128 loudness normalization to -19 LUFS.
See ARCHITECTURE.md for the full technical breakdown, including how the mastering EQ was fitted band-by-band against a commercial tool's output.
Hear it
Three short clips, before and after (or use the players on the demo page):
| Voice | Before | After |
|---|---|---|
| Interview, room noise | demo/noise.m4a | demo/crispvoice.mp3 |
| Broadcast clip, compressed | demo/woman.m4a | demo/woman_crispvoice.mp3 |
| Casual memo, mild background noise | demo/umm.m4a | demo/umm_crispvoice.mp3 |
Quickstart
Requires uv and curl. Tested on macOS (Apple Silicon); Linux x86_64 should work. ~9 GB disk total (three model runtimes; every byte lives inside this folder and uninstalls with it).
git clone https://github.com/Francium-Tech/CrispVoice.git
cd CrispVoice
./setup.sh # one-time: local Python + PyTorch + model weights
./enhance recording.mp3 # writes recording_studio.mp3
More options:
./enhance in.mp3 out.wav # output format follows the extension; use .wav for lossless
./enhance in.mp3 --preview 30 # quick sample: process only the first 30 seconds
./enhance in.mp3 --nfe 32 # ~2x faster, slightly lower quality (default 64)
./enhance in.mp3 --blend 0.4 # more natural texture (default 0.25)
./enhance in.mp3 --preset natural # lighter compression, more dynamics
./enhance in.mp3 --device cpu # skip the Apple GPU fast path (auto by default)
./enhance in.mp3 --no-clarity # skip the ClearerVoice pre-clean stage
./enhance in.mp3 --denoise-only # cleanup without generative re-synthesis
./enhance in.mp3 --threads 2 # use even less CPU
./enhance in.mp3 --no-master # skip the mastering chain
Progress, ETA, and memory usage are printed for every chunk.
Design principles
- Private by default. No network calls after setup. Ever.
- Self-contained. The Python interpreter, PyTorch, model weights, and
even the ffmpeg binary all live inside the project folder. Nothing is
installed system-wide.
./uninstall.shremoves every trace in one go. - Never hog the machine. CPU-only (deliberately: on Apple Silicon the
GPU shares unified memory with the OS, and PyTorch's MPS backend can
exhaust it and freeze the machine - a lesson learned the hard way).
Half the cores, low process priority, bounded memory via 10-second chunks.
On Apple Silicon the heavy model stage runs on the GPU by default - in an
isolated, memory-capped subprocess that falls back to CPU on any failure -
bringing an 8-minute recording to roughly 5 minutes. Pure CPU
(
--device cpu) is roughly 2.5x real time (~20 minutes for the same file).
Credits
- Resemble AI for the MIT-licensed enhancement model that does the heavy lifting.
- cleanvoice.ai for the inspiration and the quality bar to chase.
- FFmpeg for decoding, mastering, and encoding.
About
CrispVoice is an open source project by Francium Tech.
License
MIT. Model weights are downloaded separately from ResembleAI/resemble-enhance (also MIT) and are not part of this repository.