我想用麦克风输入录制 10 秒的音频索克斯。我在文档或其他地方找不到任何示例来说明如何执行此操作。这是我当前用来timeout
停止录制的命令。有没有更好的方法?
timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav
答案1
有点晚了,但如果有人有同样的问题,你必须使用修剪“效果”来录制一定长度的音频。
因此,要录制 10 秒的音频,只需在命令末尾附加 trim 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男人:
修剪 {位置(+)}
剪切音频中的部分内容。可以指定任意数量的位置;在到达第一个位置之前,音频不会发送到输出。然后,效果会在每个位置交替复制和丢弃音频。使用 0 作为第一个位置参数的值允许从音频的开头进行复制。