# Sox 音频转换 SoX 工具的所有功能都可以通过一个简单的 sox 命令及相应的选项实现。但它同时提供了 play 命令用于播放音频文件,rec 命令用于录制音频,以及 soxi 命令用于获取音频的文件头中包含的信息。 ## 安装 sudo apt-get install sox ## 使用 播放音频文件 play 现实音频文件信息 soxi sox --i 转为 24 位分辨率 sox -b 24 修改采样率 sox -r 16000 修改通道数 sox -c 2 修改编码类型 sox -e unsigned-integer 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