[en] 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.

[es] 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.