Skip to content

Lightweight PyQt6 app to clean noisy audio and display waveforms, DFTs and spectrograms

License

Notifications You must be signed in to change notification settings

DmytroRi/denoise-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

151 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Denoise Laboratory

A lightweight application for visualizing audio signals and experimenting with different audio filters.

This program was developed as a school project during the final year of an IT apprenticeship.

GUI


Basic Information

With denoise-lab, you can load a .wav file and explore its structure through three visual representations:

  • Waveform
  • Discrete Fourier Transform (DFT)
  • Spectrogram

You can also apply various audio filters and immediately observe how they affect the signal.
The effect of each filter can be seen in the plots and heard after exporting the processed audio back into a .wav file.


Use Case Diagram

The diagram below summarizes the core functionality of denoise-lab and the interactions available to the user:

Use Case Diagram


Requirements

All Python dependencies are listed in requirements.txt.

Getting Started

Clone the repository and install the dependencies:

git clone <repository-url>
cd denoise-lab
python -m venv .venv
source .venv/bin/activate  # On Windows use: .venv\\Scripts\\activate
pip install --upgrade pip
pip install -r requirements.txt

Running the Application

Launch the GUI from the project root:

python src/main.py

Within the app you can:

  1. Use File → Load file to load a .wav file.
  2. Inspect the waveform, DFT, and spectrogram visualizations.
  3. Apply filters (bandpass, notch, denoiser, parametric EQ) and listen to the result by exporting to a new .wav file.

Running Tests

The project includes Pytest-based checks for the audio processing utilities. Run them from the repository root:

pytest

Project Layout

  • src/main.py — entry point that launches the PyQt-based GUI.
  • src/gui/ — window, plotting, and control widgets used to drive the application.
  • src/audio/ — filter implementations such as bandpass, notch, denoiser, and parametric EQ.
  • src/io/ — audio loading and saving helpers.
  • tests/ — unit tests covering filter behaviour and audio file handling.

About

Lightweight PyQt6 app to clean noisy audio and display waveforms, DFTs and spectrograms

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages