文章目录
- 音频
- 基本概念
- 模拟信号
- 采样
- 采样频率(sample rate)
- 采样位数
- 声道数 (channels)
- 比特率(bit rate)
- 量化
- 编码
- 数字信号
- PCM ⾳频数据
音频
声⾳是由物体振动引起大气压强变化产⽣的波,是⼀种机械波。
⾳频录制(麦克风 microphone)过程是模数转换过程: Analog->Digital,即 ADC。
音频播放(扬声器 speaker)过程是数模转换过程: Digital -> Analog,即 DAC。
基本概念
音频模数转换过程中大致可分为以下几个模块
- 模拟信号
- 采样
- 量化
- 编码
- 数字信号
模拟信号
时域连续的模拟信号
采样
对模拟信号隔⼀定的时间间隔取⼀个点。
采样频率(sample rate)
所谓采样就是在时间轴上对模拟信号进⾏数字化,根据奈奎斯特定理(采样定理),按照⽐待采样信号最⾼频率 2 倍以上的频率进⾏采样(AD 转换)。频率在 20 Hz ~ 20 kHz 之间的声⾳是可以被⼈⽿识别的。所以采样频率⼀般为 40kHz 左右,常⽤的⾳乐为 44.1kHz(44100 次/s 采样)、48kHz(48000 次/s 采样) 等。
采样位数
采样位数是指每个采样点能够表⽰的数据范围(纵坐标范围)。
把数据存储成二进制,意味着如果用 n 个二进制位来存储每个幅度值,总共可以表示的数值数量为 。
- 1 bit 代表的采样值大小为 ,采样点数据取值范围就是 0,1。
- 2 bit 代表的采样值大小为 ,采样点数据取值范围就是
- 4 bit 代表的采样值大小为 ,采样点数据取值范围就是
- 16 bit 代表的采样值大小为 ,采样点数据取值范围就是
位数越多,表示得就越精细,声音质量自然就越好,而数据量也会成倍增大。16 bit 是较为常⻅的采样位数。
根据 理解 dB,文章中提到的 dBFS 计算公式
采样位数为 16bits 时候,最大能表示的值为 65535, dBFS 的计算公式为:
这样,最小的 。也就是说 16 位无符号音频的动态范围是 0~-96dBFS
声道数 (channels)
声道数是指⽀持能不同发声的⾳响的个数,常⽤的声道数有单声道 mono,⽴体声 stereo(左声道和右声道)。立体声比单声道的表现力丰富,但是数据量也会翻倍
比特率(bit rate)
比特率,也叫码率,是指在一个数据流中每秒钟能通过的信息量,也可以理解为:每秒钟用多少比特的数据量去表示。原则上,音频位速越高质量越好。单位常为 kbps(kilo bits pre second)。音频数据的比特率文件大小计算公式如下:
bit rate = sample rate * bit depth * channels
例如,音频的相关参数为,采样位宽 16bit,采样率 44100Hz,声道数 2,则该段音频的数据⽐特率则为:44100 * 16 * 2 = 1411.2 kbps
。
所以,sample rate,bit depth 以及 channels 会影响 bit rate 和文件大小
量化
给纵坐标加刻度,根据近似取整数值,使采样得到的点的值都是整数
编码
对量化取得的整数值按⼆进制进⾏编码
采样点 | 采样点 1 | 采样点 2 | 采样点 3 | … | 采样点 N |
hex | 0 | 3 | 5 | … | X |
bin | 00000000 | 00000011 | 00000101 | … | X |
数字信号
把编码得到的 0 和 1 的序列变为⾼低电平的信号。
上述整个模数转换的过程称为:脉冲编码调制 Pulse Code Modulation,简称 PCM。由上⾯的模数转换可知,PCM 格式⽂件存储的内容实际上就是编码得到的序列
PCM ⾳频数据
PCM 是采样量化后的未压缩⾳频数据,由模拟信号经过采样、量化、编码转换成的标准的数字⾳频数据。如果是单声道的⾳频⽂件,采样数据按时间的先后顺序依次存⼊(如果是双声道的话就按照 LRLR 的⽅式存储,存储的时候还和机器的⼤⼩端有关)。⼤端模式如下所⽰。
- PCM 文件 :PCM 原始数据组成的文件
- WAV 文件:文件头 + PCM 原始数据