stringtranslate.com

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 de voz o una nota o tono musical. Esto se puede hacer en el dominio del tiempo , en el dominio de la frecuencia o en ambos.

Las PDA se utilizan en diversos contextos (por ejemplo, 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 una única PDA ideal, por lo que existe una variedad de algoritmos, la mayoría de los cuales se clasifican en líneas generales en las clases que se detallan a continuación. [1]

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

Enfoques generales

Un enfoque sencillo 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 ruidosos. Sin embargo, 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 necesaria ] La simplicidad del algoritmo hace que su implementación sea "barata".

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 medias cuadrática promedio) y otros algoritmos de autocorrelación similares funcionan de esta manera. Estos algoritmos pueden dar resultados bastante precisos para señales muy periódicas. Sin embargo, tienen problemas de detección falsa (a menudo " errores de octava "), a veces pueden manejar mal señales ruidosas (dependiendo de la implementación) y, en sus implementaciones básicas, no manejan bien sonidos polifónicos (que involucran múltiples notas musicales de diferentes tonos). [ cita necesaria ]

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

Enfoques en el dominio de la frecuencia

La detección polifónica en el dominio de la frecuencia es posible, generalmente utilizando el periodograma para convertir la señal en una estimación del espectro de frecuencia [4] . Esto requiere más potencia de procesamiento a medida que aumenta la precisión deseada, aunque la conocida eficiencia de la FFT , una parte clave del algoritmo del periodograma, la hace adecuadamente eficiente para muchos propósitos.

Los algoritmos populares en el dominio de la frecuencia incluyen: el espectro de productos armónicos; [5] [6] análisis cepstral [7] y máxima verosimilitud que intenta hacer coincidir las características del dominio de frecuencia con mapas de frecuencia predefinidos (útil para detectar el tono de instrumentos de afinación fija); y la detección de picos debidos a series armónicas. [8]

Para mejorar la estimación del tono derivada del espectro discreto de Fourier, se pueden utilizar técnicas como la reasignación espectral (basada en fase) o la interpolación de Grandke (basada en magnitud) para ir más allá de la precisión proporcionada por los contenedores FFT. Brown y Puckette [9] ofrecen otro enfoque basado en fases.

Enfoques espectrales/temporales

Los algoritmos de detección de tono espectral/temporal, por ejemplo, el algoritmo de seguimiento de tono YAAPT, [10] [11] se basan en una combinación de procesamiento en el dominio del tiempo utilizando una función de autocorrelación , como la correlación cruzada normalizada, y procesamiento en el dominio de la frecuencia que utiliza información espectral para identificar el tono. . Luego, entre los candidatos estimados a partir de los dos dominios, se puede calcular una pista de tono final mediante programación dinámica . La ventaja de estos enfoques es que el proceso en el otro dominio puede reducir el error de seguimiento en un dominio.

Detección del tono del habla

La frecuencia fundamental del habla puede variar desde 40 Hz para voces graves hasta 600 Hz para voces agudas. [12]

Los métodos de autocorrelación necesitan al menos dos períodos de tono para detectar el tono. Esto significa que para detectar una frecuencia fundamental de 40 Hz, se deben analizar al menos 50 milisegundos (ms) de la señal de voz. Sin embargo, durante 50 ms, es posible que el habla con frecuencias fundamentales más altas no necesariamente tenga la misma frecuencia fundamental en toda la ventana. [12]

Ver también

Referencias

  1. ^ D.Gerhard. Extracción de tono y frecuencia fundamental: historia y técnicas actuales, informe técnico, Departamento de Ciencias de la Computación, Universidad de Regina, 2003.
  2. ^ de Cheveigné, Alain; Kawahara, Hideki (2002). "YIN, un estimador de frecuencia fundamental para el habla y la música" (PDF) . La Revista de la Sociedad de Acústica de América . 111 (4). Sociedad de Acústica de América (ASA): 1917-1930. Código Bib : 2002ASAJ..111.1917D. doi :10.1121/1.1458024. ISSN  0001-4966. PMID  12002874. S2CID  1607434.
  3. ^ P. McLeod y G. Wyvill. Una forma más inteligente de encontrar tono. En Actas de la Conferencia Internacional de Música por Computadora (ICMC'05), 2005.
  4. ^ Hayes, Monson (1996). Procesamiento y modelado estadístico de señales digitales . John Wiley & Sons, Inc. pág. 393.ISBN 0-471-59431-8.
  5. ^ Algoritmos de detección de tono, recurso en línea de Connexions
  6. ^ A. Michael Noll, “Determinación del tono del habla humana mediante el espectro de productos armónicos, el espectro de suma armónica y una estimación de máxima verosimilitud”, Actas del Simposio sobre procesamiento informático en las comunicaciones, vol. XIX, Polytechnic Press: Brooklyn, Nueva York, (1970), págs.
  7. ^ A. Michael Noll, “Determinación del tono de Cepstrum”, Revista de la Sociedad Acústica de América, vol. 41, núm. 2 (febrero de 1967), págs.
  8. ^ Mitra, Adriano; Queiroz, Marcelo; Faria, Régis. Determinación de frecuencia fundamental precisa y eficiente a partir de estimaciones parciales precisas. Actas de la 4ta Conferencia AES Brasil. 113-118, 2006.
  9. ^ Brown JC y Puckette MS (1993). Una determinación de la frecuencia fundamental de alta resolución basada en cambios de fase de la transformada de Fourier. J. acústico. Soc. Soy. Volumen 94, número 2, págs. 662–667 [1]
  10. ^ Zahorian, Stephen A.; Hu, Hongbing (2008). "Un método espectral/temporal para un seguimiento robusto de la frecuencia fundamental" (PDF) . La Revista de la Sociedad de Acústica de América . 123 (6). Sociedad de Acústica de América (ASA): 4559–4571. Código Bib : 2008ASAJ..123.4559Z. doi :10.1121/1.2916590. ISSN  0001-4966. PMID  18537404.
  11. ^ Stephen A. Zahorian y Hongbing Hu. Función MATLAB de seguimiento de tono YAAPT
  12. ^ ab Huang, Xuedong; Álex Acero; Hsiao-Wuen Hon (2001). Procesamiento del lenguaje hablado . PTR de Prentice Hall. pag. 325.ISBN 0-13-022616-5.

enlaces externos