This project is an audio fingerprinting application inspired by Shazam. It allows users to record audio, visualize the waveform in real time, and identify songs by matching audio fingerprints against a database. The application also supports adding new songs to the fingerprint database.
- Audio Recording: Capture audio from your device's microphone.
- Real-Time Visualization: Display a live audio waveform during recording.
- Audio Fingerprinting: Generate unique fingerprints for audio clips.
- Song Identification: Match audio fingerprints with a pre-built database to identify songs.
- Database Management: Add new songs to the fingerprint database.
- Frontend: HTML, CSS, JavaScript
- Backend: Python (Flask framework is used for routing and serving content)
- Audio Processing: Custom modules (
audio_processing.pyandfingerprinting.py) for handling audio capture and generating fingerprints. - Matching Logic: Functions in
matcher.pyto compare fingerprints and identify songs.
app.py- Main application file that starts the server and defines routes.matcher.py- Contains logic to match audio fingerprints.audio_processing.py- Handles audio processing and waveform analysis.fingerprinting.py- Implements the audio fingerprinting algorithm.index.html- Frontend interface for recording and interacting with the application.
-
Clone the Repository:
git clone https://github.com/EgemenErin/ShazamAlgorithm.git cd ShazamAlgorithm -
Set Up a Virtual Environment (Optional but Recommended):
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies: If a
requirements.txtfile is available, run:pip install -r requirements.txt
Otherwise, ensure that you have installed all necessary libraries (such as Flask, NumPy, and any audio processing libraries used in the project).
-
Start the Application:
python app.py
-
Access the Application: Open your web browser and navigate to:
http://localhost:5000 -
Using the Interface:
- Click Start Recording to begin capturing audio.
- Click Stop Recording to end the recording session.
- Click Identify Song to process the recording and find a match in the database.
- Optionally, input a song name and click Add to Database to save new audio fingerprints for future identification.
Contributions are welcome! If you have ideas, suggestions, or improvements, please open an issue or submit a pull request.
This project is licensed under the MIT License.
This project was inspired by audio recognition technologies like Shazam and aims to provide a simple demonstration of audio fingerprinting and matching.
