JS libraries used:
- music-metadata-browser (https://www.npmjs.com/package/music-metadata-browser),
Python libraries used:
- Flask (https://flask.palletsprojects.com/en/3.0.x/),
- Soundfile (https://github.com/bastibe/python-soundfile/tree/0.11.0)
- NumPy (https://numpy.org/)
- SciPy (https://scipy.org/)
To make sure the tool works properly, run the python backend first ("app.py"), after installing the previously listed libraries.
pip install soundfile
pip install Flask
pip install scipy
pip install numpy
Wiener-DolbyNR tries to obtain an effect similar to the popular Dolby Noise Removal system by implementing a Wiener filtering inspired process.
Clean demo songs are provided through a drop-down menu, the user has the choice to upload their own audio file as well.
Two players are present in order to play the selected song (on the left) and the denoised file (to the right).
At the center of the page two buttons are available: one to apply and remove the tape hiss to the uploaded song, the other to perform the processing required to denoise the song.
The denoising process is performed on the python backend of the tool, using Flask to allow for the communication between the two sections.
At the bottom of the page there's a section dedicated to the artificial noise that is added to the clean track. This is necessary in order to
simulate the tape hiss we want to eliminate during the wiener filtering process.
The theme of the operating system (dark/light) is automatically detected and the colors
of the tool are displayed accordingly, this is automated by performing a media query on the window in which the program is running.
The theme can be changed at any time by clicking the moon/sun icon present in the top right corner.
Starting from a clean track and a known noisy process, it extracts a denoised version:
The noise section allows to user to control the tape hiss added to the clean song. It can be customized by modifying these paramaters:
- Noise Generator
- White Noise: white noise generated for the tape hiss simulation
- Gain: amplitude of the white noise
- High Pass Filter (createBiquadFilter(type=highpass)): better emulates the high frequency nature of tape hiss
- Frequency: cutoff frequency for the HP filter
- Gain: output over input ratio of the filter
- White Noise: white noise generated for the tape hiss simulation
This section was implemented through the use of the WebAudioAPI.