8

我正在尝试为几个我不知道总持续时间(以秒为单位)的波形文件创建淡入和淡出。我阅读了手册,但我看到的所有示例看起来我需要知道文件的完整长度。有人可以在不知道 wav 文件的完整长度的情况下发布一个在 5 秒内淡出并在 7 秒内淡出的示例吗?

4

2 回答 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 回答