4

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

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

1 ответ1

11

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

Таким образом, чтобы записать 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 {position(+)}

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .