SoX-linux里操作音频的瑞士军刀Sox是最为著名的OpenSource声音文件格式转换工具。已经被广泛移植到Dos、windows、OS2、Sun、Next、Unix、Linux等多个操作系统平台。Sox项目是由LanceNorskog创立的,后来被众多的开发者逐步完善,现在已经能够支持很多种声音文件格式和声音处理效果。基本上常见的声音格式都能够支持。更加有用的是,Sox能够进行声音滤波、采样频率转换,这对那些从事声讯平台开发或维护的朋友非常有用。当然,Sox里面也包括一些DSP算法,有兴趣的朋友可以下载回去研究。Sox可以用于任何用途。但是发布源代码时必须包括版权声明,发布二进制代码必须声明作者。首先来一个简单的命令,如下:--v是调整音量的选项,,它是一种线性调整,,而是幅值调整,fi-。如果-v后面的数字比1大,则增加音量,反之则减少音量,如果是负数那么在调整的同时还对音频进行反相变换,但也不是可以任意增加的,取值太大容易产生削波现象。要取什么只好呢?键入下列命令:-nstat-v命令输出结果如下"。上面的stat为效果器,作用是对音频文件做一个统计分析,并将结果打印到标准错误文件,选项"-v"将打印跟音量调整有关的以"VolumeAdjustment:’字样开始的哪一行。至于-n表示输出文件为空。这样在不干扰音频文件的情况下可得到文件信息。sox的语法格式如下所示:sox全局参数格式化参数输入文件1格式化参数输入文件2...格式化参数输出文件效果器首先全局参数在最前面,每个输入文件都有相应的格式化参数,可以有多个输入文件,在来一个输出文件,前面再加上格式化参数,最后是效果器。这到后面再说。上面的语法格式很间洁,应该很容易明白。在用SoX输出一个文件之前,用SoX附带的play命令先听一下效果是个不错的想法。下面让我们做另外一件事,切掉音频文件。假如我们有一个文件,开头有10秒钟左右我们不想要,那么我们可以这样做,首先看文件有多长:-nstat得到下面输出信息:Samplesread:20889600Length(seconds)::::-:::-::::::4743Volumeadjustment:"Length(seconds):"这一行,,约等于237秒吧。再键入下列命令:,,0是文件开始,10是时间概念,表示时长,而非文件长度。再调用SoX的play命令用耳麦听一下,,就可以开始截取操作了:rm-。上面的227是最终文件时间长度,等于237减去10。SoX能够执行常见大多数音频格式转换,如:,能将wav格式转为mp3格式。下面谈谈文件的联和,假如不指定特别的参数,例如:,,,,对于SoX附带的"play"命令来说,假如不指定特别的参数,操作方法基本相同,,它门按照文件排列顺序播放,SoX的rec命令也是和sox情况一样。但是假如象下面这样:sox-,音轨数目不需要一样。输出文件可能减少音轨,输出文件是不可逆的。例外需要重提一下,采用sequence或merge来联和文件时,输入文件的样本速率必须一样,否则联合不
sox使用. 来自淘豆网m.daumloan.com转载请标明出处.