This repository contains the code and documentation for the Speech Noise Reduction project, developed as part of the Kickelhack Hackathon held in Ilmenau, Germany by Fraunhofer IDMT. Our project was awarded first place in the competition.
- Introduction
- Features
- Installation
- Usage
- Examples
- Streamlit Application
- Contributing
- License
- Acknowledgments
The Speech Noise Reduction project aims to enhance the quality of speech recordings by reducing background noise using advanced signal processing techniques. This project was developed during the Kickelhack Hackathon, organized by Fraunhofer IDMT, to provide an effective solution for improving audio clarity in various applications, such as teleconferencing, hearing aids, and voice-controlled systems.
- Noise Reduction: Implements state-of-the-art algorithms to minimize background noise.
- Real-Time Processing: Capable of processing audio in real-time for live applications.
- User-Friendly Interface: Simple command-line interface for easy integration and use.
- Cross-Platform Compatibility: Works on Windows, macOS, and Linux.
- Streamlit Application: User interface for noise reduction, including options for audio and video file uploads.
To get started with the Speech Noise Reduction project, follow these steps:
-
Clone the repository:
git clone https://github.com/ADE-17/Speech-Noise-Reduction.git cd Speech-Noise-Reduction
-
Install the required dependencies:
pip install -r requirements.txt
The Speech Noise Reduction tool can be used via the command line. Below are some common commands:
-
Basic Noise Reduction:
python noise_reduction.py --input_file path/to/input.wav --output_file path/to/output.wav
-
Real-Time Noise Reduction:
python real_time_noise_reduction.py
Here are some examples to demonstrate the usage of the tool:
-
Reducing Noise in a Pre-recorded File:
python noise_reduction.py --input_file samples/noisy_speech.wav --output_file results/clean_speech.wav
-
Running Real-Time Noise Reduction:
python real_time_noise_reduction.py
We have developed a Streamlit application for a more interactive and user-friendly experience. The application allows users to upload audio or video files, apply noise reduction, and download the processed files.
To run the Streamlit application, use the following command:
streamlit run app.py
Audio Upload: Upload audio files for noise reduction processing.Video Upload: Upload video files; the application will extract the audio, apply noise reduction, and re-embed the clean audio into the video.Download Processed Files: Download the cleaned audio or video files directly from the interface.
We welcome contributions from the community. To contribute to this project, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch
). - Make your changes and commit them (
git commit -am 'Add new feature'
). - Push to the branch (
git push origin feature-branch
). - Open a pull request.
Please ensure that your code adheres to our coding standards and includes appropriate tests.
This project is licensed under the MIT License. See the LICENSE file for more details.
This project was developed during the Kickelhack Hackathon in Ilmenau, Germany, organized by Fraunhofer IDMT. We are proud to have been awarded first place for our efforts. We would like to thank all the participants and organizers for their support and contributions.