Skip to content

Music Detection Application that uses audio fingerprinting and perceptual hashing. Users can add their custom database with one click.

Notifications You must be signed in to change notification settings

Ahmed-Hajhamed/Shazam-like-Song-Identifier

Repository files navigation

Shazam-like Song Identifier

A Python desktop application that identifies songs and enables users to mix songs with weighted averages. It provides advanced analysis and matching features using mel-spectrogram, MFCC, and chroma-STFT, with perceptual hashing for efficient comparison.


Features

  • Song Visualization:
    • Double-click on a graph to load a song.
  • Song Mixing:
    • Use a slider to add a weighted average between two songs.
  • Song Matching:
    • A table on the left displays top matches for the uploaded or mixed song.
  • Media Player:
    • Small players for each song with play, pause, reset, and seek functionalities.
  • Custom Database:
    • Users can build a custom database by running FeatureExtraction.py after adding their folder of music.

Installation

  1. Clone the repository:
    https://github.com/Ahmed-Hajhamed/Shazam-like-Song-Identifier.git
    
  2. Install dependencies:
    pip install -r requirements.txt

Usage

-Run the application: bash python app.py

  • Load songs by double-clicking the graphs.
  • Mix songs using the slider to adjust the weighted average.
  • View matching results in the table.
  • Use the media players to listen to and seek through the songs.
  • To create a custom database of music:
    1. Add your folder of music to bash process_folder("path_to_folder") function in FeatureExtraction.py. Make sure all audio files are in the subfolder.
    2. Run bash FeatureExtraction.py to create the database and you are ready to go!

Requirements Python: Version 3.8 or higher Libraries: librosa PyQt5 numpy pyqtgraph qt_material ImageHash pandas

Screenshots

Load Songs By Double-Clicking on Graphs Python 3 11 12_30_2024 11_28_22 PM

Adjust The Weight of Each Song Python 3 11 12_30_2024 11_30_05 PM

Interactive Media Player Python 3 11 12_30_2024 11_28_35 PM

Contributing

Contributions are welcome! Please open an issue or submit a pull request if you have suggestions or bug fixes.

Contact

For questions or support, please reach out via the GitHub issues page or email: [email protected].

About

Music Detection Application that uses audio fingerprinting and perceptual hashing. Users can add their custom database with one click.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages