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

89 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Sox 音频转换
SoX 工具的所有功能都可以通过一个简单的 sox 命令及相应的选项实现。但它同时提供了 play 命令用于播放音频文件rec 命令用于录制音频,以及 soxi 命令用于获取音频的文件头中包含的信息。
## 安装
sudo apt 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