Procesado de secuencias de audio

Vicente González Ruiz

June 24, 2014

Contents

1 Procesado en tiempo cuasi-real
2 Procesado en tiempo real

1 Procesado en tiempo cuasi-real

Esta forma de procesar la seales es muy cmoda pero tiene un ligero inconveniente: el retraso que los pipes introducen. Los pipes son colas FIFO de un cierto tamao (4 Kbytes normalmente). Esto significa que el tiempo que transcurre desde que la seal es capturada hasta que la modulada es reproducida es apreciable y puede suponer un problema en algunos contextos. Adems, a esta latencia hay que sumar la que ya poseen las aplicaciones arecord y aplay.

Para minimizar estos problemas podemos hacer varias cosas:

  1. Reducir el tamao de las colas de los pipes. Esto se hace normalmente modificando los fuentes del kernel, compilndolo y usndolo. Un camino largo y tenebroso, sin duda alguna.
  2. Reducir el tamao de los buffers de las aplicaciones arecord y aplay. Esto se hace emplando el flag -B que especifica el tamao de los buffers de audio en microsegundos (vase la documentacin de estas aplicaciones).
  3. Utilizando la mxima frecuencia de muestreo posible (vase la tercera prctica). De esta forma llenaremos las colas lo antes posible y la latencia ser menor.

Por tanto, para minimizar la latencia usando una tarjeta de sonido tpica escribiremos:

arecord -r 48000 -c 2 -f S16_LE -B 0 | modulator | aplay -r 48000 -c 2 -f S16_LE -B 0  
# Ojo, repasar lo del -B

2 Procesado en tiempo real

In progress ...