一、前摘
在游戏中常常会使用到各种音效及背景音乐。这些资源小的之有几k,大的也有1M多,甚至4、5M。用到的地方也非常多,按钮的点击音效、界面的开启音效、英雄独白音效、英雄技能音效、引导音效等等。但是我们对音效资源的管理,远不如对纹理资源、模型资料、配置表资源等等其他资源的管理。甚至大部分人对音频文件本身也知之甚少。下面就音频文件进行一些简单的分享。希望对各位有所帮助。另外,大部分知识也是鄙人刚学,写这篇文章也算是一个学习总结及记录,如有不对还望指正。
二、音频格式
我们在游戏中常用的音频格式有WAVE、MP3、OggVorbis等等。但是这三种格式音频文件都有什么不同,孰优孰劣呢?在这之前我们先来了解一下音频文件的几类数据格式。
- 非压缩的数据格式
- 无损压缩的数据格式
- 有损压缩的数据格式
其中非压缩的数据格式类型,最流行的就是WAVE(*.wav)格式,wav格式是微软公司开发的一种声音文件,也叫波形声音文件,对于保存原始的录音数据是一个好的选择。wav格式支持多种音频位数、采样频率和声道,因此WAV的音质与CD相差无几,但是wav格式对存储控件需求太大,不便于交流和传播。 补充:WAV属于无损音频格式,缺点:体积十分大
另外两钟格式均属于有损压缩的数据格式。MP3为ISO/IEC国际标准,是现在最普及的一种数字音频编码和有损压缩格式,几乎所有的终端和软件都支持此格式。MP3是利用MPEGAudio Layer3的技术,将音频以1:10甚至1:12的压缩比率,压缩成容量较小的文件,也就是说,能够在啊音质丢失很小的情况下把文件压缩到更小的程度。MP3编码质量分为:固定编码(CBR)、平均编码(ABR)和动态编码(VBR)。 补充:最高比特率320K,高频部分一刀切是它的缺点。音质不高!
OggVorbis是一种新的音频压缩格式,类似于MP3等现有的音乐格式。但是它有一个出众的特点就是支持多声道。能够完整保留20kHz下音质细节,采用可变比特率(VBR),动态调整比特率达到最佳的编码效果。 补充:目前最好的有损格式之一,最高比特率500kbps。
上面介绍了三种我们常用的音频格式,各自均有优劣。我们可以根据我们游戏的特点各自选择合适的音频格式。但是除了格式之外,我们是否还需要关注其他参数,让我们能更合理的使用音频文件。上面介绍里的比特率、采样频率等等又是什么。下面我们继续介绍音频的一些基本概念。
三、基础概念
声道
当人听到声音时,能对声源进行定位,那么通过在不同的位置设置声源,就可以造出更好的听觉感受,如果配合影响进行音频位置的调整,则会得到更好的视听效果。常见的声道有:
- 单声道,mono
- 双声道,stereo,最常见的类型,包含左声道以及右声道
- 2.1声道, 在双声道基础上加入一个低音声道
- 5.1声道,包含一个正面声道、左前方声道、右前方声道、左环绕声道、右环绕声道、一个低音声道
- 7.1声道,在5.1声道的基础上,把左右的环绕声道拆分为左右环绕声道以及左右后置声道
采样率
音频采样,是把声音从模拟信号转换为数字信号。采样率,就是每秒对声音进行采集的次数,同样也是所得的数字信号的每秒样本数。
根据Nyquist-Shannon 定理,以数字形式采集的任何声波,采样率通常需要至少是期最高频率的双倍。
- 要表示人类听觉范围(20-20000 Hz)内的音频
- 数字音频格式必须至少每秒采样 40000 次, CD 音频使用 44100 Hz的采样率,部分原因在此
- 四档采样频率 22050 Hz(常用,FM广播)、 44100 Hz(CD品质)、 48000 Hz、96000 Hz(精品)
采样位深(也叫量化精度,采样深度,取样值,采样值)
就是将采样样本幅度量化。位深影响给定音频样本的动态范围。位深越高,表示的振幅越精确。如果在同一音频样本内有很多响亮和柔和的声音,则需要更大位深才能正确的表示这些声音。
动态范围就是音频系数记录与重放时最大
它是用来衡量声音波动变化的一个参数,也可以说是声卡的分辨率。数值越大,所发出的声音能力越强。1bit(8位 常用)、2bit(16位 CD品质)、4bit(32位 精品)
比特率
比特率在电信和计算领域是指单位时间内传输送或处理的比特数量。每秒传输的速率(位速,也叫比特率 ),在音频是指一个音频流中每秒钟能通过的数据量。如128kbps,其中ps(per second)为每秒,kb为千位,那么128kbps表示一秒钟能传输的数据是128千位(bit)。对于格式相同的文件来说,码率越大的话,音质越好。但是对于不同格式的音频文件来说,相同码率并不代表其音质一样。
采用低比特率来获得最好的音质效果,96~128kbps
采样率、采样位深、比特率三者之间的关系
比特率 = 采样率 * 采样位深 * 通道数/8
根据上面公式我们可以根据相关参数计算出音频时长。 音频文件的大小 = 时长 * 比特率/8 .
但是这样还不够精准,包装标准的PCM格式的WAVE文件(.wav)中至少带有42个字节的头信息,在计算播放时间时应该将其去掉,也就是:(文件总大小 - 42)/(采样率采样位深*通道数/8)
参考链接:
1、 音频属性相关:声道、采样率、采样位数、样本格式、比特率
2、 音频格式的汇总及压缩比较
3、 音频属性详解(涉及采样率、通道数、位数、比特率、帧等)
4、 PCM数据格式
网站推荐: https://www.aconvert.com/cn/ 在线转换文档、视频、音频等等