Skip to content

Latest commit

 

History

History
68 lines (66 loc) · 2.15 KB

README.md

File metadata and controls

68 lines (66 loc) · 2.15 KB

Shazam Clone Using Signal Processing

Project Leads


Introduction

When we hear our favorite song, our brains recognize it instantly. When soundwaves graze our eardrums, they fire off several neurons that allow us to instantly recognize the collection of frequencies being produced. For a music recognition algorithm like Shazam, it’s a much different scenario: Our job will be to apply machine learning techniques, Fourier Transforms, and Hashing to help our algorithm distinguish between your favorite songs!

Goals

  • Learn the basics of Python and Matplotlib
  • Understand the intuition behind the Shazam algorithm
  • Learn about and implement Fourier transforms and hash functions
  • Build our own Shazam clone algorithms using machine learning techniques
  • HAVE FUN!!!

Timeline

Week 1, Feb 11, 2024

  • Introduction for the project
  • Ice breaker
  • Basic python and concepts

Week 2, Feb 18, 2024

  • Explore dataset
  • Convert mp3 files to .wav files
  • Make visualizations with the dataset (matplotlib)
  • Introduce Fourier transform
  • Intuition behind music recognition algorithms

Week 3, Mar 10, 2024

  • Fourier transform review
  • Intro to constellation mapping

Week 4, Mar 17, 2024

  • Hash functions
  • Begin training our model!

Week 5, Mar 24, 2024

  • Testing and optimizations

Week 6, Mar 31, 2024

  • Optimization

Week 7, Apr 7, 2024

  • Optimization

Project Expo, Apr 14, 2024

  • Show off what we've made!

Project Setup

  1. Install packages:
$ brew install ffmpeg sqlite3 librosa
  1. Clone this repo
  2. Make a workspace in VS Code
  3. Create a virtual environment within the workspace folder:
$ python3 -m venv env
  1. Activate your virtual environment:
$ source env/bin/activate
  1. Install the required dependencies:
$ pip3 install -r requirements.txt
  1. Type the following command into your IDE:
$ sqlite3 songs.sqlite3
  1. Copy/paste the code from sql/schema.sql corresponding to the songs table and hit enter
  2. Do the same for "hashes"
  3. Type and enter ".exit"
  4. Start loading songs into your newly-created SQL database!