SoXSoundExchange甚至可以为你的音频文件添加特效。我工作须要使用音视频媒体,不管你处理哪种媒体,你肯定晓得标准化是一种有价值的工具。如同你不会企图把一个分数加到一个小数上而不转换其中一个一样,我早已晓得,把不同格式的媒体组合上去并不理想。为了便捷用户,大多数爱好者级应用程序使转换过程不可见。但是linux 音频处理软件,对于这些须要控制媒体细节的用户的灵活软件,会一般让你自己提早将媒体转换为所需的格式。我有一些最喜欢的音频转换工具,其中之一就是堪称“音频的英国军刀”——SoX。
安装
在 Linux 或BSD上,可以从软件储存库或Ports树中安装sox 命令(,以及一些有用的符号链接)。
你也可以从上安装SoX。它不时常发布,但它的代码库常常是稳定的,所以假如你想要最新的功能(如Opus支持),建立它是容易和安全的。
SoX主要提供了sox 命令,并且创建了一些有用的符号链接:play、rec和soxi。
使用SoX获取文件信息
SoX可以读取和重画音频数据。它是否储存重画的音频数据取决于你。在有些情况下,你不须要储存转换后的数据,比如,当你将输出直接发送到麦克风进行回放时。但是,在进行任何转换之前,最好首先确定要处理的是哪些。
使用soxi命令也可以搜集音频文件信息。soxi会符号链接到soxi--info。
$ soxi countdown.mp3
Input File(输入文件) : '/home/tux/countdown.mp3'
Channels(通道数) : 1
Sample Rate(采样率) : 44100
Precision(数据精度) : 16-bit(16 比特)
Duration(时长) : 00:00:11.21 = 494185 samples...(11.21 秒 = 494185 采样点)
File Size(文件大小) : 179k
Bit Rate(比特率) : 128k
Sample Encoding(编码格式): MPEG audio (layer I, II or III)
这个输出可以让你挺好地了解音频文件的编码方法、文件厚度、文件大小、采样率和通道数。其中一些你可能觉得你已然晓得了,但当顾客把媒体带到我面前时,我从不相信这种假定。使用soxi验证媒体属性。
转换文件

在本例中,,一个游戏节目倒计时的音频是以MP3文件的方式提供的。即使几乎所有的编辑应用程序都接受压缩音频,但它们并不是在压缩的数据上进行编辑。转换是在某个地方发生的,可能是一个秘密的后台任务,也可能提示让你保存一份副本。我一般喜欢自己提早完成转换。这样,我可以控制使用的格式。我可以在夜晚批量处理大量的媒体,而不是浪费宝贵的制做时间,等待编辑应用程序按需处理它们。
sox命令用于转换音频文件。在sox流程中有几个阶段:
输入合并特效输出
但在命令句型中,特效步骤令人疑惑地放在了最后一步。这意味着sox流程是这样组成的:
输入 → 合并 → 输出 → 特效
编码
最简单的转换命令只涉及一个输入文件和一个输出文件。下边是转换MP3文件为无损FLAC文件的命令:
$ sox countdown.mp3 output.flac
$ soxi output.flac
Input File(输入文件) : 'output.flac'
Channels(通道数) : 1
Sample Rate(采样率) : 44100
Precision(数据精度) : 16-bit(16 比特)
Duration(时长) : 00:00:11.18 = 493056 samples...(11.18 秒 = 493056 采样点)
File Size(文件大小) : 545k
Bit Rate(比特率) : 390k
Sample Encoding(编码格式): 16-bit FLAC
Comment(注释) : 'Comment=Processed by SoX'
特效

特效可以在命令末尾指定。它可以在将数据发送到最终目的地之前修改音频。比如,有时声音太会议在转换过程中引起问题:
$ sox bad.wav bad.ogg
sox WARN sox: `bad.ogg' output clipped 126 samples; decrease volume?
应用增益(gain)疗效一般可以解决此问题:
$ sox bad.wav bad.ogg gain -1
淡入淡出
另一个常用的疗效是淡入淡出(fade)。此疗效容许你定义淡入或淡出的类型,以及你希望淡入淡出疗效持续的时间。
下边是一个使用倒抛物线的6秒淡入示例:
$ sox intro.ogg intro.flac fade p 6
这将对音频的腹部应用3秒的淡入,并从8秒标记开始淡出(这段音乐只有11秒,因而在这些情况下淡出也是3秒):
$ sox intro.ogg intro.flac fade p 3 8
sox指南页中列举了不同类型的淡入淡出(余弦、线性、倒抛物线等)以及淡入淡出提供的选项。
特效句型
每位特效插件都有自己的句型linux vi 命令,因而请参阅指南页了解怎样调用每位特效插件的详尽信息。
疗效可以在一个命令中以菊花链的形式进行,起码在你想组合它们的范围内是这么。换句话说linux 音频处理软件,没有句型可以只在六秒钟的淡出期间应用一个镶边疗效。对于这么精确的东西,你须要一个图形声波编辑器或数字音频工作站,比如LMMS或Rosegarden。并且,假如你只想应用一次特效,可以在同一命令上将它们一起列举。

此命令应用了一个-1的增益疗效、1.35的节奏拉伸和淡出:
$ sox intro.ogg output.flac gain -1 stretch 1.35 fade p 0 6
$ soxi output.flac
Input File(输入文件) : 'output.flac'
Channels(通道数) : 1
Sample Rate(采样率) : 44100
Precision(数据精度) : 16-bit(16 比特)
Duration(时长) : 00:00:15.10 = 665808 samples...(15.10 秒 = 665808 采样点)
File Size(文件大小) : 712k
Bit Rate(比特率) : 377k
Sample Encoding(编码格式): 16-bit FLAC
Comment(注释) : 'Comment=Processed by SoX'
组合音频
SoX还可以通过联接或混和音频文件来组合音频文件。
要联接(或则说拼接)文件合并为一个文件,请在命令中提供多个输入文件:
$ sox countdown.mp3 intro.ogg output.flac
在本例中,output.flac现今包含countdown.mp3音频,紧接着是intro.ogg音乐。

然而,倘若你希望两首乐曲同时播放,可以使用--combinemix选项:
$ sox --combine mix countdown.mp3 intro.ogg output.flac
但是,想像一下,这两个输入文件的不同之处不仅仅在于它们的编解码器。人声音轨用单声道(一个声道)录制并不稀少,但音乐起码要用立体声(起码两个声道)来录制。SoX不会给出默认的解决方案,因而你必须首先自己标准化这两个文件的格式。
修改音频文件
选项与前面列举文件名有关。诸如,此命令中的--channels选项将仅仅应用于input.wav,而不被应用于example.ogg和output.flac:
$ sox --channels 2 input.wav example.ogg output.flac
这意味着在SoX中,选项的位置十分重要。假如你在命令开始时指定一个选项,这么实际上只会覆盖SoX自己从输入文件中搜集的内容。但是,在输出文件名前的选项决定了SoX怎么写入音频数据。
要解决上面的通道不兼容问题,你可以首先标准化输入,之后混和:
$ sox countdown.mp3 --channels 2 countdown-stereo.flac gain -1
$ soxi countdown-stereo.flac
Input File(输入文件) : 'countdown-stereo.flac'
Channels(通道数) : 2
Sample Rate(采样率) : 44100
Precision(数据精度) : 16-bit(16 比特)
Duration(时长) : 00:00:11.18 = 493056 samples...(11.18 秒 = 493056 采样点)
File Size(文件大小) : 545k
Bit Rate(比特率) : 390k

Sample Encoding(编码格式): 16-bit FLAC
Comment(注释) : 'Comment=Processed by SoX'
$ sox --combine mix
countdown-stereo.flac
intro.ogg
output.flac
SoX绝对须要多个命令来执行复杂的操作,因而依据须要创建几个临时和中间文件是正常的。
多通道音频
其实,并非所有音频都被限制在一个或两个声道。假如你想将多个音频通道组合成一个文件,可以使用SoX的--combinemerge选项:
$ sox --combine merge countdown.mp3 intro.ogg output.flac
$ soxi output.flac
Input File : 'output.flac'
Channels : 3
[...]
简单的音频操作
在没有视觉界面的情况下操作音频虽然很奇怪,但是对于个别任务来说,SoX绝对不是最好的工具。但是64位linux,对于许多任务,SoX提供了一个简单而轻量级的工具包。SoX是一个具有强悍潜力的简单命令。有了它,你可以转换音频,操纵通道和波形,甚至生成自己的声音。本文仅简略概述了其功能,因而请阅读其指南页或在线文档,之后瞧瞧你能创造哪些。
