前言
本节对音频相关知识进行了详细的介绍及讲解。
一、音频基本概念
1、音频的基本概念
①、声音的三要素
声音的三要素:频率、振幅、波形
- 频率:声波的频率,即声音的音调,人类听觉的频率(音调) 范围为 20Hz—20KHz
- 振幅:即声波的响度,通俗的讲就是声音的高低,一般男生的声音振幅(响度) 大于女生。
- 波形:波形决定了其所代表声音的音色。音色不同是因为它们的介质所产生的波形不同
②、音量与音调
声音的本质(音调、音量、音色)
- 音调:频率
- 音量:振幅
- 音色:与材质有关,谐波(不规则的正弦波)
③、几个基本概念
- 比特率:表示经过编码(压缩)后的音频数据每秒钟需要用多少个比特来表示,单位常为 kbps。
- 响度和强度:声音的主观属性响度表示的是一个声音听来有多响的程度。响度主要随声音的强度而变化,但也受频率的影响。总的说,中频纯音听来比低频和高频纯音响一些。
- 采样和采样率:采样是把连续的时间信号,变成离散的数字信号。采样率是指每秒钟采集多少个样本。
④、奈奎斯特采样定律
Nyquist 采样率大于或等于连续信号最高频率分量的 2 倍时,采样信号可以用来完美重构原始连续信号。
2、数字音频
①、采样
所谓的采样就是只在时间轴上对信号进行数字化。根据奈奎斯特定律(也称作采样定律) ,按照比声音最高频率的 2 倍以上进行采样。
人类听觉的频率(音调) 范围为 20Hz–20KHz。所以至少要大于 40KHz。
采样频率一般为 44.1kHz,这样可保证声音达到 20kHz 也能被数字化。
44.1kHz 就是代表 1 秒会采样 44100 次。
②、量化
具体每个采样又该如何表示呢?这就涉及到量化。量化是指在幅度轴上对信号进行数字化。如果用 16 比特位的二进制信号来表示一个采样,那么一个采样所表示的范围即为 [-32768, 32767] 。
下图为音频量化过程:
③、编码
每一个量化都是一个采样,将这么多采样进行存储就叫做编码。
所谓编码,就是按照一定的格式记录采样和量化后的数字数据,比如顺序存储或者压缩存储,等等。
通常所说的音频裸数据格式就是脉冲编码调制(PCM)数据。
描述一段 PCM 数据通常需要以下几个概念:量化格式(位深, 通常 16bit) 、采样率、声道数
对于声音格式,还有一个概念用来描述它的大小,即比特率,即 1 秒内的比特数目,用来衡量音频数据单位时间内的容量大小。
④、其他相关概念
<1>、采样位数
采样位数也叫采样大小或者量化位数。量化深度表示每个采样点用多少比特表示,音频的量化深度一般为 8、16、32 位等。
例如:量化深度为 8bit 时,每个采样点可以表示 256 个不同的量化值,而量化深度为 16bit 时,每个采样点可以表示 65536 个不同的量化值。
量化深度的大小影响到声音的质量,显然,位数越多,量化后的波形越接近原始波形,声音的质量越高,而需要的存储空间也越多;位数越少,声音的质量越低,需要的存储空间越少。
CD 音质采用的是 16 bits。
<2>、通道数
即声音的通道数目, 常见的有单声道和双声道或者立体声道。
- 单声道的声音只能使用一个扬声器发声,或者也可以处理成两个扬声器输出同一个声道的声音,当通过两个扬声器回放单声道信息的时候,我们可以明显感觉到声音是从两个音箱中间传递到我们耳朵里的,无法判断声源的具体位置。
- 双声道就是有两个声音通道,其原理是人们听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果。
记录声音时,如果每次生成一个声波数据,称为单声道;每次生成两个声波数据,称为双声道(立体声)。立体声(双声道)存储大小是单声道文件的两倍。
<3>、音频帧
音频跟视频不太一样,视频的每一帧就是一副图像,但是因为音频是流式的,本身是没有一帧的概念的。
比如对于 PCM 流来说,采样率为 44100Hz,采样位数为 16,通道数为 2,那么一秒的音频固定大小的:44100162 / 8 字节。
但是人们可以规定一帧的概念,比如 amr 帧比较简单,它规定每 20ms 的音频是一帧。
<4>、比特率(码率)
指音频每秒钟播放的数据量,单位为 bit,例如对于 PCM 流,采样率为 44100Hz,采样大小为 16,声道数为 2,那么码率为:44100* 16 * 2 = 1411200 bps。
<5>、音频文件大小的计算:
文件大小 = 采样率 * 录音时间 * 采样位数 / 8 * 通道数。
<6>、PCM 流
PCM 流就是原始收录声音时,数据会保存到一串 buffer 中,这串 buffer,就采用了 PCM 格式存储的。
通常把音频采样过程也叫做脉冲编码调制编码,即 PCM(Pulse Code Modulation) 编码,采样值也叫 PCM 值
编码过程:模拟信号 -> 抽样 -> 量化 -> 编码 -> 数字信号
3、音频处理基础
①、噪声抑制(Noise Suppression)
手机等设备采集的原始声音往往包含了背景噪声,影响听众的主观体验,降低音频压缩效率。以 Google 著名的开源框架 Webrtc 为例,我们对其中的噪声抑制算法进行严谨的测试,发现该算法可以对白噪声和有色噪声进行良好的抑制。满足视频或者语音通话的要求。其他常见的噪声抑制算法如开源项目 Speex 包含的噪声抑制算法,也有较好的效果,该算法适用范围较 Webrtc 的噪声抑制算法更加广泛,可以在任意采样率下使用。
②、回声消除(Acoustic Echo Canceller)
在视频或者音频通话过程中,本地的声音传输到对端播放之后,声音会被对端的麦克风采集,混合着对端人声一起传输到本地播放,这样本地播放的声音包含了本地原来采集的声音,造成主观感觉听到了自己的回声。
③、自动增益控制(Auto Gain Control)
手机等设备采集的音频数据往往有时候响度偏高,有时候响度偏低,造成声音忽大忽小,影响听众的主观感受。
自动增益控制算法根据预先配置的参数对输入声音进行正向/负向调节,使得输出的声音适宜人耳的主观感受。
④、静音检测(Voice Activity Detection)
静音检测的基本原理:计算音频的功率谱密度,如果功率谱密度小于阈值则认为是静音,否则认为是声音。静音检测广泛应用于音频编码、AGC、AECM 等。
⑤、舒适噪声产生(Comfortable Noise Generation)
舒适噪声产生的基本原理:根据噪声的功率谱密度,人为构造噪声。
广泛适用于音频编解码器。
它的应用场景:完全静音时,为了创造舒适的通话体验,在音频后处理阶段添加随机白噪声。
4、音频使用场景
在现实生活中,音频(audio)主要用在两大场景中:语音(voice)和音乐(music)。
音频开发的主要应用:
- 音频播放器
- 录音机
- 语音电话
- 音视频监控应用
- 音视频直播应用
- 音频编辑/处理软件(ktv 音效、 变声, 铃声转换)
- 蓝牙耳机/音箱
音频开发的具体内容:
- 音频采集/播放;
- 音频算法处理(去噪、VAD 检测、回声消除、音效处理、功放/增强、混音/分离, 等等);
- 音频的编解码和格式转换;
- 音频传输协议的开发(SIP, A2DP、 AVRCP, 等等);
5、常见音频格式
- WAV :压缩率低
MIDI(Musical Instrument Digital Interface):又称作乐器数字接口, 是数字音乐/电子合成乐器的统一国际标准
MP3(MPEG-1 Audio Layer 3):MP3 能够以高音质、低采样率对数字音频文件进行压缩。应用最普遍
MP3Pro:MP3Pro 可以在基本不改变文件大小的情况下改善原先的 MP3 音乐音质。它能够在用较低的比特率压缩音频文件的情况下,最大程度地保持压缩前的音质。
WMA (Windows Media Audio):WMA 格式是以减少数据流量但保持音质的方法来达到更高的压缩率目的, 其压缩率一般可以达到 1:18
RealAudio:最大的特点就是可以实时传输音频信息,尤其是在网速较慢的情况下,仍然可以较为流畅地传送数据,因此 RealAudio 主要适用于网络上的在线播放
Audible:拥有四种不同的格式: Audible1、2、3、4。格式 1、2 和 3采用不同级别的语音压缩,而格式 4 采用更低的采样率和 MP3 相同的解码方式,所得到语音吐辞更清楚,而且可以更有效地从网上进行下载
AAC:高级音频编码的缩写,AAC 的音频算法在压缩能力上远远超过了以前的一些压缩算法(比如 MP3 等)。它还同时支持多达 48 个音轨、15 个低频音轨、更多种采样率和比特率、多种语言的兼容能力、更高的解码效率。 总之,AAC 可以在比 MP3 文件缩小 30% 的前提下提供更好的音质。
Ogg Vorbis:它是完全免费 、开放和没有专利限制的,同样位速率(Bit Rate)编码的 OGG 与 MP3 相比听起来更好一些
APE:是一种无损压缩音频格式,在音质不降低的前提下,大小压缩到传统无损格式WAV 文件的一半
FLAC(Free Lossless Audio Codec):是一套著名的自由音频无损压缩编码,其特点是无损压缩。