Skip to content

Query-by-humming system: a framework that assumes a hummed fragment of song in real time as an input parameter for a search system and gets the name of the full original version.

Notifications You must be signed in to change notification settings

alinamuliak/QTune

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QTune (cuty tune ^^)

About The Project

This is the semester project for LA course at UCU with signal processing as the general topic. MiniShazam(change later) is a simplified version of a query-by-humming (QBH) system. The developed framework takes in a piece of a hummed or whistled song as an input parameter for a search system and outputs the matching song in its full version.

The user can hum a piece of tune into a microphone of his computer or laptop for arbitrary number of seconds (we recommend 8). The program will perform necessary evaluation and search a database of tunes to find a list of melodies that are most similar to the user’s “query”. Then he/she will be able to listen to this result to see if it is actually the tune that he/she had in mind. If the recording has drastically different tempo, the user will be asked to hum again, this time more accurately.

The database of tunes can be extended by manually adding new songs. If the user hums or whistles a piece that is not yet in the database, the system, apparently, will not be able to return the exact match.

Built With

The JavaScript code for recording through Google Colab was taken from this repository.

Getting Started

Prerequisites

  • essentia
    pip install essentia
  • mir_eval
    pip install mir_eval
  • pydub
    pip install pydub

Usage

  1. Open Google Colab by clicking here
  2. Make a copy of this notebook
  3. Upload the desired songs, form a lists of path to them, form a database by using create_database function
  4. Record your input and test the program in the Testing -> Real-time section of the notebook!

Record, process and match here: screen-example

Roadmap

  • Implement pitch detection algorithm
  • Implement real-time recording
  • Implement matching algorithm
  • Test the program
    • Test on different music genres
    • Test on the bad quality input
    • Test on the input that is absent in the database

Contributors

About

Query-by-humming system: a framework that assumes a hummed fragment of song in real time as an input parameter for a search system and gets the name of the full original version.

Topics

Resources

Stars

Watchers

Forks