Volume-Independent Music Matching by Frequency Spectrum Comparison
DOI:
https://doi.org/10.47611/jsrhs.v12i1.4149Keywords:
Computer Science, Algorithms, Frequency, Spectrogram, Audio NormalizationAbstract
Currently, there are applications such as Shazam that provides music matching. However, a limitation is that the same piece performed by the same musician cannot be identified if it is not the same recording. This is because Shazam matches the variation in volume, not the frequencies of the sound. This research attempts to match music the way humans understand it: by the frequency spectrum of music, not the volume variation. We pre-computed the frequency spectrums of the music, then took the unknown piece and tried to match its frequency spectrum against every segment. We did so by sliding the window by 0.1 seconds and calculating the error by subtracting the normalized arrays and taking the sum of absolute differences. The segment that showed the least error was considered the candidate for the match. Matching simple pieces such as single-note pieces was successful, but complex pieces such as symphonies were not successful; that is, the algorithm couldn’t produce low error value in any of the music in the database. We suspect that it has to do with having “too many notes,” i.e., mismatches in the higher harmonics added up to significant amount of errors, which swamps the calculations.
Downloads
References or Bibliography
Jovanovic, J. (2015, February 2). How does Shazam work? music recognition
algorithms, fingerprinting, and processing. Toptal Engineering Blog. Retrieved January
, 2022, from https://www.toptal.com/algorithms/shazam-it-music-processing-fingerprinting-and-recognition
Christophe. (2015, August 6). How does Shazam work. Coding geek. Retrieved January
, 2022, from http://coding-geek.com/how-shazam-works/
Wolfram Research (2012), Spectrogram, Wolfram Language function,
https://reference.wolfram.com/language/ref/Spectrogram.html (updated 2017).
“Spectrogram.” Wikipedia, Wikimedia Foundation, 10 Feb. 2022, https://en.wikipedia.org/wiki/Spectrogram.
Wolfram Research (2012), SpectrogramArray, Wolfram Language function,
https://reference.wolfram.com/language/ref/SpectrogramArray.html (updated 2017).
Wolfram Research (1988), Partition, Wolfram Language function, https://reference.wolfram.com/language/ref/Partition.html (updated 2015).
Published
How to Cite
Issue
Section
Copyright (c) 2023 Anthony Lee; Dr. James Choi
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Copyright holder(s) granted JSR a perpetual, non-exclusive license to distriute & display this article.