Completed · 2022
Silence Remover
Python app that automatically removes the silences from a WAV recording, while keeping the natural pauses of speech.
- Year
- 2022
- Context
- Algorithms and data processing
- Tech stack
- Python
- Signal processing
- Matplotlib
01 · Context
The challenge
Personal signal-processing project, with no external audio library: the WAV file is read byte by byte and converted by hand into 16-bit samples, analysed, then rebuilt without its silences. A small Kivy window lets you drop in the file to process.
02 · Architecture
How it's built
Key points
- WAV reading and writing done by hand: bytes converted into signed 16-bit samples, and back
- Silences detected with a threshold on the normalised signal, only beyond 400 ms so that the natural pauses of speech are kept
- Short unwanted noises (6 ms at most) merged into the surrounding silence, and a 100 ms margin kept around each cut
- Thresholds tuned by plotting the signal and the detected sections with Matplotlib
03 · In pictures
Gallery

The idea: silences found under the threshold are removed and the sound is stitched back together 
The application window, waiting for a file 
The cleaned file is written next to the original 
Tuning with Matplotlib: silence thresholds and removed sections
Click an image to open it full screen and browse through the screenshots.
04 · Takeaways
What I took away from it
This personal project introduced me to Kivy and sparked my interest in scripting. Since then, I’ve enjoyed writing little Python scripts to automate small, repetitive everyday tasks on a computer.