Integrating harmonic power spectrum into essentia: a comparative study for pitch detection focused on flute instruments
Integrating harmonic power spectrum into essentia: a comparative study for pitch detection focused on flute instruments
Enllaç permanent
Descripció
Resum
Essentia1 is an audio library created by the Music Technology Group designed to provide advanced audio and music analysis tools. While it includes state-of-the-art pitch detection algorithms like PitchMelodia or PitchYin, there are some algorithms that are not implemented like the Harmonic Product Spectrum (HPS). The HPS algorithm consists in applying some downsampling in the audio spectra and multiplying them to enhance the detection of the fundamental frequency peak, since it will be the highest peak over the other harmonics on the resulting spectrum. This project aims to integrate the HPS into Essentia library, coupled with a comparative analysis against existing algorithms within Essentia. The algorithm evaluation is centered on flute instruments and similar monophonic variants, aligning with algorithms best suited for such instruments. The project begins with a detailed theoretical exploration of the HPS algorithm, including important implementation considerations. Afterwards, the implementation process in C++ within a local Essentia repository is detailed, followed by compilation with Python bindings to access the new algorithm. Finally, the evaluation phase, conducted in Python, makes use of a dataset comprising audio files and the corresponding ground-truth files. Pitch detection algorithms from Essentia are employed to extract frequencies from the audio data and then the data is aligned for comparison with algorithmic results. The evaluated metrics are voicing recall and false alarm, pitch and overall accuracy and they are measured with mir_eval library.
Essentia es una librería de audio creada por el Music Technology Group, diseñada para proporcionar herramientas de análisis de audio y música. Aunque ya incluye algoritmos de detección de tono como PitchMelodia o PitchYin, hay algunos algoritmos que no están implementados como el Harmonic Product Spectrum (HPS). El algoritmo Harmonic Product Spectrum consiste en realizar una serie de submuestreos del espectro del audio y multiplicarlos para resaltar el pico de la frecuencia fundamental, ya que será el pico más alto sobre los otros armónicos en el espectro resultante. Este proyecto tiene como objetivo integrar el HPS en Essentia, junto con un análisis comparativo con algoritmos existentes dentro de Essentia. La evaluación se centra en instrumentos de flauta y variantes monofónicas similares, alineándose con los algoritmos más adecuados para tales instrumentos. El proyecto comienza con una exploración teórica detallada del algoritmo HPS, incluyendo algunas consideraciones importantes para la implementación. Posteriormente, se detalla el proceso de implementación en C++ dentro de un repositorio local de Essentia, seguido de la compilación con bindings de Python para acceder al nuevo algoritmo. Finalmente, la fase de evaluación, realizada en Python, hace uso de un conjunto de datos que comprende archivos de audio y archivos con los datos reales correspondientes. Se emplean algoritmos de detección de tono de Essentia para extraer frecuencias de los datos de audio, y luego se alinean los datos para comparar con los resultados proporcionados por los algoritmos. Las métricas evaluadas son la detección de la recuperación y falsa alarma de la sonoridad, del tono y de la precisión global y se miden con la librería mir_eval.
Essentia és una llibreria d'àudio creada pel Music Technology Group, dissenyada per proporcionar eines d'anàlisi d'àudio i música. Tot i que ja inclou algoritmes de detecció de to com PitchMelodia o PitchYin, hi ha alguns algoritmes que no estan implementats com l'Harmonic Product Spectrum (HPS). L'algoritme Harmonic Product Spectrum consisteix a realitzar diversos submostrejos de l'espectre de l'àudio i multiplicar-los per ressaltar el pic de la freqüència fonamental, ja que serà el pic més alt sobre els altres harmònics en l'espectre resultant. Aquest projecte té com a objectiu integrar el HPS a Essentia, juntament amb una anàlisi comparativa amb algoritmes existents dins d'Essentia. L'avaluació es centra en instruments de flauta i variants monofòniques similars, alineant-se amb els algoritmes més adients per a tals instruments. El projecte comença amb una exploració teòrica detallada de l'algoritme HPS, incloent-hi algunes consideracions importants per a la implementació. Posteriorment, es detalla el procés d'implementació en C++ dins d'un repositori local d'Essentia, seguit de la compilació amb bindings de Python per accedir al nou algoritme. Finalment, la fase d'avaluació, realitzada en Python, fa ús d'un conjunt de dades que comprèn arxius d'àudio i arxius amb les dades reals corresponents. S'empren algoritmes de detecció de to d'Essentia per extreure freqüències de les dades d'àudio, i després s'ajusten les dades per comparar amb els resultats proporcionats pels algoritmes. Les mètriques avaluades són la detecció de la recuperació i falsa alarma de la sonoritat, del to i de la precisió global i es mesuren amb la llibreria mir_eval.Descripció
Tutor: Xavier Lizarraga
Tutor: Jorge Marcos
Treball de fi del grau en Grau en Enginyeria Matemàtica en Ciència de DadesDirector i departament