Algoritmo di pitch detection

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca

Un algoritmo di pitch detection (PDA) è un algoritmo capace di valutare la frequenza fondamentale di un segnale periodico o quasi periodico, generalmente una registrazione digitale della voce o di una nota musicale. Questa valutazione può essere fatta nel dominio del tempo, nel dominio della frequenza o in entrambi.

Gli algoritmi PDA sono usati in vari contesti (fonetica, codifica vocale, performance musicali, recupero di informazioni dalla musica) perciò ci sono differenti richieste che l'algoritmo deve soddisfare.

Approcci nel dominio del tempo[modifica | modifica wikitesto]

Nel dominio del tempo, un PDA solitamente stima il periodo del segnale, quindi lo inverte per restituire il valore della frequenza.

Un primo semplice approccio è quello di misurare i punti di attraversamenti dello zero del segnale. Tuttavia questo metodo non funziona con forme d'onda complesse composte da onde sinusoidali con periodi diversi. Ci sono comunque casi in cui il metodo dell'attraversamento dello zero risulta utile, ad esempio in alcune applicazioni di riconoscimento vocale in cui è presente una singola sorgente. La semplicità di questo algoritmo lo rende di facile ed economica realizzazione.

Approcci più sofisticati comparano segmenti del segnale con altri segmenti pesati durante un periodo di prova per trovare una corrispondenza. L'AMDF (average magnitude difference function), l'ASMDF (Average Squared Mean Difference Function) e altri algoritmi basati sull'autocorrelazione funzionano in questo modo. Questi algoritmi forniscono risultati accurati per segnali altamente periodici, tuttavia possono dare falsi risultati (spesso "errori di ottava"), possono funzionare male con segnali rumorosi e in base alla loro implementazione possono non funzionare con suoni polifonici.

Gli attuali algoritmi basati sul dominio del tempo tendono a implementare i metodi sopracitati. Ad esempio l'algoritmo YIN[1] e l'algoritmo MPM[2] sono entrambi basati sull'autocorrelazione.

Approcci nel dominio della frequenza[modifica | modifica wikitesto]

Nel dominio della frequenza è possibile effettuare rilevazioni polifoniche, spesso si usa il periodogramma per convertire il segnale in una stima del suo spettro di frequenze[3]. Questo algoritmo richiede tanta potenza elaborativa quanta più precisione si desidera ottenere, tuttavia la popolarità e l'efficienza dell'FFT (processo chiave dell'agoritmo usato per ottenere lo spettrogramma) lo rendono efficiente in molti ambiti.

Gli algoritmi più popolari operanti nel dominio della frequenza sono: l'HPS (harmonic product spectrum)[4][5], le analisi cepstral[6] e il maximum likelihood che cerca di associare le caratteristiche del dominio della frequenza con mappe predefinite di frequenze (molto utile per il riconoscimento dell'intonazione di strumenti con accordatura fissa) e riconoscimento di picchi causati da serie di armoniche.[7]

Per migliorare la precisione delle stime basate sulla FFT si possono usare tecniche come il riassegnamento spettrale (basata sulla fase) o l'interpolazione di Grandke (basata sulla grandezza). Un altro approccio basato sulla fase è stato creato da Brown e Puckette[8].

Approcci spettrali/temporali[modifica | modifica wikitesto]

Gli approcci di questo tipo, ad esempio lo YAAPT pitch tracking[9][10], sono basati su una combinazione di processi nel dominio del tempo che usano funzioni di autocorrelazione come ad esempio la correlazione incrociata normalizzata, e processi che operano nel dominio della frequenza che utilizzano le informazioni contenute nello spettro per la rilevazione dell'intonazione. Il risultato finale può essere ottenuto usando la programmazione dinamica. Il vantaggio di questi approcci è che gli errori di stima commessi in un dominio possono essere corretti dalle valutazioni ottenute nell'altro dominio.

Frequenza fondamentale della voce[modifica | modifica wikitesto]

La frequenza fondamentale del parlato può variare da 40 Hz per voci maschili profonde fino ai 600 Hz delle voci dei bambini o delle donne.[11]

Il metodi basati sull'autocorrelazione necessitano di almeno due periodi per rilevare il pitch. Questo significa che per identificare una fondamentale a 40 Hz devono essere analizzati almeno 50 millisecondi di segnale. Tuttavia durante questi 50 ms la frequenza fondamentale della voce potrebbe non essere la stessa per tutta la durata della finestra.[11]

Note[modifica | modifica wikitesto]

  1. ^ A. de Cheveigné and H. Kawahara. The Journal of the Acoustical Society of America, 111:1917, 2002. DOI10.1121/1.1458024
  2. ^ P. McLeod and G. Wyvill. A smarter way to find pitch. (PDF) (archiviato dall'url originale il 3 aprile 2012). In Proceedings of the International Computer Music Conference (ICMC'05), 2005.
  3. ^ Monson Hayes, Statistical Digital Signal Processing and Modeling, John Wiley & Sons, Inc., 1996, pp. 393, ISBN 0-471-59431-8.
  4. ^ Pitch Detection Algorithms, online resource from Connexions
  5. ^ A. Michael Noll, “Pitch Determination of Human Speech by the Harmonic Product Spectrum, the Harmonic Sum Spectrum and a Maximum Likelihood Estimate,” Proceedings of the Symposium on Computer Processing in Communications, Vol. XIX, Polytechnic Press: Brooklyn, New York, (1970), pp. 779-797.
  6. ^ A. Michael Noll, “Cepstrum Pitch Determination,” Journal of the Acoustical Society of America, Vol. 41, No. 2, (February 1967), pp. 293-309.
  7. ^ Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. Accurate and Efficient Fundamental Frequency Determination from Precise Partial Estimates. (PDF). Proceedings of the 4th AES Brazil Conference. 113-118, 2006.
  8. ^ Brown JC and Puckette MS (1993). A high resolution fundamental frequency determination based on phase changes of the Fourier transform. J. Acoust. Soc. Am. Volume 94, Issue 2, pp. 662-667 Copia archiviata, su asadl.org. URL consultato il 31 luglio 2012 (archiviato dall'url originale il 31 luglio 2012).
  9. ^ Stephen A. Zahorian and Hongbing Hu. A Spectral/temporal method for Robust Fundamental Frequency Tracking. (PDF) (archiviato dall'url originale il 5 luglio 2015). The Journal of the Acoustical Society of America, 123 (6), 2008. DOI10.1121/1.2916590
  10. ^ Stephen A. Zahorian and Hongbing Hu. YAAPT Pitch Tracking MATLAB Function.
  11. ^ a b Xuedong Huang, Alex Acero, Hsiao-Wuen Hon, Spoken Language Processing, Prentice Hall PTR, 2001, pp. 325, ISBN 0-13-022616-5.

Collegamenti esterni[modifica | modifica wikitesto]