Skip to content
All projects
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
Project poster: a sound wave cut in the middle, on a waveform pattern

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

Processing diagram: the WAV file dropped into the Kivy window is read as 16-bit samples, silences longer than 400 ms are detected under a threshold and cut with a margin kept, and the cleaned file is written back
The processing chain, and a closer look at silence detection

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

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.