学习这篇文章之前,你如果有计算机相关的专业肯定是更好的,毕竟会涉及到一些专业术语,例如信号等?
有没有人觉得很奇怪,计算机是如何存储到计算机的呢?如果你有基础,你应该知道声音属于一种模拟信号,具体化就是我们课上学的那些三角函数等,但是我们计算机存储的只能是二进制编码吧,这个大家应该了解,那么是如何将声音这种模拟信号转换成二进制呢,这里有个概念叫做转换,也就是将模拟信号(Analog Signal) 转成数字信号(Digital Signal)进行存储。这一个过程,我们称为音频数字化
- 模拟信号:模拟信号称为连续信号,它在一段连续的时间范围内可以在任意瞬间呈现为任意数值。
- 数字信号:自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。
模拟-数字示意图.png
脉冲编码调制(PCM,Pulse Code Modulation)
这个概念我是从大学的信号与系统上面接触的,当时候可以是说听说到一脸蒙蔽的,pcm属于音频数字化的一种常见技术方案,里面涉及到几个过程,分别是采样->量化->编码,具体地说,采样就是把输入的模拟信号按适当的时间间隔得到各个时刻的样本值.量化是把经采样测得的各个时刻的值用二进码制来表示,编码则是把量化生成的二进制数排列在一起形成顺序脉冲序列
采样-量化.png
-
采样:在某些特定的时刻对模拟信号进行测量叫做采样,得到的信号称为离散时间信号
-
采样率:每秒采集的样本数量,称为采样率(采样频率,采样速率,Sampling Rate),eg 20.1Hz表示1秒钟采集201000个样本,采样频率最直观的影响是什么?是影响声音的的评率范围表现力,采样评率越高,能表现的评率范围就越大。44.1KHz采样频率,可以表现的频率范围是0Hz-22050Hz;48KHz采样频率可以表现的频率范围就是0Hz-24000Hz;96KHz采样频率可以表现的频率范围是0Hz-48000Hz。人耳能听到的平均频率范围,大概是20Hz-20000Hz。
-
采样定理:采样定理
根据(奈奎斯特–香农采样定理,Nyquist-Shannon sampling theorem)得知:只有当采样率高于声音信号最高频率的**2**倍时,才能把采集的声音信号唯一地还原成原来的声音。人耳能够感觉到的最高声音频率为20000Hz,因此为了满足人耳的听觉要求,需要至少每秒进行40000次采样(40kHz采样率)。这就是为什么常见的CD的采样率为44.1kHz。电话、无线对讲机、无线麦克风等的采样率是8kHZ
- 量化(Quantization):将每一个采样点的样本值数字化
- 位深度(采样精度,采样大小,Bit Depth):使用多少个二进制位来存储一个采样点的样本值。位深度越高,表示的振幅越精确。常见的CD采用16bit的位深度,能表示65536(216)个不同的值。DVD使用24bit的位深度,大多数电话设备使用8bit的位深度。另外我们常见的16Bit(16比特),可以记录大概96分贝的动态范围。那么,您可以大概知道,每一个比特大约可以记录6分贝的声音。同理,20Bit可记录的动态范围大概就是120dB;24Bit就大概是144dB。
假如,我们定义0dB为峰值,那么声音振幅以向下延伸计算,那么,CD音频可的动态范围就是“-96dB~0dB。”,依次类推,24Bit的HD-Audio高清音频的的动态范围就是“-144dB~0dB。”。由此可见,位深度较高时,有更大的动态范围可利用,可以记录更低电平的细节
综合上面的位深度和采样,可以看到一些这样的基本参数概念
16Bit 44.1KHz,代表这个数字音频能够表现“96dB的动态范围”和“0赫兹-22050赫兹”的频率范围;
24Bit 48KHz,代表这个数字音频能够表现“144dB的动态范围”和“0赫兹-24000赫兹”的频率范围。
采样率位深度.png
- 编码将采样和量化后的数字数据转成二进制码流。
扩展知识
声道(Channel)
- 单声道(mono):信号一次产生一组声波数据。
- 双声道(stereo):一次产生两组声波数据。双声道在硬件中占有两条线路,一条是左声道,一条是右声道。
立体声不仅音质、音色好,而且能产生逼真的空间感。但是立体声数字化后所占的空间比单声道多一倍。
以CD音质为例,量化格式为16bite,采样率为44100,声道数为2。这些信息描述CD音质。那么可以CD音质数据,比特率bit/s(单位:bps):
44100 * 16 * 2 = 1411.2Kbps
那么一分钟的,这类CD音质数据需要占用存储空间:
1411.2Kbps* 60 /8/1024 = 10.34MB,可以看出一分钟接近10M,这个用户体验不太友好,如果又想在不改变音频石长的前提,又要降低音频数据的大小,我们可以考虑这两种方法:1.降低采样率,2.压缩。
但是如果降低采样率,通过上面的采样率深度图可以看出,会导致音频质量下降,用户体验变差,因此首选压缩方案
比特率
- 比特率(Bit Rate),指单位时间内传输或处理的比特数量,比特每秒(bit/s或bps),还有:千比特每秒(Kbit/s或Kbps)、兆比特每秒(Mbit/s或Mbps)、吉比特每秒(Gbit/s或Gbps)、太比特每秒(Tbit/s或Tbps)。
采样率44.1kHZ、位深度16bit的立体声PCM数据的比特率是多少?
pcm比特率 = 采样率 * 位深度 * 声道数 = 1411.2Kbps,通常,采样率、位深度越高,数字化音频的质量就越好。从比特率的计算公式可以看得出来:比特率越高,数字化音频的质量就越好。
信噪比(Signal-to-noise ratio,SNR,S/N,信噪比)
指信号与噪音的比例,用于比较信号的强度与背景噪音的强度,以分贝(db)为单位,位深度限制了信噪比的最大值
位深度 | 信噪比 |
---|---|
4 | 24.08 |
8 | 48.16 |
11 | 66.22 |
12 | 72.24 |
16 | 96.33 |
18 | 108.37 |
20 | 120.41 |
24 | 144.49 |
32 | 192.65 |
48 | 288.99 |
64 | 385.32 |
音频编码解码
编码
PCM数据是未经压缩的原始音频数据,为了便于存储和传输,一般会使用某种音频编码对其进行编码压缩,然后再存成某种音频文件格式
音频编码.png
CD音质的数据采样,每分钟需要存储空间为10.34MB。从存储的角度或者网络实时传播的角度,这个数据量都是太大了,对于存储和传输都是非常具有挑战的。所以我们需要通过压缩编码。
压缩编码的基本指标就是 压缩比,压缩比 通常小于1(如果等于或者大于1,是不是就失去的压缩的意义了,压缩目的就是为了减少数据体量)。压缩算法分为2种,有损压缩 和 无损压缩。
无损压缩
- 解压后可以完全还原出原始数据
- 压缩比小,体积大
有损压缩
- 解压后不能完全还原出原始数据,会丢失一部分信息
- 压缩比大,体积小
- 压缩比越大,丢失的信息就越多,还原后的信号失真就会越大
注意:对于有损压缩音频,不同的压缩算法,及时比特率相等,也会导致音质结果完全不同
典型代表:96kbps的WMA音频格式的音质明显要比96kbps的MP3音质好。为什么会这样呢?因为不同的压缩算法,对数据的利用率不同而造成的差异。再举例,假如MP3压缩至48kbps以下,已经惨不忍睹,而如果是AAC音频格式,同样是48kbps的位速下,音质明显比MP3好
而对于无损压缩音频,即使比特率完全不同,但是最后的音质是相同的
比如把同一个WAV文件分别压缩成FLAC格式和APE格式,得到的文件,位速是不太相同的,但是音质却是一样的。即使是同一种格式,压缩级别不同,位速也完全不同,可是最后的结果,音质还是一样(但编码解码时,CPU占用率不同,编码时间也不同)。
压缩编码的原理实际上就是压缩冗余的信号。冗余信号就是指不能被人耳感知的信号。包括人耳听觉范围之外的音频信号以及被掩盖掉的音频信号
解码
前面经过将pcm数据编码之后,如果这个时候需要播放音频的话,得先解码(解压缩)出pcm数据,然后再进行播放
音频解码.png
音频编码和文件格式
编码分类
-
波形编码
波形编码:不利用生成音频信号的任何参数,直接将时间域信号变成数字信号,使重构的语音波形极可能与原始语音信号的波形性质一致,波形编码的基本原理:在时间轴上对模拟语音信号按一定的速率抽样,然后将幅度样本分层量化,并用代码表示 -
优点:波形编码方法简单,易于实现,适应能力强并且语音质量好
-
缺点:压缩比相对比较低,导致较高的编码率。
-
参数编码
参数编码:从语音 波形信号 中提取生成语音的参数,使用这些参数通过语音生成模型重构出语音,使重构的语音信号尽可能地保持原始语音信号的语意。也就是说,参数编码是把语音信号产生的数字模型作为基础,然后求出数字模型的模型参数,再按照这些参数还原数字模型,进而合成语音。 -
优点:编码率较低,保密性好。
-
缺点:可能会失真比较大,音质低。
混合编码
混合编码是指同时使用两种或两种以上的编码方法进行编码。这种编码方法克服了波形编码和参数编码的弱点,并结合了波形编码高质量和参数编码的低编码率,能够取得比较好的效果。
注意:音频文件格式并不等于音频编码,比如WAV是一种音频文件格式,但是不是一种编码方式,而FLAC即是一种文件格式,又是一种编码
音频编码 | 无损压缩 | 文件扩展名 |
---|---|---|
Monkey's Audio | ✅ | .ape |
FLAC(Free Lossless Audio Codec) | ✅ | .flac |
ALAC(Apple Lossless Audio Codec | ✅ | .m4a/.caf |
MP3(MPEG Audio Layer III) | ❎ | .mp3 |
WMA(Windows Media Audio) | ❎ | .wma |
AAC(Advanced Audio Coding) | ❎ | .acc/.mp4/.m4a |
Vorbis | ❎ | .ogg |
Speex | ❎ | .spx |
Opus | ❎ | .opus |
Ogg | .ogg | |
WAV(Waveform Audio File Format) | .wav | |
AIFF(Audio Interchange File Format) | .aiff、.aif |
无损
- MonKey's Audio 是一种无损的音频编码和文件格式,文件扩展名为.ape,压缩率一般在55%左右
- FLAC(Free Lossless Audio Codec),是一种无损的音频编码和文件格式,文件扩展名为.flac.虽然压缩率稍微比不上MonKey's Audio,但是FLAC技术更加先进,占用资源更低,有更多的平台及硬件产品支持FLAC。
- ALAC
ALAC(Apple Lossless Audio Codec),是由Apple开发的一种无损的音频编码,文件扩展名为.m4a、.caf。
有损
-
MP3(MPEG Audio Layer III),是非常流行的一种有损音频编码和文件格式,文件扩展名为.mp3。
-
WMA:WMA(Windows Media Audio),是由Microsoft开发的音频编码和文件格式,文件扩展名为.wma。包括4种类型:
-
WMA:原始的WMA编解码器,作为MP3的竞争者,属于有损音频编码
-
WMA Pro:支持更多声道和更高质量的音频,属于有损音频编码
-
WMA Lossless:属于无损音频编码
-
WMA Voice:属于有损音频编码
-
AAC:AAC(Advanced Audio Coding),是由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发的有损音频编码和文件格式,压缩比通常为18:1
AAC被设计为MP3格式的后继产品,通常在相同的比特率下可以获得比MP3更高的声音质量,是iPhone、iPod、iPad、iTunes的标准音频格式。
AAC编码的文件扩展名主要有3种: -
.acc:传统的AAC编码,使用MPEG-2 Audio Transport Stream(ADTS)容器
-
.mp4:使用了MPEG-4 Part 14的简化版即3GPP Media Release 6 Basic(3gp6)进行封装的AAC编码
-
.m4a:为了区别纯音频MP4文件和包含视频的MP4文件而由Apple公司使用的扩展名
- Apple iTunes对纯音频MP4文件采用了.m4a文件扩展名
- M4A的本质和音频MP4相同,故音频MP4文件可以直接更改文件扩展名为.m4a
-
Voris
Vorbis,是由Xiph.Org基金会开发的一种有损音频编码。通常以Ogg作为容器格式,所以常合称为Ogg Vorbis,文件扩展名为.ogg。 -
Speex
Speex,是由Xiph.Org基金会开发的一种有损音频编码和文件格式,文件扩展名为.spx。 -
Opus
Opus,是由Xiph.Org基金会开发的一种有损音频编码和文件格式,文件扩展名为.opus。用以取代Vorbis和Speedx。经过多次盲听测试,在任何给定的比特率下都比其他标准音频格式具有更高的质量,包括MP3、AAC。
文件格式
-
Ogg
Ogg是一种多媒体文件格式,由Xiph.Org基金会所维护,可以纳入各式各样的音视频编码(音频、视频都可以),文件扩展名常为.ogg。
Ogg常用的音频编码有: -
有损压缩:Speex、Vorbis、Opus
-
无损压缩:FLAC
-
未压缩:PCM
-
WAV
WAV文件格式.gif
WAV(Waveform Audio File Format),是由IBM和Microsoft开发的音频文件格式,扩展名是.wav,通常采用PCM编码,常用于Windows系统中。WAV的文件格式如下图所示,前面有44
WAV文件格式详细.gif -
NumChannels: 声道数
-
SampleRate:采样率(Hz)
-
ByteRate:每秒多少个字节(Byte/s)
-
BitsPerSample:位深度
-
AIFF
AIFF(Audio Interchange File Format),由Apple开发的音频文件格式,扩展名是.aiff、.aif。跟WAV一样,通常采用PCM编码,常用于Mac系统中。
网友评论