A4
Détail A4 · TIPE research projectTerminé

Recovering a voice from a noisy recording

The TIPE is a year-long research project presented at the French engineering entrance exams. Our question was simple: how can we restore a voice from a noisy recording with the best possible quality?

Date
sept. 2024 – juil. 2025
Statut
Terminé
Équipe
2-person team
Rôle
Digital signal processing
Établissement
Lycée Janson-de-Sailly
Lieu
Paris, France
3 methods compared
−60 dB stop-band target
1,024 samples per real-time block
FIG. A4.0Spectrum of the recording before (red) and after (blue) spectral subtractionNotes de l’image: 1. Signal spectrum 2. Magnitude 3. Frequency 4. Filtered
Spectrum before (red) and after (blue) spectral subtraction.
01

Contexte

Admission to the leading French engineering schools depends on national competitive exams taken at the end of two years of preparatory classes. One of their components is the TIPE (Travail d’Initiative Personnelle Encadré, a supervised personal research project), carried out over a full year and presented orally to the jury.

Our year’s theme was “Transition, transformation, conversion.” We chose to work on turning a degraded recording back into intelligible speech, approaching the problem from both the analog and the digital side.

02

Problématique

How can we restore a voice from a noisy recording with the best possible quality, and which family of methods is actually suited to the problem?

03

Objectifs et contraintes

  • Keep the voice band, roughly 340 to 3,400 Hz, and reject everything else.
  • Compare classical filtering with a spectral method on the same recordings.
  • Remove the artifacts introduced by the processing itself.
  • Run the chosen method in real time on a live microphone feed.
04

Équipe et rôle

Rôle · Digital signal processing

My teammate, Vincent Sfeir, worked on the analog side: filter circuits. I designed, implemented and compared the digital methods, all coded from scratch in Python, then built the real-time version.

Vincent SfeirTeammate, analog circuits · Now at ESTP, Cachan
05

Méthodologie et démarche

1 · Digital filters

I first designed band-pass filters that keep the voice band and cut the rest.

FilterDesignSpecification
FIRWindowed-sinc design. I implemented five window functions and selected Blackman for its −57 dB side lobes.340–3,400 Hz pass-band, 50 Hz transition band, −60 dB stop-band.
IIR2nd-order Butterworth prototype transformed into a band-pass filter, then discretized with the bilinear transform and frequency pre-warping.4th-order coefficients derived by hand.

Both work, but they share a limit: noise that falls inside the voice band stays. FIR filters are stable and easy to design but need many coefficients; IIR filters need fewer but can become unstable.

2 · Spectral subtraction

The second method estimates the noise spectrum from a noise-only sample, then subtracts it frame by frame using a short-time Fourier transform (STFT), before rebuilding the signal with the inverse transform. It runs in O(N), against O(N × M) for filtering.

3 · Real time

Finally, I adapted spectral subtraction to run live. The program records a few seconds of background noise through the microphone with PyAudio, then cleans the incoming audio in blocks of 1,024 samples as the person speaks.

06

Difficultés techniques

The raw spectral-subtraction output suffered from a well-known artifact called musical noise: short, artificial tones caused by holes in the spectrum, often more annoying than the original noise. I corrected it in three steps:

  1. Averaging. Subtract the mean noise spectrum instead of the instantaneous one.
  2. Over-subtraction. Scale the noise estimate by a gain. I tested values of 1 and 2 and kept 1.7.
  3. Spectral floor. Never go below a fraction of the input spectrum. I tested 1% and 10% and kept 3%.
07

Résultats

With the final parameters (gain 1.7, floor 3%), the noise floor between words and above 1 kHz drops sharply while the voice peaks remain.

Waveform of the recording before (red) and after (blue) spectral subtraction
Time signal before (red) and after (blue) spectral subtraction, gain 1.7, floor 3%.
Spectrum of the recording before (red) and after (blue) spectral subtraction Notes: 1. Signal spectrum 2. Magnitude 3. Frequency 4. Filtered
Spectrum before (red) and after (blue). The voice peaks below 1 kHz are preserved; the broadband noise above is strongly attenuated.
08

Enseignements

Classic filters, digital or analog, are not suited to this problem. Spectral subtraction is, as long as the noise is known and stationary. It cannot separate two complex signals such as a voice over music, which points toward machine-learning methods.

BOM

Outils et technologies

PythonPyAudio
Signal processingSTFTDigital filters
DWG NO. WH-2026-001 · William Hochart · Arts et Métiers Institute of TechnologyTous les projets · CV · © 2026