目录
音频文件
1 前言
现实生活中,我们听到的声音都是时间连续的,我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。
目前我们在计算机上进行音频播放都需要依赖于音频文件。那么音频文件如何生成的呢?
音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号的过程,我们人耳所能听到的声音频率范围为(20Hz~20KHz),因此音频文件格式的最大带宽是20KHZ。根据奈奎斯特的理论,音频文件的采样率一般在40~50KHZ之间。
奈奎斯特采样定律,又称香农采样定律,即:为了不失真地恢复模拟信号,采样频率应该大于等于模拟信号频谱中最高频率的2倍。
2 概念
声音的本质是一种能量波,由振动而产生的能量波,通过传输介质传输出去。

声音有三个属性:
- 音调:声音频率的高低,表示人的听觉分辨一个声音的调子高低的程度。音调主要由声音的频率决定,同时也与声音强度有关。
- 音量:由"振幅"(amplitude)和人离声源的距离决定,振幅越大响度越大。
- 音色:又称声音的品质,波形决定了声音的音色。
波长是决定音调高低;振幅是决定音量高低;波纹是决定音色。
3 PCM介绍
PCM(Pulse Code Modulation) ,即脉冲编码调制技术。
由于我们人耳听到的声音均为模拟信号,那么我们如何将听到的信息存储起来呢?这就涉及到了PCM技术。
PCM技术就是把声音从模拟信号转化为数字信号的技术,即对声音进行采样、量化的过程,经过PCM处理后的数据,是最原始的音频数据,即未对音频数据进行任何的编码和压缩处理。
4 PCM原理
脉冲编码调制就是把一个时间连续,取值连续的模拟信号变换成时间离散,取值离散的数字信号后在信道中传输。脉冲编码调制就是对模拟信号先抽样,再对样值幅度量化,编码的过程。
简化来说:PCM脉冲编码调制,以一个固定的频率对模拟信号进行采样,并将采样的信号按照一定精度进行量化,最终量化后的值被输出,记录到存储介质中。
如下图所示:
- 原始模拟音频数据如下:

- 按照固定频率进行采样,得到:

- 最后,对采样后的数据选择合适精度进行量化:

PCM相关概念
1 采样频率
采样频率:单位时间内对模拟信号的采样次数,它用赫兹(Hz)来表示。采样频率越高,声音的还原就越真实越自然,当然数据量就越大。采样频率一般共分为22.05KHz、44.1KHz、48KHz三个等级。
Tip:
- 5kHz的采样率仅能达到人们讲话的声音质量。
- 11kHz的采样率是播放小段声音的最低标准,是CD音质的四分之一。
- 22kHz采样率的声音可以达到CD音质的一半,目前大多数网站都选用这样的采样率。
- 44kHz的采样率是标准的CD音质,可以达到很好的听觉效果。
- 48KHz:miniDV、数字电视、DVD、电影和专业音频。
2 采样位数
采样位数(Sample Bits):又称为采样精度,量化级,也相当于每个采样点所能被表示的数据范围。
采样位数通常有8bits或16bits两种,采样位数越大,所能记录声音的变化度就越细腻,相应的数据量就越大。
8bits为低品质,16bits为高品质,16bits最为常见。
3 声道数
声道数(Channels):又称为通道数,指的是:能支持不同发声的音响个数,它是衡量音响设备的重要指标之一。
Tip:
- 单声道的声道数为1个声道;
- 双声道的声道数为2个声道;
- 立体声道的声道数默认为2个声道;
- 立体声道(4声道)的声道数为4个声道。
4 音频数据大小计算
知道上面三个概念,我们就能够计算出来一个原始的音频文件所占用空间大小了。
空间大小 ( B y t e ) = 时长 ( s ) ∗ 采样位数 ( b i t ) ∗ 声道数 / 8 空间大小(Byte)=时长(s)∗采样位数(bit)∗声道数/8 空间大小(Byte)=时长(s)∗采样位数(bit)∗声道数/8
5 量化
量化: 量化就是通过四舍五入的方法将采样后的模拟信号转换成一种数字信号的过程。
对于采样来说,就是在时间轴上对信号数字化;
对于量化来说,就是在幅度轴上对信号数字化
通过采样时测的的模拟电压值,要进行分级量化,按整个电压变化的最大幅度划分成几个区段,把落在某区段的采样到的样品值归成一类,并给出相应的量化值。

6 其他参数相关
-
帧(Frame):一个声音的基本数据单元,其长度为采样位数和通道数的乘积。
-
周期(Period Size):音频设备一次处理所需要的帧数,对于音频设备的数据访问以及音频数据的存储,都是以此为单位。硬件缓冲传输单位,即完成这么多采样帧的传输,就会回馈一个中断。

-
Buffer Bytes: 一个应用Buffer有多少个字节,DMA缓冲区大小。
因为Buffer Size由应用设置,其可大可小,若其太大,则传输的延时太大,所以对此进行分片,提出Period的概念。overrun,录制时,数据都满了,应用来不及取走;underrun,需要数据来播放,应用来不及写入数据
- Sign :表示样本数据是否是有符号位
- Byte Ordering:字节序,表明数据是小端(little-endian)存储还是大端(big-endian)存储,通常均为little-endian。
- nteger Or Floating Point :整形或者浮点型,大多数格式的PCM样本数据使用整形表示。
- 交错模式:数字音频信号存储的方式。数据以连续帧的方式存放,即首先记录第一帧的左声道样本和右声道样本,再开始第2帧的记录...
- 非交错模式: 首先记录的是一个周期内所有帧的左声道样本,再记录所有右声道样本。
以FFmpeg中常见的PCM数据格式s16le为例:它描述的是有符号16位小端PCM数据。s表示有符号,16表示位深,le表示小端存储。
PCM数据流
对于PCM数据都是一些文本化的描述,那么一段PCM格式的数据流怎么表示的呢?
以8-bit有符号为例,长得像这样:
+---------+-----------+-----------+----
binary | 0010 0000 | 1010 0000 | ...
decimal | 32 | -96 | ...
+---------+-----------+-----------+----
每个分割符"|"分割字节。因为是 8-bit 有符号表示的采样数据,所以采样的范围为-128~128。
OK,对于PCM数据流的存储而言,上面仅仅只是单声道。对于多声道的PCM数据而言,通常会交错排列,就像这样:
+---------+-----------+-----------+-----------+-----------+----
FL | FR | FL | FR | FL |
+---------+-----------+-----------+-----------+-----------+----
对于8-bit有符号的PCM数据而言,上图表示第一个字节存放第一个左声道数据(FL),第二个字节放第一个右声道数据(FR),第三个字节放第二个左声道数据(FL)...
编码
一个完整的音频,经过采样和量化后的信号,需要将它转化为数字编码脉冲,这一过程称为编码。
编码简单来说,就是按一定格式记录采样和量化后的数字数据。
PCM技术仅仅包含采样和量化,并不包含编码部分,这里仅简单介绍。
1 音频编码协议ACC
AAC(Advanced Audio Coding)高级音频编码,是一种声音数据的文件压缩格式。AAC分为ADIF和ADTS两种文件格式。
- ADIF(Audio Data Interchange Format): 音频数据交换格式。这种格式的特征是只有音频数据最前面具有头字节,音频数据流中间没有头字节。因此它的解码只能在头字节处开始进行。故这种格式常用在磁盘文件中。
- ADTS(Audio Data Transport Stream): 音频数据传输流。这种格式的特征是它每一单元音频数据都有一个header字节,解码可以在这个流中任何位置开始。
2 压缩
PCM数据是最原始的音频数据,完全无损,所以PCM数据虽然音质优秀但体积庞大,为了解决这个问题先后诞生了一系列的音频格式,这些音频格式运用不同的方法对音频数据进行压缩,其中有无损压缩和有损压缩两种。无损压缩:将数据压缩之后,通过解码还能还原成与原始数据一模一样的数据为无损压缩。ALAC、APE、FLAC有损压缩:消除冗余信息,如人耳能听到的声音为20Hz - 20000Hz 以内,所以可以将此范围外的声音去除掉。MP3、AAC、OGG、WMA7.3 其他概念码率:(也成位速、比特率) 是指在一个数据流中每秒钟能通过的信息量,代表了压缩质量。比如MP3常用码率有128kbit/s、160kbit/s、320kbit/s等等,越高代表着声音音质越好。MP3中的数据有ID3和音频数据组成,ID3用于存储歌名、演唱者、专辑、音轨等我们可以常见的信息。码率采样率采样位数声道数码率=采样率∗采样位数∗声道数码率 = 采样率 * 采样位数 * 声道数 码率 = 采样率 * 采样位数 * 声道数 例如:如果是CD音质,采样率44.1KHz,采样位数16bit,立体声(双声道), 码率 = 44.1 * 1000 * 16 * 2 = 1411200bps = 176400Bps,那么录制一分钟的音乐, 大概176400 * 1 * 60 / 1024 / 1024 =10.09MB。音频帧: 音频数据是流式的,本身没有明确的一帧帧的概念,在实际的应用中,为了音频算法处理/传输的方便,一般约定俗成取2.5ms~60ms为单位的数据量为一帧音频。
声道是什么
声道指声音在录制或播放时在不同空间位置采集或回放的相互独立的音频信号,声道数也就是声音录制时的音源数量或回放时相应独立发声的扬声器数量。我们平时都是说数字几点几声道,那为了方便解释,杰宝在这里用字母来指代数字。简单来说,a.b.c声道音响系统就是由a个前后左右环绕的扬声器+b个低音炮+c个天空扬声器,共计a+b+c个扬声器组成的总计a+b+c个声道的系统。其中,a位置代表的是a个环绕扬声器;b位置代表的是b个专门设计的超低音声道,需要单独的低音炮来发声;c位置代表的是c个天空扬声器,装在顶上。例如7.1.4声道音响就是中置、左右前置、左右环绕、左右后置7个扬声器加上1个低音炮和4个天空扬声器,共计12个扬声器组成的12声道系统,而2.0声道音响是有左右两个扬声器,没有低音炮也没有上方扬声器的双声道系统。
7.1.4声道音响系统摆放示意图:

声道可以基本分为单声道、立体声、环绕声、全景声,不同的声道各有其能够实现的效果,从低到高层层递进,声道越多,听觉感受越丰富,但相应的成本也就越高。选择设备时,了解清楚不同声道能够实现的效果,再和自身音质需求进行匹配,能让小伙伴们少走不少弯路。
1.单声道:
即一个声音通道,用一个传声器拾取声音,用一个扬声器进行放音的过程,称之为单声道。单声道只能听得到所有声音包括人声、枪声、汽车声等都从一个地方来,听不出声音的定位、移动等,效果相对于真实的自然声来说,是简单化、失真的。随着时代的发展,单声道已经越来越无法满足人们的影音欣赏和声音体验需求,产品很少,也不建议小伙伴们选购。
2.立体声:
2.0声道、2.1声道都是立体声,立体声能够听到声音的方位和变化,相比单声道系统,音质有很大改善、临场感也大大加强,在重现声源的定位方面有很大改进。2.1声道比2.0声道多一个低音炮,用2.1声道音响系统在家看电影的时候,电影的左右声道声音就会分别从左右音箱传出来,而低音部分会但单独从低音炮中传出,除呈现声音的立体声效果清晰辩位外,声音的高中低部分也能有更好的呈现,用户能够享受沉醉低音和真实立体声效果。但真实的环绕感和现场感,立体声就完全做不到了。
传统音响和新兴的回音壁音响都可以实现2.1声道。虽然在音质效果上回音壁没有传统高端音响完美,但由于回音壁音响使用简便,是一体化音响,无需复杂布线安装,价格也让人容易接受,对电视、投影仪等设备能够起到大幅音质提升的效果,回音壁音响越来越成为人们改善音质的选择。如果对声音有点要求又不算太高,只是想要看电影听音乐、在家享受周末生活的时候,能够提升音质效果,更清晰真实地听到声音的方位、细节、变化,让娱乐生活更畅快酣爽,让生活品质小范围提升,对自己更好一点的话,2.1声道电视音响就是一个很值得的选择,一般千元左右就可以搞定,贵一点几千,便宜一点几百也都有选择的空间。
例如杰科T130Pro回音壁音响就是2.1声道,采用长条音箱加低音炮的组合,共计3个扬声器7个发声单元发声,配有HDMI ARC 接口稳定回传,K歌、音乐、观影三种模式随心切换,低音沉醉澎湃,高音细节明显。
3.环绕声
常见的环绕声包括5.1、7.1声道,在家庭影院方面,环绕声具有立体声不可比拟的优势,三维空间感能给观众一种鲜活的、置身其中的临场感,可以感知到前所未有的细微声音移动,拥有真实震撼的观影体验。其中,7.1声道要更加强大,它在5.1的基础上又增加了左后和右后两个发音点(扬声器),以求达到声音的完美境界。能够实现全方位全包围环绕,更加逼真、更具现场感的极佳观影体验。
环绕声效果图:

如果比较追求环绕声,追求观影时刻的沉浸感,可以选择5.1声道音响来感受浑厚优质的人声、极好的音场形象、更宽阔的声场以及真实的立体环绕感。
如果对声音有很高的品味和追求,同时经济能力和技术实力也跟得上的话,那7.1声道音响以及更高阶的玩法都在等待烧友们的探索!
4. 全景声
杜比全景声(Dolby Atmos)是杜比实验室研发的3D环绕声技术,全景声是一种颠覆性改变,它将基于声道来混音的技术上升为基于对象的音频处理技术,声音不再按照声道预设好的来输出,而是根据影片情节灵活处理,通过解码计算之后按照算法来指定具体的某些喇叭输出。在效果上,杜比全景声能够实现以影片情节来设定的动态声音效果,更真实地营造出声音的方位感和临场感,通过更多扬声器展现更多声音细节,达到一种动态化的震撼完美声音效果。
全景声效果示意图:

全景声音响数量并不固定,少于7.1.4声道可以通过技术感受到模拟全景声效果,有条件的小伙伴可以配备7.1.4声道来感受真正的全景声效果,也可以再继续增加扬声器来获得更饱满细腻、真实还原的声音。它最多可以支持64个独立扬声器、多达 128 个音轨呈现内容,如果说人类永恒在追求更高的境界,那全景声技术的发明可以说是对这一说法最好的验证之一。
声道数字含义
点前面代表全频扬声器(能听清人声的)数量,点后面代表超低扬声器(俗称低音炮)数量。
全频扬声器数为奇数 n 则代表其有 2 个前置箱(左前和右前)、 1 个中置箱(正前,主要用于表现电影人声对白)和 (n-3) 个环绕箱(主要用于渲染环境氛围)。如为偶数则无中置箱。
超低扬声器主要用于表现超低频信号,一般在看电影玩游戏听电子乐时可以带来更深的低频下潜(动次大次到你心里)和更大的低频声压(整个房间都在震),但如果分频处理不好(不够平坦的频响曲线)会劣化中低频表现,这样对于声乐回放可能还不如没有超低扬声器的 2.0 产品。