我正在尝试为几个我不知道总持续时间(以秒为单位)的波形文件创建淡入和淡出。我阅读了手册,但我看到的所有示例看起来我需要知道文件的完整长度。有人可以在不知道 wav 文件的完整长度的情况下发布一个在 5 秒内淡出并在 7 秒内淡出的示例吗?
问问题
6230 次
2 回答
11
您可以使用简单的 bash 脚本,如下所示:
#! /bin/bash
WAV_IN=$1
WAV_OUT=$2
FADE_IN_L="0:5"
FADE_OUT_L="0:7"
LENGTH=`soxi -d $WAV_IN`
sox $WAV_IN $WAV_OUT fade $FADE_IN_L $LENGTH $FADE_OUT_L
soxi -d
返回 wav 文件的长度。有关 soxi 的更多信息,请参阅 sox文档。
您可以按如下方式运行此 bash 脚本:
./fadeWav test.wav faded.wav
于 2014-06-19T13:28:38.547 回答
5
从 sox 手册页:
fade [type] 淡入长度 [stop-position(=) [fade-out-length]]
...
如果音频长度可以从输入文件头和任何先前的效果中确定,则可以为停止位置指定 -0(或者,出于历史原因,为 0),以指示淡出在输入音频流的结尾。
所以要在 5 秒内淡出,在 7 秒内淡出:
sox input.waw output.waw fade 5 -0 7
于 2019-09-03T07:50:32.463 回答