1. 介绍
这里说的音频编码(或者说音频格式)指的是现实中的声音保存在计算机中的形式,模拟信号经过数字化转换后,才能保存到计算机中。数字化的过程叫 PCM(Pulse-code modulation, 脉冲编码调制), 形成的最原始的编码也叫 PCM
。
关于音频有以下几个属性。
1.1. 采样率(sample rate)
原始声音的模拟信号是一系列的高低压电平,数字化的时候,使用固定频率的脉冲去采集某一时刻的电压大小(描述不准确),就是音频采样;比如使用 2Hz 的频率去采样,就是1s对原始音频信号取 2 个值,采样率就2Hz, 当然通常情况下不会这么慢,这时候如果播放出来,就是哔哔
两声,不是连续的声音了。常见的采样率是 8kHz, 44.1kHz(为什么是这个值) 等。
可以看到,采样率越高,声音越接近原始音频,最后的音频文件也越大。
1.2. 位深(sample depth)
描述1个采样点需要的位数,如果使用2位,那最多就是4种声音;如果使用8位,就可以表达 2^8=256
种声音。常见的位深有 8,16,20,24,32 等。位深越大,声音越真实。
1.3. 轨道数(track)
一般1个麦克风采样1个轨道的音频(描述不准确),但如果使用立体声,会有多个采样源,这样一个音频流就可以包含多轨,更真实的描述声音。
1.4. 码率(bits rate)
描述1s音频数据的大小,这个跟压缩有关。未压缩的格式可以计算出来码率,比如 8k 采样率,16bits 位深, 单轨道,则码率为 8000 * 16 = 128000bps
, 也就是 128kbps
。如果是压缩后的,可能会有 CBR, ABR, VBR
几种码率类型,
- CBR: Constant bitrate, 恒定码率, 码率不会变,压缩率较小;
- VBR: Variable bitrate, 可变码率, 会根据声音复杂度变化,
- ABR: Average bitrate, 平均码率,介于CBR 和 VBR, 会根据前后内容调节码率,但算法较复杂;
声音经过采样之后,为了方便存储和传输,会转换成各种格式,下面是一些格式介绍。
2. 未压缩格式
格式 | 说明 |
---|---|
WAV(Waveform Audio File) | 微软出品, 保存所有的原始数据,支持高音质,自带时间编码, 音频工作者的理想格式。 |
AIFF(Audio Interchange File Format) | Apple出品,不包含时间, 编辑和混合的时候不适合 |
DSD(Direct Stream Digital) | 非常大,需要高级的音频处理系统 |
PCM(Pulse-Code Modulation) | CD 和 DVD 中使用, 在DSD出现之前,这是最接近原始模拟声音的格式了 |
PCM(也说LPCM)是 CD 中的标准,在计算机中存储的时候,通常是在容器中: WAV,AIFF,AU
或者原始音频格式,
但也不是必须的。与 PCM
类似的未压缩格式有 PDM(Pulse-density modulation, DSD格式)
, PAM(Pulse-amplitude modulation)
。
3. 无损压缩
格式 | 说明 |
---|---|
FLAC(Free Lossless Audio Codec) | 开源 |
ALAC(Apple’s Lossless Audio Codec) | 只在 Apple 上用 |
4. 有损压缩
格式 | 说明 |
---|---|
MP3 (MPEG-1 Audio Layer III) | 体积小,最大支持16bits位深,音质低 |
AAC(Advanced Audio Coding) | 同等体积下比MP3音质更好, 应用范围广,适合流媒体 |
Ogg Vorbis | 开源, Spotify 使用, 适合流媒体 |
5. 说明
5.1. PCM 和 LPCM 的关系
PCM(Pulse-code modulation) 脉冲编码调制是一种模拟信号转数字信号的技术,也是音频采样中最常用的技术,其他技术还有 PDM(Pulse-density modulation) 和 PAM(Pulse-amplitude modulation)。LPCM(Linear PCM) 是PCM的一种特殊形式,