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 , el dominio de la frecuencia o ambos.

Los 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. Hasta el momento no existe un único PDA ideal, por lo que existe una variedad de algoritmos, la mayoría de los cuales se incluyen en las clases que se indican a continuación. [1 ]

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

Enfoques generales

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 están compuestas de múltiples ondas sinusoidales con diferentes períodos o datos ruidosos. No obstante, hay casos en los que el cruce por cero puede ser una medida útil, por ejemplo, en algunas aplicaciones de voz donde se supone una sola fuente. [ cita requerida ] La simplicidad del algoritmo hace que sea "barato" de implementar.

Los métodos más sofisticados comparan segmentos de la señal con otros segmentos separados por un período de prueba para encontrar una coincidencia. La función AMDF (promedio de la diferencia de magnitud), la función ASMDF (promedio de la diferencia de medias al cuadrado) 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 lidiar mal con señales ruidosas (dependiendo de la implementación) y, en sus implementaciones básicas, no tratan bien con sonidos polifónicos (que involucran múltiples notas musicales de diferentes tonos). [ cita requerida ]

Los algoritmos actuales de detección de tono en el dominio del tiempo [¿ cuándo? ] tienden a basarse en los métodos básicos mencionados anteriormente, con mejoras adicionales para que el rendimiento se ajuste más a 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

En el dominio de frecuencia, es posible la detección polifónica, 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, lo hace adecuadamente eficiente para muchos propósitos.

Los algoritmos populares del dominio de frecuencia incluyen: el espectro del producto armónico; [5] [6] el análisis cepstral [7] y la máxima verosimilitud que intenta hacer coincidir las características del dominio de frecuencia con mapas de frecuencia predefinidos (útiles para detectar el tono de instrumentos de afinación fija); y la detección de picos debido 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 la fase) o la interpolación Grandke (basada en la magnitud) para ir más allá de la precisión proporcionada por los bins de FFT. Brown y Puckette [9] ofrecen otro enfoque basado en la fase.

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 del dominio del tiempo utilizando una función de autocorrelación como la correlación cruzada normalizada y procesamiento del dominio de la frecuencia utilizando información espectral para identificar el tono. Luego, entre los candidatos estimados a partir de los dos dominios, se puede calcular un seguimiento de tono final utilizando programación dinámica . La ventaja de estos enfoques es que el error de seguimiento en un dominio se puede reducir mediante el proceso en el otro 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, el habla con frecuencias fundamentales más altas puede no tener necesariamente la misma frecuencia fundamental en toda la ventana. [12]

Véase 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) . Revista de la Sociedad Acústica de América . 111 (4). Sociedad Acústica de América (ASA): 1917–1930. Bibcode :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 el 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 del producto armónico, el espectro de suma armónica y una estimación de máxima verosimilitud”, Actas del Simposio sobre procesamiento informático en comunicaciones, vol. XIX, Polytechnic Press: Brooklyn, Nueva York, (1970), págs. 779–797.
  7. ^ A. Michael Noll, “Determinación del tono del cepstrum”, Journal of the Acoustical Society of America, vol. 41, núm. 2 (febrero de 1967), págs. 293–309.
  8. ^ Mitre, Adriano; Queiroz, Marcelo; Faria, Régis. Determinación precisa y eficiente de la frecuencia fundamental a partir de estimaciones parciales precisas. Actas de la 4.ª Conferencia de la AES Brasil. 113-118, 2006.
  9. ^ Brown JC y Puckette MS (1993). Determinación de frecuencia fundamental de alta resolución basada en cambios de fase de la transformada de Fourier. J. Acoust. Soc. Am. Volumen 94, número 2, págs. 662–667 [1]
  10. ^ Zahorian, Stephen A.; Hu, Hongbing (2008). "Un método espectral/temporal para el seguimiento robusto de frecuencias fundamentales" (PDF) . Revista de la Sociedad Acústica de América . 123 (6). Sociedad Acústica de América (ASA): 4559–4571. Código Bibliográfico : 2008ASAJ..123.4559Z. doi : 10.1121/1.2916590. ISSN  0001-4966. PMID  18537404.
  11. ^ Stephen A. Zahorian y Hongbing Hu. Función de MATLAB de seguimiento de tono YAAPT
  12. ^ ab Huang, Xuedong; Alex Acero; Hsiao-Wuen Hon (2001). Procesamiento del lenguaje hablado . Prentice Hall PTR. p. 325. ISBN 0-13-022616-5.

Enlaces externos