声音的采集与量化【音频基础知识】
2022/05/19

我们现在知道,声音可以从三要素的维度来进行描述、区分,但仅仅是描述还远远不够,我们需往实际应用层面继续前进,要对声音进行应用开发,而应用开发的前提是要将其进行采集和存储。在空气或固液体等介质中以波形式传播的声音,如何才能被捕获,并转换为可在电子设备、网络链路中传输的数据呢?

1 声音的采集

最常见的音频采集方式是使用麦克风、话筒等拾音设备进行录制。我们每天使用的手机上就有多个麦克风设备,比如用于日常电话语音的底部麦克风、视频通话的顶部麦克风、便捷录音的背部麦克风等等。这些拾音设备里有一层薄且敏感的振动膜(类似于人耳内的鼓膜),在不同振幅、频率声波的影响下,振动膜会同步振动,并配合其他关联模块将振动转换为变化的电流。如此,便把将声波的振动模式记录为了连续的电学模拟信号,也即记录声音的关键要素特征,“捕获”了声音。

ZEGO-SDK 使用什么音频采集方式呢?

ZEGO-SDK 在不同的平台系统上,会使用对应的系统 API(比如 Windows 上的 CoreAudio、Android上的AudioRecord/OpenSLES、iOS 上的 AudioUnit 等)和其默认的音频采集设备。

对于存在多个采集设备的场景,SDK 提供了枚举、设置设备的 API 接口,方便开发者按需选择。至于如何调用系统 API 与设备通信、如何获取数据并处理,均由 SDK 完成,开发者无需关注底层细节,可以专注于业务需求的实现。当然,ZEGO-SDK 也支持开发者自定义实现音频采集模块,具体的音频采集源、采集参数、预处理可由开发者自行灵活实现,SDK 仅提供作为音频数据入口的 API,开发者调用 API 传入音频数据即可。

2 音频信号的数字化

前面我们了解到,声音可以被麦克风等设备采集、转换为电学模拟信号。模拟信号,意味着它在时间维度和幅度维度上,都是连续的,可以被无限分割为任意小的点,无法穷举。听起来似乎比较复杂且难以处理?是的,其实不仅我们觉得如此,计算机也有“同感”。虽然计算机常常和“智能”挂钩,但它其实非常“单纯”,只能识别处理“0”、“1”形式的数字信号(区别于模拟信号,数字信号是离散的、有限个、可穷举的)。

所以,为了“照顾”单纯的计算机,我们还需要将设备采集到的模拟信号“翻译”为数字离散态。也即,将音频模拟信号转换为音频数字信号,这个过程称为音频模拟信号的数字化(也叫模数转化,A/D转换),整个过程主要包括采样、量化、编码等步骤。下面,我们来具体了解一下。 如下图,红色波形是一段时间上(假设为1s)的模拟信号波。我们仍取水平横轴为时间维度、纵轴为幅度维度,一步步将其转换为数字信号。


第一步,采样:以一定采样率,在时间轴上对模拟信号进行数字化。 首先,我们沿着时间轴,按照固定的时间间隔 T(假设 T=0.1s),依次取多个点(如图中 1~10 所对应波上的点)。此时 T 称为取样周期,T 的倒数为本次取样的采样率(f=1/T=10Hz),f 即表示每秒钟进行采样的次数,单位为赫兹(Hz)。显然,采样率越高、单位时间的采样点越多,就能越好地表示原波形(如果高频率、密集地采集无数个点,就相当于完整地记录了原波形)。

第二步,量化:以一定精度,在幅度轴上对模拟信号进行数字化。 完成采样后,我们接下来进行音频数字化的第二步,量化。采样是在时间轴上对音频信号进行数字化,得到多个采样点;而量化,则是在幅度方向上进行数字化,得到每个采样点的幅度值。

如图 2,我们设定纵轴的坐标取值范围为 0 ~8,得到每个采样点的纵坐标(向上取整),这里的坐标值即为量化后的幅度值。因为我们将幅度轴分为了 8 段,有 8 个值用于量化取整,即本次量化的精度为 8。显然,如果分段越多,则幅度的量化取值将越准确(取整带来的误差就越小),也能越好的表示原波形。对于幅度的量化精度,有一个专有术语描述 — 位深,我们后面会详细说明。

图2


第三步,编码:按特定格式,记录采样/量化后的数据。 经过量化后,我们得到了每个采样点的幅度值。接下来,就是音频信号数字化的最后一步,编码。编码是将每个采样点的幅度量化值,转化为计算机可理解的二进制字节序列。

如图 3,参照编码部分的表格,样本序号为样本采样顺序,样本值(十进制)为量化的幅度值。而样本值(二进制)即为幅度值转换后的编码数据。最终,我们就得到了“0”、“1”形式的二进制字节序列,也即离散的数字信号。这里得到的,是未经压缩的音频采样数据裸流,也叫做PCM 音频数据(Pulse Code Modulation,脉冲编码调制)。实际应用中,往往还会使用其他编码算法做进一步压缩,以后的文章我们会再展开讨论。

图3


至此,我们基本走完了音频模拟信号数字化的全流程。它包括了采样、量化、编码三个主要步骤,通过在时间轴和幅度轴上的数字化,最终得到了音频信号的二进制形式编码。终于,单纯的计算机将可以理解、处理音频信号了,这迈出了音频数字化应用的重要一步。 就像声音有三要素一样,音频数字信号也有几个需要我们关注的基础属性,分别是采样率、采样位深和声道数。这些属性是影响音频数字信号质量的关键指标(我们常说的音质),也称为音频数字信号的质量三要素。在讲解数字化的过程中,我们已经对这些属性有所提及,接下来需要再详细学习下。

扫一扫,获取更多服务与支持
热门推荐
H.264 与 H.265 视频编解码器的区别,哪个更好?
2024/07/26
直播产品中的“六边形战士”来了!ZEGO 超低延迟直播,高质量带来新增长!
2024/07/23
什么是抖动?如何使用抖动缓冲区来减少抖动
2024/07/22
热门标签
AI 降噪
AI课堂
ExpressSDK
MSDN
RTI
SEI
webrtc
ZIM
互动白板
即构融资
在线KTV
在线K歌
屏幕共享
录屏采集
数智人
直播技术
范围语音
行业报告
语聊房
语音社交
超分
音视频
音视频开发
音视频技术
音频编码
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们
关注我们
获得更多服务与支持了解价格与优惠 扫码关注我们