sox是一个强大的音频处理工具,Debian的sox包里包含几个有用工具,play,rec,sox,soxi。
play用于播放音频,可以播放一些常见格式的音频(mp3由于版权问题默认不支持)。最特别的地方是他可以播放原始音乐文件(raw),通过以下选项来控制播放参数:
-r 抽样数,单位赫兹
-c channels,通道数
-b 每个抽样的比特数
-e 指定音频文件的编码方式,可用的编码方式如下
signed-integer
unsigned-integer
floating-point
a-law
u-law, mu-law
oki-adpcm
ima-adpcm
ms-adpcm
gsm-full-rate
关于编码的说明见man play。
sox可以用于各种音频格式间的变化,最简单的如
sox music.wav music.raw去掉wave文件的头,只剩下原始音乐信息。
sox支持多种文件格式,原始音频文件格式包括.raw .f32 .f64 .s8 .s16 .s24 .s32 .u8 .u16 .u24等等,更多的文件格式见man soxformat。这些原始文件格式已经说明了上面提到的比特数,编码方式,例如.s16(等同于.sw),是指signed-integer,16比特。通道数如果不指定默认为1,抽样率默认为8kHz。
上例sox music.wav music.raw之所以可以不用指定参数,是因为wave文件头中已经包括了这些参数,可以用soxi music.wav来查看wave文件头中包含的信息。
Input File : 'stop.wav'
Channels : 2
Sample Rate : 44100
Precision : 16-bit
Duration : 00:03:48.38 = 10071407
samples = 17128.2 CDDA sectors
File Size : 40.3M
Bit Rate : 1.41M
Sample Encoding: 16-bit Signed Integer PCM先记录这么多~~