Update README.md

This commit is contained in:
Chigozirim Igweamaka 2024-06-30 16:03:16 +01:00 committed by GitHub
parent 6e0aa6ce40
commit cea48b2d52

View file

@ -3,14 +3,14 @@
[NotShazam](https://notshazam.vercel.app/) is an implementation of Shazam's song recognition algorithm based on insights from these resources. It integrates Spotify and YouTube APIs to find and download songs from the internet. [NotShazam](https://notshazam.vercel.app/) is an implementation of Shazam's song recognition algorithm based on insights from these resources. It integrates Spotify and YouTube APIs to find and download songs from the internet.
## Current Limitations ## Current Limitations
While the algorithm works excellently in matching a song with the exact song file, it performs poorly in finding the right match from a song recording. While the algorithm works excellently in matching a song with its exact file, it performs poorly in identifying the right match from a recording. However, this project is still a work in progress. I'm hopeful about making it work, but I could definitely use some help.
However, this is still a work in progress. Hopefully, I can get it to work. I could use some help though. Additionally, it currently only supports song files in WAV format.
Additionally, it only supports song files in WAV format.
## Installation ## Installation :desktop_computer:
### Prerequisites ### Prerequisites
- Golang: [Install Golang](https://golang.org/dl/) - Golang: [Install Golang](https://golang.org/dl/)
- FFmpeg: [Install FFmpeg](https://ffmpeg.org/download.html) - FFmpeg: [Install FFmpeg](https://ffmpeg.org/download.html)
- MongoDB: [Install MongoDB](https://www.mongodb.com/docs/manual/installation/)
- NPM: To run the client (frontend). - NPM: To run the client (frontend).
### Steps ### Steps
@ -29,9 +29,10 @@ cd song-recognition/client
npm install npm install
``` ```
## Usage ## Usage :bicyclist:
Start the Client App Start the Client App
``` ```
cd client
npm start npm start
``` ```
Serve the Backend App Serve the Backend App
@ -46,8 +47,12 @@ Find matches for a song/recording
``` ```
go run main.go find <path-to-wav-file> go run main.go find <path-to-wav-file>
``` ```
Delete fingerprints and songs
```
go run main.go erase
```
### Example ### Example :film_projector:
Download a song Download a song
``` ```
$ go run main.go download https://open.spotify.com/track/4pqwGuGu34g8KtfN8LDGZm?si=b3180b3d61084018 $ go run main.go download https://open.spotify.com/track/4pqwGuGu34g8KtfN8LDGZm?si=b3180b3d61084018
@ -83,7 +88,7 @@ Top 20 matches:
- Don't Stop Believin' (2022 Remaster) by Journey, score: 1465.00 - Don't Stop Believin' (2022 Remaster) by Journey, score: 1465.00
- Lay All Your Love On Me by ABBA, score: 1436.00 - Lay All Your Love On Me by ABBA, score: 1436.00
Search took: 856ms Search took: 856.386557ms
Final prediction: Voilà by André Rieu , score: 5390686.00 Final prediction: Voilà by André Rieu , score: 5390686.00
``` ```
@ -93,4 +98,9 @@ Final prediction: Voilà by André Rieu , score: 5390686.00
- [How does Shazam work - Toptal](https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition) - [How does Shazam work - Toptal](https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition)
- [Creating Shazam in Java](https://www.royvanrijn.com/blog/2010/06/creating-shazam-in-java/) - [Creating Shazam in Java](https://www.royvanrijn.com/blog/2010/06/creating-shazam-in-java/)
## Author :black_nib:
- Chigozirim Igweamaka
- Check out my other [GitHub](https://github.com/cgzirim) projects.
- Connect with me on [LinkedIn](https://www.linkedin.com/in/chigozirim-igweamaka/).
- Follow me on [Twitter](https://twitter.com/cgzirim).