IOS音视频(三)AVFoundation 播放和录音

  • 回顾一下,上一篇博客“IOS音视频(二)AVFoundation视频捕捉” 中讲解了关于AVFoundation框架对摄像头视频的捕捉能力,并用两个demo(一个OC的Demo,一个Swift的Demo)详细讲解了AVFoundation处理摄像头视频捕捉的能力,可以捕捉静态图片,也可以捕捉实时视频流,可以录制视频,还提供了接口操作闪光灯,开启手电筒模式等等功能。但是这些讲解都是基于苹果官方文档一些接口讲解的,学习了这些我们虽然知道了怎么调用苹果的接口实现相关功能,但是我们并不知道其中的原理性知识,后续的博客中将从视频采集,视频编码,视频解码等原理方面详细讲解,由于时间问题,写完一篇博客基本上要花费一天的时间,所以进度有些慢,博客中也参考了很多大神的博客,但是这些博客是我们平时收集在印象笔记中的,可能有时候忘记添加原始地址了,后续有时间会补上。
  • 感觉说了好多废话,好了,先简单介绍一下:本篇博客主要讲解AVFoundation在音频处理方面的能力。
  • 在音频方面,我们主要是指录制音频和播放音频两个重要的能力,在AVFoundation框架中,等为我们提供了相关类,很容易就实现这些功能。但是我们需要理解一下原理性的知识,便于我们开发中遇到问题就可以及时解决。
  • 在开始讲解录音和播放音频之前,有必要学习一下音频的一些理论知识,方便我们更好的理解。

1. 音频理论知识

1.1 声音的物理性质

  • 声音是波

声音是如何产生的呢?

  1. 声音是有物体振动而产生的。
    振动产生声音
    如图所示,当小球撞击到音叉的时候,音叉会产生振动,对周围的空气产生挤压,从而产生声音。声音是一种压力波,当演奏乐器、拍打一扇门或者敲击桌面时,它们的振动都会引起空气有节奏的振动,使周围的空气产生疏密变化,形成疏密相间的纵波(可以理解为石头落入水中激起的波纹),由此就产生了声波,这种现象会一直延续到振动消失为止。
  • 声波的三要素:
  1. 声波的三要素是频率、振幅和波形,频率代表音阶的高低,振幅代表响度,波形代表音色。
  2. 频率(过零率)越高,波长就越短。低频声响的波长则较长,所以其可以更容易地绕过障碍物,因此能量衰减就小,声音就会传得远,反之则会得到完全相反的结论。
  3. 响度其实就是能量大小的反映,用不同的力度敲击桌子,声音的大小势必也会不同。在生活中,分贝常用于描述响度的大小。声音超过一定的分贝,人类的耳朵就会受不了。

人类耳朵的听力有一个频率范围,大约是20Hz~20kHz,不过,即使是在这个频率范围内,不同的频率,听力的感觉也会不一样,业界非常著名的等响曲线,就是用来描述等响条件下声压级与声波频率关系的,人耳对3~4kHz频率范围内的声音比较敏感,而对于较低或较高频率的声音,敏感度就会有所减弱;在声压级较低时,听觉的频率特性会很不均匀;而在声压级较高时,听觉的频率特性会变得较为均匀。频率范围较宽的音乐,其声压以80~90dB为最佳,超过90dB将会损害人耳(105dB为人耳极限)。

  • 声音的传播介质

吉他是通过演奏者拨动琴弦来发出声音的,鼓是通过鼓槌敲击鼓面发出声音的,这些声音的产生都离不开振动,就连我们说话也是因为声带振动而产生声音的。既然都是振动产生的声音,那为什么吉他、鼓和人声听起来相差这么大呢?这是因为介质不同。我们的声带振动发出声音之后,经过口腔、颅腔等局部区域的反射,再经过空气传播到别人的耳朵里,这就是我们说的话被别人听到的过程,其中包括了最初的发声介质与颅腔、口腔,还有中间的传播介质等。事实上,声音的传播介质很广,它可以通过空气、液体和固体进行传播;而且介质不同,传播的速度也不同,比如,声音在空气中的传播速度为340m/s,在蒸馏水中的传播速度为1497m/s,而在铁棒中的传播速度则可以高达5200m/s;不过,声音在真空中是无法传播的。

  • 吸音和隔音原理
  1. 吸音主要是解决声音反射而产生的嘈杂感,吸音材料可以衰减入射音源的反射能量,从而达到对原有声源的保真效果,比如录音棚里面的墙壁上就会使用吸音棉材料。
  2. 隔音主要是解决声音的透射而降低主体空间内的吵闹感,隔音棉材料可以衰减入射音源的透射能量,从而达到主体空间的安静状态,比如KTV里面的墙壁上就会安装隔音棉材料。
  • 回音

当我们在高山或空旷地带高声大喊的时候,经常会听到回声(echo)。之所以会有回声是因为声音在传播过程中遇到障碍物会反弹回来,再次被我们听到。但是,若两种声音传到我们的耳朵里的时差小于80毫秒,我们就无法区分开这两种声音了,其实在日常生活中,人耳也在收集回声,只不过由于嘈杂的外界环境以及回声的分贝(衡量声音能量值大小的单位)比较低,所以我们的耳朵分辨不出这样的声音,或者说是大脑能接收到但分辨不出。

  • 共鸣

自然界中有光能、水能,生活中有机械能、电能,其实声音也可以产生能量,例如两个频率相同的物体,敲击其中一个物体时另一个物体也会振动发声。这种现象称为共鸣,共鸣证明了声音传播可以带动另一个物体振动,也就是说,声音的传播过程也是一种能量的传播过程。

1.2 数字音频

  • 为了将模拟信号数字化,需要3个过程分别是采样、量化和编码。

  • 首先要对模拟信号进行采样,所谓采样就是在时间轴上对信号进行数字化。根据奈奎斯特定理(也称为采样定理),按比声音最高频率高2倍以上的频率对声音进行采样(也称为AD转换)。

  • 对于高质量的音频信号,其频率范围(人耳能够听到的频率范围)是20Hz~20kHz,所以采样频率一般为44.1kHz,这样就可以保证采样声音达到20kHz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音质量不会被降低。而所谓的44.1kHz就是代表1秒会采样44100次。

  • 那么,具体的每个采样又该如何表示呢?

  • 这就是量化

量化是指在幅度轴上对信号进行数字化,比如用16比特的二进制信号来表示声音的一个采样,而16比特(一个short)所表示的范围是[-32768,32767],共有65536个可能取值,因此最终模拟的音频信号在幅度上也分为了65536层。如下图所示:
量化采样过程

1.3 音频编解码

2. 录制音频

3. 播放音频

发布了246 篇原创文章 · 获赞 90 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/kyl282889543/article/details/104069852