音频基础知识一

作者: Fronxe | 来源:发表于2017-11-12 21:17 被阅读94次

    对于学习iOS音频相关的同学来说,第一反应是AVFoundation中的AVPlayer,但是在此我们不说AVPlayer,我们说说coreAudio层面的东西,也就是声音(音乐)到底是如何通过手机播放出的;现在让我们先从最开始来说:当你开始接触到coreAudio层时,是不是被rate、channel、frame、package、采样频率、AAC、CAF、MP3、WMA等搞的很混乱,不要着急。我们一步一步理清楚之间的关系。

    采样率:就是采样频率,指的是记录声音时,每秒的采样个数,单位是Hz。

    采样率根据使用类型不同,大概有以下几种:

    8KHz:电话等使用,对于记录人声足够使用,iphone的录音时,这个频率就够了

    22.05khz:广播使用频率。

    44.1kb:音频CD。

    48khz:DVD、数字电视中使用。

    96khz-192khz:DVD-Audio、蓝光高清等使用。

    采样精度:记录声音的动态范围,单位是bit(位)。

    声音通道:声道数(1-8个)单声道是1个声道数,立体声是2个声道数。

    比特率:指的是音频文件的压缩。目前我们常用的音频格式,大部分都是基于音频CD(采样率44.1khz、采样精度16bit,2通道)的原始文件“WAV”文件而来的。原始收录的声音数据保存在一个数组里面,这个数组就是PCM格式,而WAV格式,则是微软公司开发的一种编码格式,它的作用是将PCM格式的数据通过编码播放出来。由于WAV内的数据基本上完整的还原了PCM数据,而其他的无损、MP3、AAC等另外一些编码格式基本也都是基于WAV文件再压缩而成。所以,我们可以简单的认为,WAV是原始音频格式,其他音频格式是压缩格式。说到压缩,就离不开存储和传输,压缩的目的就是为了更好的存储和传输,所以在说压缩之前,需要我们对计算机的基本单位有一些了解。我们都知道,计算机是二进制数制,计算机存储的文件都是由0和1两个数字组成。所以,计算机的传输就以每一个数字为单位,每一个数字称为1“位(bit)”,比如说,一段音频,他的基础数据是“0,1,1,1,0,1,1,0”,而传输的时候,就是将这些数字一个个的传输过去。上面说的采样精度就是这个单位。而计算机的存储单位是“字节(Byte)”,在计算机中,1个字节由8个位组成,也就是说8b(bit)=1B(Byte)。在计算机语言中,数据存储是以10进制表示,数据传输是以2进制表示,所以1KB=1024B=1024×8b。这也是造成我们看到的硬盘容量跟实际容量不符的部分原因。返回来再说音频压缩,音频的比特率,实际上就是压缩比例。所以比特率实际上只定义文件的大小,但是由于在正常状态下,文件越大,其丢失的数据就越少,所以其音质也就相对更高一些。但比特率本身并不对文件的质量有直接影响,例如我们把128kb的文件作为源文件,即使转换成320kb的文件,其音质依然不会比128kb好。那么比特率中的数字和字母到底是什么意思呢?首先看128k的全称“128kbps”,我们试着分解一下:128是数字,k是千位符,b是单位,s是秒,ps其实就是“/s”。这样来看,128kbps就是128kb/s。也就是每秒128kb。请注意,这里的b是小写的b,也就是位。知道了这个,我们就能算出来128kb的文件大概占用多少的存储空间:128*1000=128000b/s÷8=16000B/s÷1024=15.625KB/s*60=937.5KB/分钟÷1024=0.9155MB/分钟。所以,128kb的音频文件,大概每分钟长度的大小都在0.92M或者916kb左右,也就是大家常说的128kb的mp3大小约1M的原因,大家可以在本地测试验证。在说有损和无损之前,还有两个词跟大家解释一下,就是我们在压缩MP3的时候会看到CBR、VBR两种方式。而CBR就是Constants Bit Rate,恒定比特率;VBR就是Variable Bit Rate,动态比特率。理论上说,VBR的方式是根据音频源文件中声音的具体频率,自动修正一些比特率,以达到在同样比特率效果中,达到更小的文件。我们再来说有损和无损。简单的来说,有损压缩就是通过删除一些已有数据中不太重要的数据来达到压缩目的;无损压缩就是通过优化排列方式来达到压缩目的。由于这些压缩方式涉及到更深的技术知识,我们就不再多说,大概可以这样去看:有损压缩就像我们在一篇文章中删除一些不重要的助词,达到目的,解压缩后,已删除的内容无法恢复;而无损则是通过排版方式达到的,解压缩之后,还能获得完整的WAV数据,就像是我们常用的winzip和WinRAR那样。在无损格式中,目前比较常用的有APE(Monkey's audio)、FLAC(Free Lossless

    Audio Codec)两种。前者拥有更小的比特率,后者则更容易传播,其区别就是,FLAC可以在传播中断后,已传播的数据就可以直接使用。比如我们下载一首APE格式的音乐,必须等全部数据下载完成后,才能播放,而FLAC则不同,你只下载了1/3,就能先播放这1/3的内容。看到这里,我想你已经想到了,WAV文件也是一种编码格式,那他是不是也是有一定的比特率呢?没错,标准WAV文件的比特率是1411kb、而无损压缩则根据源文件的内容不同,大概是900-1000左右。大家可以自己去计算一下他们的标准大小。

    对于上面的AAC、MP3、ACF、APE等又细分为音频编码格式、音频文件格式,这一块一定要区分开音频编码格式和音频文件格式的区别,否则后面有很大的问题。通俗的说:音频文件格式就是盒子,里面装的数据用的什么方式编码的,这种编码规则就是音频编码格式,通常我们看到的文件结尾就指的是文件格式,文件格式和编码格式是有对应的关系的,

    其中iPhone支持许多文件格式(音频容器)包括:MPEG-1(.mp3),MPEG-2 ADTS(.aac),AIFF,CAF,WAVE等.但是通常在iPhone中使用的容器格式就CAF,因为它可以用来封装iPhone所支持的所有音频格式.

    iphoneiPhone中支持的音频格式如下:

    AAC: 被设计用来取代MP3音频编码的.它会压缩原来的声音,因此会减少存储空间.实际中ACC比MP3更好的压缩率.

    AMR: AMR是一个编码格式用于压缩语音的音频编码格式.

    LPCM: 是标准的线性脉冲编码,一般是将模拟声音转化成数字信号,这是一个未压缩的音频格式.由于是未压缩的音频编码格式,因此播放时候用这种格式最是最好的选择,但是会占用过多的空间.

    其中iPhone不支持MP3数据的编辑,由于MP3是有专利保护的。对于上面说的这些我们接下来会通过一系列的demo加深理解。

    对我感兴趣的同学请关注我的微信公众号:文章第一时间发布于微信公众号之后才会同步到简书上:

    相关文章

      网友评论

        本文标题:音频基础知识一

        本文链接:https://www.haomeiwen.com/subject/gpexxxtx.html