Procesamiento Digital de Audio

Objetivo

Palabra clave:

Temario

Este curso expondrá al alumno a temas de procesamiento de señales de audio, donde se cubrirán desde los conceptos teóricos hasta los aspectos de implementación. La intención es que el alumno, al terminar este curso, le sea posible crear, de una manera eficiente, software que analice, procese, y regrese resultados de señales de audio en línea. Aunque se espera que el alumno tenga bases previas de Señales y Sistemas, así como de programación, el curso se llevará a cabo de tal manera que dichas bases serán refinadas y repasadas.

Requisitos

Aunque se espera que el alumno tenga bases previas de Señales y Sistemas, así como de programación, el curso se llevará a cabo de tal manera que dichas bases serán refinadas y repasadas.

Material Didáctico

Introducción

Material de Presentación

  • Sesión 01: Introducción - PDF

Material Extra

  • Orientación de Golem por audio - MP4
  • Golem como Mesero Ciego - M4V
  • Proyecto Hark - MP4
  • Experimento Escucha Humana - MP3

Lenguaje C y Linux (Bash)

Material de Presentación

  • Sesión 02.1: Repaso General de C - PDF
  • Sesión 02.2: Repaso General de Bash - PDF

Código Ejemplo

JACK Audio Connnection Toolkit

Material de Presentación

  • Sesión 03: Instalación, Configuración y Creación de Agentes de JACK - PDF

Material para Clase

Material Extra

  • Sitio Oficial - URL
  • GitHub Oficial - URL
  • Wiki - URL
  • Ejemplo Simple Original - URL
  • QJackCTL - URL
  • Más Recursos - URL

Captura de Audio

Material de Presentación

  • Sesión 04.1: Desfase con JACK y Baudline - PDF
  • Sesión 04.2: Lectura de Archivos de Audio con JACK, libsndfile y libsamplerate - PDF
  • Sesión 04.3: Transformada de Fourier: Aspectos Teóricos - PDF
  • Sesión 04.4: Transformada de Fourier: Aspectos Prácticos - PDF
  • Sesión 04.5: Transformada de Fourier: La Biblioteca FFTw3 - PDF
  • Sesión 04.6: Ejercicios Epílogos de Fourier - PDF

Material para Clase

Material Extra

  • Referencia Oficial: Baudline - URL
  • Referencia Oficial: libsndfile - URL
  • Referencia Oficial: libsamplerate - URL
  • Referencia Oficial: FFTw3 - URL
  • Repositorio Oficial de FFTw3 - URL
  • Articulo Wikipedia del Método Overlap-Add - URL

Material de Referencia

  • Artículo descriptivo de WOLA: PDF
    Crochiere, R. "A weighted overlap-add method of short-time Fourier analysis/synthesis." IEEE Transactions on Acoustics, Speech, and Signal Processing 28.1 (1980): 99-102.
  • Completa revisión de características extraídas para el análisis de audio: PDF
    Garima, S., Umapathy K., Krishnan S. "Trends in audio signal feature extraction methods." Applied Acoustics 158 (2020): 107020.

Procesamiento de Varias Señales Concurrentes

Material de Presentación

  • Sesión 05: Corpus AIRA - PDF

Material para Clase

Cálculo de Dirección de Arribo

Material de Presentación

  • Sesión 06.1: Estimación de una Dirección de Arribo - PDF
  • Sesión 06.2: Estimación de Múltiples Direcciones de Arribo - PDF
  • Sesión 06.3: Repaso Práctico de Material

Material para Clase

Material de Referencia

  • Artículo descriptivo de MUSIC: PDF
    Schmidt, R.O, "Multiple Emitter Location and Signal Parameter Estimation," IEEE Trans. Antennas Propagation, Vol. AP-34 (March 1986), pp.276-280.

Separación de Fuentes en Línea

Material de Presentación

  • Sesión 07.1: Bases de Separación de Fuentes en Línea - PDF
  • Sesión 07.2: Separación de Fuentes por Beamforming - PDF
  • Sesión 07.3: Separación de Fuentes por Análisis Estadístico - PDF
  • Sesión 07.4: Repaso Práctico de Material

Material para Clase

  • Para evaluar separación (BSS_EVAL_SOURCES):
  • Funciones usadas en las demás implementaciones:
  • Implementaciones en Octave de Beamforming:
    • Delay-and-Sum Classic Beamforming - das.m
    • Minimum Variance Distortionless Response - mvdr.m
    • Linearly Constrained Minimum Variance - lcmv.m
    • Generalized Sidelobe Canceller - gsc.m
    • Generalized Sidelobe Canceller with Dynamic Mu- gsc_dyn.m
    • Frequency Masking - freqmask.m
  • Implementaciones en Octave de Análisis Estadístico en Tiempo:
    • Principal Component Analysis - pca.m
    • Independent Component Analysis - ica.m
    • Non-negative Matrix Factorization - nnmf.m
    • Geometric Source Separation - ??? (100 garantizado; ver artículo en Material de Referencia)
  • Implementaciones en Octave de Análisis Estadístico en Frecuencia:
    • Principal Component Analysis - pca_fft.m
    • Independent Component Analysis - ica_fft.m
    • Non-negative Matrix Factorization - nnmf_fft.m, nnmf_fft_mag.m
      • Ver artículo de Complex NNMF en Material de Referencia
    • Geometric Source Separation - ??? (100 garantizado; ver artículo en Material de Referencia)
    • Impacto de desfase en el dominio de la frecuencia - test_delay_in_fft.m

Material de Referencia

  • Artículo descriptivo de MVDR: PDF
    Cox, H., Zeskind, R., & Owen, M. (1987). Robust adaptive beamforming. IEEE Transactions on Acoustics, Speech, and Signal Processing, 35(10), 1365-1376.
  • Artículo descriptivo de LCMV: PDF
    Frost, O. L. (1972). An algorithm for linearly constrained adaptive array processing. Proceedings of the IEEE, 60(8), 926-935.
  • Artículo descriptivo de GSC: PDF
    Griffiths, L., & Jim, C. W. (1982). An alternative approach to linearly constrained adaptive beamforming. IEEE Transactions on antennas and propagation, 30(1), 27-34.
  • Artículo descriptivo de Geometric Source Separation: PDF
    Valin, J. M., Yamamoto, S. I., Rouat, J., Michaud, F., Nakadai, K., & Okuno, H. G. (2007). Robust recognition of simultaneous speech by a mobile robot. IEEE transactions on robotics, 23(4), 742-752.
  • Artículo descriptivo de Complex NNMF: PDF
    Kameoka, H., Ono, N., Kashino, K., & Sagayama, S. (2009, April). Complex NMF: A new sparse representation for acoustic signals. In 2009 IEEE International Conference on Acoustics, Speech and Signal Processing (pp. 3437-3440). IEEE.

Final

Material de Presentación

  • Sesión 08: Final - PDF

Proyectos

Mínimo: estimar la dirección de arribo de una señal de origen, y separarla del resto, probándolo con AIRA.