Procesado de secuencias de audio
Vicente González Ruiz
June 24, 2014
Contents
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:
- 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.
- 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).
- 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 ...