Algoritmo de detección de tono


Un algoritmo de detección de tono ( PDA ) es un algoritmo diseñado para estimar el tono o la frecuencia fundamental de una señal cuasiperiódica u oscilante , generalmente una grabación digital del habla o una nota o tono musical. Esto se puede hacer en el dominio del tiempo, en el dominio de la frecuencia o en ambos.

Los PDA se utilizan en diversos contextos (p. ej ., fonética , recuperación de información musical , codificación de voz , sistemas de interpretación musical ) y, por lo tanto, pueden existir diferentes demandas sobre el algoritmo. Todavía hay [ ¿cuándo? ] no existe un único PDA ideal, por lo que existe una variedad de algoritmos, la mayoría de los cuales se incluyen en general en las clases que se indican a continuación. [1]

Una PDA típicamente estima el período de una señal cuasiperiódica, luego invierte ese valor para dar la frecuencia.

Un enfoque simple sería medir la distancia entre los puntos de cruce por cero de la señal (es decir, la tasa de cruce por cero ). Sin embargo, esto no funciona bien con formas de onda complicadas que se componen de múltiples ondas sinusoidales con diferentes períodos o datos con ruido. No obstante, hay casos en los que el cruce por cero puede ser una medida útil, por ejemplo, en algunas aplicaciones de voz en las que se supone una única fuente. [ cita requerida ] La simplicidad del algoritmo lo hace "barato" de implementar.

Los enfoques más sofisticados comparan segmentos de la señal con otros segmentos compensados ​​por un período de prueba para encontrar una coincidencia. AMDF ( función de diferencia de magnitud promedio ), ASMDF (función de diferencia de media cuadrática promedio) y otros algoritmos de autocorrelación similares funcionan de esta manera. Estos algoritmos pueden dar resultados bastante precisos para señales altamente periódicas. Sin embargo, tienen problemas de detección falsa (a menudo " errores de octava "), a veces pueden manejar mal las señales ruidosas (dependiendo de la implementación) y, en sus implementaciones básicas, no manejan bien los sonidos polifónicos (que involucran múltiples notas musicales de diferentes tonos). [ cita requerida ]

Actual [ ¿cuándo? ] Los algoritmos detectores de tono en el dominio del tiempo tienden a basarse en los métodos básicos mencionados anteriormente, con refinamientos adicionales para que el rendimiento esté más en línea con una evaluación humana del tono. Por ejemplo, el algoritmo YIN [2] y el algoritmo MPM [3] se basan en la autocorrelación .