声音的采集与量化【音频基础知识】

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

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


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

原创文章,作者:ZEGO即构科技,如若转载,请注明出处:https://market-blogs.zego.im/reports-technique/430/

(0)
上一篇 5月 19, 2022 10:28 上午
下一篇 5月 19, 2022 10:40 上午

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注