Quiero grabar 10 segundos de audio desde la entrada de mi micrófono conSoX. No he encontrado ningún ejemplo en la documentación ni en ningún otro lugar que muestre cómo hacerlo. Aquí está mi comando actual timeout
para detener la grabación. Hay una mejor manera de hacerlo?
timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav
Respuesta1
Un poco tarde, pero si alguien tuvo la misma pregunta, debe usar el "efecto" de recorte para grabar una duración determinada de audio.
Entonces, para grabar 10 segundos de audio, simplemente agregue trim 0 10 al final de su comando, por ejemplo,
$ sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10
De los SoXhombre:
recortar {posición(+)}
Corta partes del audio. Se podrá dar cualquier número de posiciones; el audio no se envía a la salida hasta que se alcanza la primera posición. Luego, el efecto alterna entre copiar y descartar audio en cada posición. Usar un valor de 0 para el parámetro de la primera posición permite copiar desde el principio del audio.