web-dev-qa-db-ja.com

SoXで10秒のオーディオを録音するにはどうすればよいですか?

SoX を使用してマイク入力から10秒間の音声を録音したいと思います。ドキュメントや他の場所で、その方法を示す例は見つかりませんでした。これが、timeoutを使用して記録を停止する現在のコマンドです。それを行うためのより良い方法はありますか?

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

少し遅れますが、誰かが同じ質問をした場合は、トリム「エフェクト」を使用して、設定された長さのオーディオを録音する必要があります。

したがって、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を使用すると、オーディオの最初からコピーできます。

11
toes