Inspired by Shazam :D SpotiFind is a music similarity search application I made. It can parse youtube playlist/videos and add to your database, save songs locally to your device, and search for song through audio like Shazam.
- Framework: Flask
- Database: PostgreSQL with pgvector for efficient vector similarity search
- Audio Processing: OpenL3 for generating audio embeddings
- YouTube Integration: YouTube-DLP API for downloading and processing YouTube videos
-
Format Conversion:
- Audio files are converted to
.wavformat usingffmpeg.
- Audio files are converted to
-
Resampling:
- Files are resampled to a standard sample rate.
-
Mono Conversion:
- Stereo audio is converted to mono for consistency.
-
Trimming:
- Audio is trimmed to a fixed duration (60 seconds).
-
Softening sudden changes in audio volume:
- Cut out noise that is too loud or quiet (The outliers).
-
"Flatten" out audio:
- Quiet parts of the audio are enhanced relative to loud parts using upward expansion.
-
Feature Extraction:
- OpenL3 generates embeddings that capture audio characteristics for similarity matching.
-
Vector Storage:
- Extracted embeddings are stored in PostgreSQL with pgvector for Manhattan similarity search.
- Framework: React
- UI: Tailwind CSS for styling
- Features:
- Upload audio files for analysis
- Add YouTube videos or playlists
- View results of similar songs
- Playback uploaded recordings