阅读 107

音频世界入门


简介

    本文的目的是想让各位同学系统的了解下音频世界,从声音产生、传播、采集和分析到封装成音频文件,懂的地方可跳过。

声音的产生

    声音是一种现象,指的是声波被人或动物听觉器官所感知的波动现象。声波是一种过程,是物体的震动引起周围介质的震动传播的过程,所以声音和声波都不是物质,和颜色,时间一样只是一种概念。平时生活中常常会有人搞混声音和声波这两种概念,声音是主观的,声波是客观的,掩耳盗铃这个故事里的小偷书读得少不懂这个道理,他捂住了自己的耳朵后确实听不到声音,但不代表声波不存在。

声音的传播

    声波是一种机械波,物体震动会引起周围介质的震动,介质的分子会相互碰撞,并传递能量,类似牛顿摆。因此,介质越硬——压缩越困难——声音传播得越快。例如,比起空气,声音在水中传播得更快,在坚硬的固体(如钻石)中,声音传播的速度又比水中传播的还快。这也就是为什么在宇宙中或月球上听不到声音的原因,因为没有介质就无法传播。(教科书上写的宇宙和月球没有介质,实际上也许有一些,虽然科学是严谨的,但不要钻牛角尖。这里提一个学习策略,学习的时候不要因为一个点没弄懂就卡住,然后各种找资料想去弄明白它,如果不影响你接下来的学习,把这问题记下来,然后继续往下学,等你知识储备足够了,前面的点会迎刃而解的。因为我们传递知识的时候,为了方便理解,有时候会把问题简单化,可能会和实际不符合,但不影响整体。我尽量真实,遇到需要简化的情况我会提的)

声音的采集和量化

    采集只讲个大概,了解下就行,因为未来主要是对量化后的数字信号进行算法研究。举个压电拾音器采集的例子,压电拾音器可以利用振膜接受空气振动信号,振膜与固定的平面电极之间形成一个电容,两者之间的距离变化会导致其电容容量的变化。在电容两端施加固定频率及大小的电压,通过电容的电流就会变化,对这个电流信号量化后会得到方便计算处理的音频信号(数字信号)。声道数,采样频率,量化位数。
    声道数:分为单声道和双声道,双声道其实就是两个单声道,也叫立体声道,立体声的数据比单声道数据的大一倍,其实就是两个采样器模拟人耳对两个方向进行采样,我们听歌的时候就是一只耳朵听一个采样器采集的声音来营造立体感。
    采样频率:每秒从连续信号中提取并组成离散信号的采样个数,单位是赫兹(HZ)。采样频率要至少高于信号频率的2倍才能采集到这个信号,这句话现在不理解没关系,看完下面的”声音的分析“小节,你们再好好想想,简单提一下,如果没有2倍的话,采集的数据就无法形成波形。标准采样频率是44.1kHz,因为我们人耳听音范围是20HZ到20kHZ,所以取样率至少应该大于40kHz,为了留一点安全系数,再考虑到工程上的习惯,最终选择了44.1kHz这个数值。(理论上采样频率越高越好,但是没必要,越高会导致音频数据越大,对音频文件的传输和存储都是一种负担。)
    量化位数:量化位是对模拟音频信号的幅度轴进行数字化,它决定了模拟信号数字化以后的动态范围。比如现在我录了一段声音,假设这声音的音量刚刚好没超出我录音器的采集范围(可能有人会问,如果超出了会怎样?答案是,因为超出了最大值,所以超出的部分会全部用最大值表示,这会造成音频数据丢失)。如果是按照8位量化,那么刚刚那段声音最大的振幅就用2^7-1表示,也就是127(因为第一位是符号位,用来表示正负值,所以只有7位能表示数值),如果是按照16位量化,那么刚刚那段声音最大的振幅就用2^15-1表示,也就是32767。看到这里大家应该有所领悟,8位的127实际上和16位的32767最终用播放器播出来的声音是一样大的。(理论上量化位数越大越好,但是也没必要,理由和采样频率一样,浪费存储空间,看下面的图,不要管横的时间轴,这是采样率决定的,主要看纵轴,幅值被量化后会因为精度的原因会从上下两个点选择最近的点,造成与原数据的偏差,这会影响最终播放器播出来的音质)

幅值量化偏差图


    下面这幅图展示的就是一段声音被采样量化后按照时间顺序呈现出来的样子,接下来我会教大家怎么理解这幅图。

时域音频波形图

声音的分析

    为了方便分析,我重新录了一段声音,用软件把音频波形再切分的小块一点,等分切。如下图所示,我把音频分为5块,红蓝绿黄粉,假如这段声音我说的是“各位同学好”,并且是匀速的说的,那么只播放红色的音频,大家就会听到“各”,我们放大第一块红色的来分析。(不要纠结我这里的坐标轴的单位,就理解成横轴时域,纵轴振幅就行,以后讲算法的时候会说)


时域音频波形图- 切分为红蓝绿黄粉


红色的时域音频波形图 (放大了上图中红色部分的数据)

    看到这幅图很多人会疑问,平时听到的各种复杂的声音为什么都是这种上下波动的数据?这样的数据又是如何承载丰富多彩的声音的呢?不要急,这两个问题接下来会一个个解释。
    这一小段先解释为什么声音是这种上下波动的数据,从上图这块红色的时域音频波形图中我们会发现音频数据是上下波动的,这正好反映了声波是由于物体往复震动而产生这一物理事实,生活中就有很多例子,例如蚊子的“叫声”,其实是翅膀震动(煽动翅膀)发出的声波,大约是每秒煽动600次翅膀,也就是600赫兹(翅膀从抬起到落回抬起时的位置算一次,翅膀的抬起和落下对应震动的往和复,也对应波形图上的一个周期,抬起翅膀的时候是波谷,落下时是波峰,周期怎么看后面会说),因为人的听觉范围是20赫兹到2w赫兹之间,所以人可以听到蚊子翅膀煽动的声音。像蝴蝶这种每秒只有5,6次的我们是听不到的。(鸟煽动翅膀的声音实际上是翅膀与空气摩擦产生的声音,并不是翅膀煽动的声音。而昆虫翅膀与空气也有摩擦但很小,主要听到的还是翅膀煽动的声音)。所以很多时候我们都是通过采集并分析声音的频率来反推出物体震动次数的。


黑色线是基波波形图 
白色线是谐波波形图

     这一小段解释这些波动的数据是如何承载丰富多彩的声音。因为声波是机械波,所以当多个声音同时发出时,最终传递到我们耳朵或录音设备时是一种复合波。也就是我们采样到的波形是多个声源相互作用后的结果。(那有人就会想到这样声音会因为相互作用而损失吗?答案是基本不会,除非产生干涉现象。波的干涉,衍射现在先不说,另外开篇讲)。实际上,不管是一个人说话,还是单个乐器演奏发出来的声音本身就是一种复合波,这里要说一个概念,现实中我们听到的声音大部分都是由多种正弦波叠加而成的复合波,当然现实中也不是没有单个正弦波的声音的例子,敲击音叉后,等个几秒,音叉稳定共振后产生的声波可以说是单个正弦波。用傅立叶变换可以把这些叠加的正弦波从我们采集到的这个复合波中分离出来,为了方便后面的讲解,这些叠加的正弦波中,频率最小的是基波,其他的统一叫谐波,如果某个谐波的频率是基波2倍,就叫二次谐波,依此类推。(傅立叶变换以后讲算法再说吧)
    基波:基波是指在复杂的周期性振荡中与该振荡最长周期相等的正弦波分量,相应于这个周期的频率称为基波频率。平时我们说某段声音的频率都是指的这段声音的基波的频率。
    谐波:谐波是指对周期性非正弦交流量进行傅里叶级数分解所得到的大于基波频率整数倍的各次分量,通常称为高次谐波。
    我们再来看红色这个波形图,这是一个复合波,复合波的形状是千奇百怪的,我这个还算比较工整,首先要找出基波,也就是黑色线画出来的,这个正弦波的周期和频率就一目了然了。基波的频率也就是这段复合波的频率。实际上基波频率是不需要用肉眼观察画出来分析的,这里我是为了让你们方便理解就手画了,后面讲傅立叶变换再说。

音调、响度与音色

    如果是之前没有乐理知识基础的同学,这一小节请认真学习。音调、响度与音色是乐音的三要素,下面是一般音乐老师会教大家的关于三要素的概念。
    音调:又叫音高。物体振动的快,发出声音的音调就高。振动的慢,发出声音的音调就低。
    响度:又称音量。人耳感受到的声音强弱,它是人对声音大小的一个主观感觉。
    音色:是指声音的感觉特性,根据不同的音色,即使。在同一音高和同一声音强度的情况下,也能区分出是不同乐器或人发出的。
    接下来我要告诉大家这三要素在我们采集的音频数据中对应起来的。
音调对应的是基波的频率,频率越大声音越尖锐刺耳,频率越小声音越低沉浑厚。
响度对应的是声波时域图中的纵坐标,也就是振幅,频率不变的情况下,振幅越大响度越大。还有因为响度是主观感觉,人耳对于不同频率的敏感程度不太一样,细节如下图所示。

人耳对声音的响度在不同频率的敏感程度图

    音色对应的是不同成分的谐波,所以虽然基波相同,但是由于谐波不同,最终合成的波形也会不一样,例如下图所示。下面两个音频信号有相同的基波和振幅,但是谐波组成不同。


相同基波和振幅,但谐波不同的音频信号时域波形图


音频的数据封装

音频文件格式常见的有WAV,MP3,AVI。讲一个让大家了解下,剩下的可以自己去学。虽然MP3更普遍点,但因为WAV是无损的,方便后面的音频算法学习,所以我讲一下WAV。WAV文件由3个区块组成:RIFF, Format和Data。

RIFF区块
Format区块
Data区块

Data区块里ID和Size后面这些音频数据再详细说一下,主要分为单声道和双声道两种,以该文件为例,这个文件的BitsPerSample是16,所以每个采样点都是用16位来表示振幅值的,如果是单声道的话很简单,按顺序取16位就行。如果是双声道的话,左右声道是交替的,第一个16位是左声道的第一个采样点,第二个16位是右声道的第一个采样点,第三个16位是左声道的第二个采样点,第四个16位是右声道的第二个采样点,依此类推。

最后

先恭喜一下,基本看懂的话各位就算入门了,虽然这篇文章每块都只是提了一下,但对理解接下来要学的音频算法还是很有帮助的。

作者:Droptea

原文链接:https://www.jianshu.com/p/0a2ccd1a5ac3

文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐