Commit
feat: Implement similarity search and audio analysis improvements
Commit details
Commit notes
This commit introduces several enhancements:
- **Similarity Search:** - Added a new endpoint `/samples/similar/:id` to find similar samples using vector embeddings. - Integrated pgvector for efficient similarity search, with a JavaScript fallback. - Added database schema changes for the `embedding_vector` column and indexing.
- **Audio Analysis:** - Improved audio analysis accuracy by implementing DC offset removal and a more robust true peak calculation. - Enhanced confidence scoring for BPM and musical key detection. - Added spectral feature calculations (centroid, bandwidth, rolloff, flatness, flux, ZCR). - Normalized embeddings to unit length for cosine similarity. - Introduced content hashing (SHA-256) for sample deduplication and optimized analysis. - Added file size and duration limits for audio uploads. - Improved worker startup checks for FFmpeg availability. - Added comprehensive unit tests for audio analysis algorithms.
Co-authored-by: armin.naimi <[email redacted]>
- Files changed
- 15
- Lines added
- +1,206
- Lines removed
- −34