Linux 音频命令——sox 如何调节音量
一、sox 如何调节音量
步骤一:查看音量可以最大调整值倍数——Volume adjustment
sox demo.wav -n stat
结果为:
Samples read: 78031
Length (seconds): 4.876938
Scaled by: 2147483647.0
Maximum amplitude: 0.159882
Minimum amplitude: -0.134613
Midline amplitude: 0.012634
Mean norm: 0.016386
Mean amplitude: -0.000025
RMS amplitude: 0.024805
Maximum delta: 0.076752
Minimum delta: 0.000000
Mean delta: 0.004386
RMS delta: 0.008032
Rough frequency: 824
Volume adjustment: 6.255 #这个值是在保证声音质量下,最大的声音放大倍数。
步骤2: 设置音量因子,生成另一个文件
# 调整音频音量缩小0.8,(大于1为扩大) sox -v 0.8 demo.wav output.wav
除了采用步骤一、二这种方法,或者也可使用以下两条命令:
# 以 sox foo.wav -n stat -v 命令返回的数字作为放大倍数,将最大化 foo.wav 的音量而不至于出现削波
sox foo.wav -n stat -v 2> vc
sox -v `cat vc` foo.wav foo-maxed.wav
二、 sox 相关知识扩展
SoX(即 Sound eXchange)是一个跨平台(Windows,Linux,MacOS 等)的命令行实用程序,可以将各种格式的音频文件转换为需要的其他格式。SoX 还可以对输入的音频文件应用各种效果,也支持在大多数平台上播放和录制音频文件。
Windows下载链接:https://sourceforge.net/projects/sox/files/sox/
SoX 可以读取和写入常见格式的音频文件,并在此过程中选择性的加入一些声音效果。可以组合多个输入源及合成音效,在许多系统上也可以作为音频播放器或多轨录音机使用。
SoX 工具在大部分 Linux 系统上都可以直接通过软件包管理器安装
sudo apt-get install sox # Linux brew install sox # Mac 系统
SoX 处理音频的基本流程如下:
Input(s) -> Combiner -> Effects -> Output(s)
SoX 工具的所有功能都可以通过一命令及相应的选项实现。它同时提供了 play 命令用于播放音频文件,rec 命令用于录制音频,以及 soxi 命令用于获取音频的文件头中包含的信息。
上述几个命令的基本格式如下:
SYNOPSIS sox [global-options] [format-options] infile1 [[format-options] infile2] ... [format-options] outfile [effect [effect-options]] ... play [global-options] [format-options] infile1 [[format-options] infile2] ... [format-options] [effect [effect-options]] ... rec [global-options] [format-options] outfile [effect [effect-options]] ... soxi [-V[level]] [-T] [-t|-r|-c|-s|-d|-D|-b|-B|-p|-e|-a] infile1 ...
基本使用
一、获取音频元数据 soxi 或 sox --i 命令可以通过分析音频文件的文件头,获取其元数据(如通道数、采样率、编码等)。
soxi Faded.wav ''' Input File : 'Faded.wav' Channels : 2 Sample Rate : 44100 Precision : 16-bit Duration : 00:03:32.63 = 9376836 samples = 15947 CDDA sectors File Size : 37.5M Bit Rate : 1.41M Sample Encoding: 16-bit Signed Integer PCM '''
二、获取音频的统计信息
使用 sox <inputfile> -n stat 命令获取某音频文件的统计信息。
音频数据主要有5个属性
- 采样率(sample rate):指声音由模拟信号转换成数字信号的过程中,每秒从连续信号中提取的用于组成离散信号的样本个数。 音频CD所用的采样率为 44100 Hz,数字音频磁带和许多计算机系统使用 48000 Hz,专业级音频系统通常使用 96000 Hz。
- 采样大小(sample size 或 Precision):音频采样时用于存储每个样本的数据位数(bits)。如今 16 bit 的采样大小已被广泛使用,24 bit 主要用于专业音频领域。
- 编码格式(data encoding):即每个音频样本的表示(即“编码”)方式。常用的编码类型包括 floating-point、μ-law、ADPCM、singed-integer PCM、MP3 和 FLAC 等。
- 通道(channel):即文件中包含的音频通道的数量。其中单声道(mono)和双声道(stereo)是最常见的两种,“环绕声”音频(Surround sound)通常包含六个或更多声道。
- 比特率(Bit Rate):表示一个单位时间内编码音频信号占用的存储空间大小, 它的数值一般取决于所有的上述四个参数。
三、播放与录制
play 和 rec 命令提供了最基本的播放和录制功能。
play existing-file.wav # 播放 rec new-file.wav # 录制 # 上述命令等同于 sox 命令的如下形式: sox existing-file.wav −d # 播放 sox −d new-file.wav # 录制 # -d 选项用于指定播放或录制时使用的音频设备,不指定时则表示使用默认设备。
参考资料:
2. https://blog.csdn.net/zhulinniao/article/details/108869700/