Articulo de referencia

Algoritmo de detección de tono

Un algoritmo de detección de tono ( PDA , por sus siglas en inglés) es un algoritmo diseñado para estimar el tono o la frecuencia fundamental de una señal cuasiperiódica u oscil...

Un algoritmo de detección de tono ( PDA , por sus siglas en inglés) 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 realizar en el dominio del tiempo , en el dominio de la frecuencia o en 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 ), por lo que pueden existir diferentes requisitos para el algoritmo. Todavía no existe un PDA ideal, por lo que existe una variedad de algoritmos, la mayoría de los cuales se engloban 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 [ 2 ] ese valor para obtener la frecuencia.

Enfoques generales

Un método 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 complejas compuestas por múltiples ondas sinusoidales con periodos diferentes o datos ruidosos. No obstante, existen casos en los que el cruce por cero puede ser una medida útil, por ejemplo, en algunas aplicaciones primitivas de conversión de texto a voz con sonido robótico, donde se asume una fuente de frecuencia única. La simplicidad del algoritmo hace que su implementación sea económica.

Los enfoques más sofisticados comparan segmentos de la señal con otros segmentos desplazados por un período de prueba para encontrar una coincidencia. AMDF ( función de diferencia de magnitud promedio ), ASMDF (función de diferencia media cuadrática promedio) y otros algoritmos de autocorrelación similares funcionan de esta manera. Estos algoritmos pueden proporcionar resultados bastante precisos para señales altamente periódicas. Sin embargo, tienen problemas de detección falsa (a menudo " errores de octava "), [ 3 ] 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). [ 4 ]

Los algoritmos actuales de detección 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 se ajuste más a una evaluación humana del tono. Por ejemplo, el algoritmo YIN [ 5 ] y el algoritmo MPM [ 6 ] se basan en la autocorrelación .

Enfoques en el dominio de la frecuencia

En el dominio de la frecuencia, es posible la detección polifónica, que generalmente utiliza el periodograma para convertir la señal en una estimación del espectro de frecuencia [ 7 ] . Esto requiere mayor capacidad de procesamiento a medida que aumenta la precisión deseada, aunque la reconocida eficiencia de la FFT , una parte clave del algoritmo del periodograma, la hace suficientemente eficiente para muchos propósitos.

Los algoritmos populares en el dominio de la frecuencia incluyen: el espectro de producto armónico ; [ 8 ] [ 9 ] el análisis cepstral [ 10 ] y la máxima verosimilitud , que intenta hacer coincidir las características del dominio de la 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. [ 11 ]

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 de Grandke (basada en la magnitud) para ir más allá de la precisión que proporcionan los bins de la FFT. Brown y Puckette [ 12 ] ofrecen otro enfoque basado en la fase.

Enfoques espectrales/temporales

Los algoritmos de detección de tono espectral/temporal, como el algoritmo de seguimiento de tono YAAPT [ 13 ] [ 14 ], se basan en una combinación de procesamiento en el dominio del tiempo mediante una función de autocorrelación , como la correlación cruzada normalizada, y procesamiento en el dominio de la frecuencia mediante información espectral para identificar el tono. Posteriormente, entre los candidatos estimados en ambos dominios, se puede calcular una trayectoria de tono final mediante programación dinámica . La ventaja de estos enfoques radica en que el error de seguimiento en un dominio se puede reducir mediante el procesamiento en el otro.

detección del tono de voz

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

Los métodos de autocorrelación requieren al menos dos periodos de tono para detectarlo. 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 esos 50 ms, el habla con frecuencias fundamentales más altas no necesariamente tendrá la misma frecuencia fundamental en toda la ventana. [ 15 ]

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. "Invertir" en este caso significa dividir el período estimado de la señal por 1. Es decir,f = 1/estimatedPeriod
  3. Error de octava: En lugar de detectar la verdadera frecuencia fundamental/raíz, se detecta accidentalmente lafrecuencia más fuerte actual (generalmente uno de los armónicos del sonido, que incluye octavas ). Esto se nota en las aplicaciones de afinación de guitarra. Rasguear una sola cuerda de la guitarra hará que el afinador salte confusamente entre diferentes tonos, ya que el potente rasgueo inicial de la cuerda tiene un espectro de sonoridad de sus armónicos diferente en comparación con el espectro de potencia (espectro de sonoridad) de esas mismas frecuencias de armónicos unos segundos después. Por ejemplo, en el instante en que se rasguea la cuerda, el afinador puede pensar que el tono es 440 Hz, pero 3 segundos después, el afinador puede pensar que el tono es 5*440 Hz, un armónico del tono fundamental (440 Hz), debido a que los tonos de menor frecuencia y menos resonantes disminuyen en sonoridad mucho más rápido que los tonos agudos resonantes.
  4. Las notas polifónicas no tienen por qué ser armónicos ni octavas; pueden ser cualquier conjunto de notas que se produzcan simultáneamente.
  5. de Cheveigné, Alain; Kawahara, Hideki (2002). "YIN, un estimador de frecuencia fundamental para el habla y la música" ( PDF) . The Journal of the Acoustical Society of America . 111 (4). Acoustical Society of America (ASA): 1917– 1930. Bibcode : 2002ASAJ..111.1917D . doi : 10.1121/1.1458024 . ISSN 0001-4966 . PMID 12002874. S2CID 1607434 .   
  6. 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.
  7. Hayes, Monson (1996). Procesamiento y modelado estadístico de señales digitales . John Wiley & Sons, Inc. pág. 393. ISBN  0-471-59431-8.
  8. Algoritmos de detección de tono , recurso en línea de Connexions
  9. A. Michael Noll, “Determinación del tono del habla humana mediante el espectro del producto armónico, el espectro de la 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.
  10. A. Michael Noll, “ Determinación del tono del cepstrum ”, Journal of the Acoustical Society of America, Vol. 41, No. 2, (febrero de 1967), pp. 293–309.
  11. 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 AES Brasil. 113-118, 2006.
  12. Brown JC y Puckette MS (1993). Determinación de la 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
  13. Zahorian, Stephen A.; Hu, Hongbing (2008). "Un método espectral/temporal para el seguimiento robusto de la frecuencia fundamental" (PDF) . The Journal of the Acoustical Society of America . 123 (6). Acoustical Society of America (ASA): 4559– 4571. Bibcode : 2008ASAJ..123.4559Z . doi : 10.1121/1.2916590 . ISSN 0001-4966 . PMID 18537404 .  
  14. Stephen A. Zahorian y Hongbing Hu. Función de seguimiento de tono YAAPT en MATLAB.
  15. ^ Huang , Xuedong; Álex Acero; Hsiao-Wuen Hon (2001). Procesamiento del lenguaje hablado . PTR de Prentice Hall. pag. 325.ISBN  0-13-022616-5.
  • Alain de Cheveigne y Hideki Kawahara: YIN, un estimador de frecuencia fundamental para el habla y la música.
  • AudioContentAnalysis.org: Código Matlab para diversos algoritmos de detección de tono.