2.9 KiB
Sox 音频转换
SoX 工具的所有功能都可以通过一个简单的 sox 命令及相应的选项实现。但它同时提供了 play 命令用于播放音频文件,rec 命令用于录制音频,以及 soxi 命令用于获取音频的文件头中包含的信息。
安装
sudo apt-get install sox
使用
播放音频文件
play <file name>
现实音频文件信息
soxi <file name>
sox --i <file name>
转为 24 位分辨率
sox <input file> -b 24 <output file>
修改采样率
sox <input file> -r 16000 <output file>
修改通道数
sox <input file> -c 2 <output file>
修改编码类型
sox <input file> -e unsigned-integer <output file>
signed-integer
unsigned-integer
floating-point
mu-law
a-law
ima-adpcm
ms-adpcm
gsm-full-rate
提取双声道音频文件中单个声道的数据并作为单声道音频输出(1 对应左声道,2 对应右声道)
sox stereo.wav left.wav remix 1
sox stereo.wav right.wav remix 2
融合双声道文件中两个声道的音频数据并作为单声道音频输出
sox stereo.wav mono.wav remix 1,2
此外,remix 还可以将输入文件中的多个声道数据分别进行融合。如使用 -M 选项将两个双声道音频合并,再通过 remix 将合并得到的四个声道两两融合,生成一个只包含两个声道的输出文件
sox -M stereo1.wav stereo2.wav output.wav remix 1,3 2,4
sox 命令的 -v 选项可以用来(成倍地)改变音量的大小
sox -v 0.5 foo.wav bar.wav
上述命令将 foo.wav 音频放大 0.5 倍音量后输出至 bar.wav 文件。
sox 命令可以通过 synth 效果合成许多标准波形和噪声类型。
sox -n sine.wav synth 1.0 sine 1000.0
合成频率为 1000 Hz 长度为 1 秒的正弦波,保存至 sine.wav 文件中。synth 支持合成的声音类型包括 sine、square、triangle、sawtooth、trapetz (trapezoidal)、exp (exponential)、whitenoise、pinknoise 和 brownnoise。
sox 命令可以创建静音状态的音频片段,使用 -n 选项表示没有输入,通过 trim 效果指定需要静音的片段。
sox -n -r 48000 silence.wav trim 0.0 0.250
在 slience.wav 文件中创建一段长度为 250ms 采样率为 48000Hz 的静音片段。
sox 命令的 -m 选项可以将两个音频文件混合以后生成输出文件。
sox -m sine100.wav sine250.wav sine100-250.wav
将 sine100.wav 和 sine250.wav 两个音频文件融合以后作为 sine100-250.wav 文件的音频数据。
sox -m -v0.5 music.mp3 -v2 speech.wav presentation.wav
将背景音乐(music.mp3)音量降低一半后与放大 2 倍音量的人声数据(speech.wav)融合。
如果不确定融合效果,可以先通过 play 命令使用相同的参数对结果进行“预览”:
play -m -v0.5 music.mp3 -v2 speech.wav