NotePublic/Software/Applications/Sox/Sox_音频转换.md

2.9 KiB
Raw Blame History

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