Audentify is a music recognition project inspired by Shazam, using a simplifed version of audio fingerprinting to store unique audio digital signatures of songs uploaded to the database for future audio identification.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Before you run the program, prepare some audiofiles and copy them all to a folder called sample_songs
mkdir -p ./microservices/audiofingerprinting/sample_songs
cp -r /path/to/your/music/* ./microservices/audiofingerprinting/sample_songs/
Then copy the three audio decoder files from dr_libs to audentify\microservices\audiofingerprinting\lib\dr_libs:
git clone https://github.com/mackron/dr_libs.git audentify\microservices\audiofingerprinting\lib\
Also ensure that docker is installed.
To start the program, run this in root directory
docker-compose up --build -d
And in a web browser open up
localhost:8081
If you want to upload more songs into the database you can either run
# Copy music files to the running container
docker cp /path/to/your/music/. audio-fingerprinting:/app/new_songs/
# Register the new songs
docker exec audio-fingerprinting ./audioFingerprintingCLI register /app/new_songs --db /app/data/fingerprints.db
or add the songs to the mounted directory
# Create the directory
mkdir -p ./music_library
# Add your music files
cp -r /path/to/your/music/* ./music_library/
# Restart the container to see the new mount
docker-compose restart audio-fingerprinting
# Register all songs in the mounted directory
docker exec audio-fingerprinting ./audioFingerprintingCLI register /app/music_library --workers 4
Once you are on the webapp, you can upload links of videos like youtube shorts and tiktoks.
- Spring Boot - The web framework used
- Maven - Dependency Management
- C++ - Used for fingerprinting and audio identification microservice
- Python - Used to scrape audio from video links
- Ray - Initial work - ruilin808
This project is licensed under the MIT License
- Shazam