SoX を使用してマイク入力から10秒間の音声を録音したいと思います。ドキュメントや他の場所で、その方法を示す例は見つかりませんでした。これが、timeout
を使用して記録を停止する現在のコマンドです。それを行うためのより良い方法はありますか?
timeout 10 sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav
少し遅れますが、誰かが同じ質問をした場合は、トリム「エフェクト」を使用して、設定された長さのオーディオを録音する必要があります。
したがって、10秒間の音声を録音するには、コマンドの最後にトリム010を追加するだけです。
$ sox -b 32 -e unsigned-integer -r 96k -c 2 -d --clobber --buffer $((96000*2*10)) /tmp/soxrecording.wav trim 0 10
SoXから man :
トリム{位置(+)}
オーディオから一部を切り取ります。任意の数のポジションを指定できます。最初の位置に到達するまで、オーディオは出力に送信されません。次に、エフェクトは各位置でオーディオのコピーと破棄を交互に行います。最初の位置パラメータに値0を使用すると、オーディオの最初からコピーできます。