Soxを使用して、オーディオファイルを最後からトリミングして5秒短縮するにはどうすればよいですか?
たとえば、これはファイルを最初からトリミングする方法です。
sox input output trim 5000
これは、最後に5秒間の無音を追加する方法です。
sox input output pad 0 5000
構文はsox input output trim <start> <duration>
たとえばsox input.wav output.wav trim 0 00:35
、最初の35秒をに出力しoutput.wav
ます。
(長さが何を使用しているかを知ることができますsox input -n stat
)
コマンドのSoXドキュメントから:trim
オーディオから一部を切り取ります。任意の数のポジションを指定できます。最初の位置に到達するまで、オーディオは出力に送信されません。次に、エフェクトは各位置でオーディオのコピーと破棄を交互に行います。最初の位置パラメータに値0を使用すると、オーディオの先頭からコピーできます。
例えば、
sox infile outfile trim 0 10
最初の10秒間をコピーしますが、
play infile trim 12:34 =15:00 -2:00
と
play infile trim 12:34 2:26 -2:00
両方とも、オーディオの12分34秒からオーディオの15分まで(つまり、2分26秒の長さ)再生され、オーディオが終了する2分前に再生を再開します。
dpweのコメントによると、位置の値は、(ファイルの先頭を基準にして)または(ファイルの末尾を基準として)で始まらない限り、前の位置を基準として解釈されます。 。=
-
したがって、最後から5秒トリミングすると次のようになります。sox input output trim 0 -5
上記のコマンドは間違っています、それはあなたに最後の5秒だけを取得します。実際に使用する必要があります:
sox input output reverse trim 5 reverse
これはファイルの終わりから5秒をカットします。
私はSoXを初めて使用しますが、このページがオーディオトリミングの検索結果に頻繁に表示され、同様のことをしようとしている多くの人に見られることに気づきました。
そのため、私は個人的に最善の解決策であるとわかったものを提供したいと思いました。
JohnSmithOptionalが言及したのと同じ「クリック」がファイルの最後で発生しました。これは、オーディオが終了し、それが十分に機能することを確認するときに、短時間のフェードアウトでグリッチのアーティファクトを削除できることを示唆しています。フェードアウト位置パラメーターに負の値を受け入れて、オーディオの終了がキーになるまでの時間を示します。
だから私はこれよりもOPの目的を達成するためのより良い方法を見ることができません:
sox full_length.wav trimmed.wav fade 0 -5 0.01
パラメータ1は「0」であるため、フェードインはありません。パラメータ2は最後の5秒間を削除しますパラメータ3は10ミリ秒のフェードを使用します