Как записать 10 секунд аудио с SoX?

7348
shrx

Я хочу записать 10 секунд аудио с моего микрофонного входа через SoX . Я не нашел ни одного примера в документации или где-либо еще, который показал бы, как это сделать. Вот моя текущая команда, использующая, timeoutчтобы остановить запись. Есть ли лучший способ сделать это?

timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav 
4

1 ответ на вопрос

11
toes

Немного поздно, но если у кого-то возникли те же вопросы, вы должны использовать «эффект» обрезки, чтобы записать заданную длину звука.

Таким образом, чтобы записать 10 секунд аудио просто добавьте обрезку 0 10 в конце вашей команды, например,

$ sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10 

От SoX Man :

trim

Вырезает части из аудио. Любое количество позиций может быть дано; аудио не отправляется на выход, пока не будет достигнута первая позиция. Затем эффект чередуется между копированием и удалением звука в каждой позиции. Использование значения 0 для первого параметра позиции позволяет копировать с начала аудио.

лучше поздно, чем никогда :) shrx 8 лет назад 1