Note: This project is currently a Work in Progress and was initiated as part of the Signal and Systems course. We are actively looking for contributors to help expand its capabilities!
This project is a Python-based Digital Signal Processing (DSP) tool designed to filter and reduce noise in audio signals, specifically targeting .wav files. It applies advanced mathematical filters to remove unwanted frequencies and exports a clean, high-quality audio file.
Developed within the scope of Signal and Systems, this project explores the practical application of:
- Frequency Analysis: Understanding noise characteristics in the frequency domain.
- Filter Design: Implementing Butterworth, Chebyshev, or other digital filters.
- Signal Transformation: Utilizing Fourier Transforms for audio processing.
- Noise Reduction: Advanced filtering algorithms to clean audio data.
- Waveform Visualization: Before and after plots for visual analysis.
- Support for .wav files: Industry-standard audio format support.
- Modern Tech Stack: Built with leading Python DSP libraries.
This project utilizes the following industry-standard libraries:
- NumPy: For core mathematical computations and handling audio data.
- SciPy (
scipy.signal): For signal processing and generating core filtering algorithms. - Matplotlib: For visualizing audio data and waveforms.
- Librosa: For advanced audio analysis and feature extraction.
- SoundFile: For reading and writing
.wavfiles.
Since this project is in its early stages, we highly encourage contributions! Whether you're a fellow student or a DSP enthusiast, feel free to:
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to the branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
Items on our roadmap:
- Support for more audio formats (MP3, FLAC).
- Real-time noise filtering.
- GUI for easier interaction.
- More robust filter types (e.g., adaptive filters).
Open your terminal or command prompt and run:
git clone git@github.com:Aaron-pweb/Digital_Audio_Signal_Filtering_and_Noise_Reduction.git
cd Digital_Audio_Signal_Filtering_and_Noise_Reductionpython3 -m venv .venv
source .venv/bin/activatepython -m venv .venv
.venv\Scripts\activateOnce the virtual environment is activated, install the required packages:
pip install --upgrade pip
pip install -r requirements.txtTo run the .ipynb notebook files in VS Code or Jupyter, you need to add your virtual environment as a kernel:
pip install ipykernel
python -m ipykernel install --user --name=dsp_env --display-name "Python (DSP Project)"After running this, open sound-filtter.ipynb and select "Python (DSP Project)" from the kernel/interpreter menu.
If you prefer not to install anything locally, you can run this project directly on Google Colab:
- Upload
sound-filtter.ipynb,requirements.txt, and theaudio/folder to your Google Drive. - Open the notebook in Colab.
- Install dependencies in a Colab cell:
!pip install -r requirements.txt
- Place your raw audio files in the
audio/directory. - Open
sound-filtter.ipynbin your preferred editor (VS Code, Jupyter, or Colab). - Follow the steps in the notebook to load, process, and save your clean audio.
This project is open-source and available under the MIT License.