SOX和淡入淡出

Ric*_*k T 7 sox libsox

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

lCa*_*app 10

您可以使用简单的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
Run Code Online (Sandbox Code Playgroud)

soxi -d返回wav文件的长度.有关soxi的更多信息,请参阅sox 文档.

您可以按如下方式运行此bash脚本:

./fadeWav test.wav faded.wav
Run Code Online (Sandbox Code Playgroud)


WAS*_*SDi 8

来自 sox 联机帮助页:

fade [类型] 淡入长度 [停止位置(=) [淡出长度]]

...

如果可以根据输入文件头和任何先前的效果确定音频长度,则可以为停止位置指定 -0(或者,出于历史原因,0),以指示在输入音频流的末尾。

因此要在 5 秒内淡出,并在 7 秒内淡出:

sox input.waw output.waw fade 5 -0 7
Run Code Online (Sandbox Code Playgroud)