Web Audio API 小教程(4): 一些声音常识

(续上节:Web Audio API 小教程(3): 初级使用篇

【Gitbook 版本】

在学习《进阶篇》之前,有必要先科普一些声音常识。

音乐理论常识

乐音与噪音

乐音:能明显分辨出音色、音高的声音,例如钢琴、小提琴、古筝等等。

噪音:混乱的,难以分辨音高的声音,例如锣、鼓、爆炸声、瀑布声等等。

乐音的三要素

音色:表示声音用什么乐器发声的,例如钢琴和小提琴的音色不一样。

响度:就是音量啦。

音高:跟我一起唱~ do re mi fa so la xi do ~~~


声音物理学常识

声波

声波

上图就是声波的样子。

乐音的声波

音色 - 形状:声波的形状决定音色。

三角波:嘟———— (VS) 方形波:滴————

响度 - 振幅:声波的振幅决定响度(音量)。

音量较大 (VS) 音量较小

音高 - 频率:声波的频率决定音高。

低音: do ~~ (VS) 高音: la ~~


声音的数字化常识

声音的数字化采样

看图说话:

声波的采样

声波是一条连续的波形曲线,要把声波存储到硬盘里,就要把这条曲线转换成数字。

这个声波转换成数字的过程,称为数字化采样,简称采样

上图是一段声波的第3.767秒到第3.768秒之间的采样。

就在这0.001秒,即1毫秒之间,采集了40+个点,把每个点的Y轴的对应值记录下来,然后把这一串数值按顺序存储到硬盘里,就变成了WAV格式的声音文件。

采样率

采样率就是1秒之内采样了多少个点,单位是 Hz

一般网上下载到的MP3音乐,其采样率一般是 44100 Hz。也就是说,1秒钟采样了 44100 个点。

看图说话:

文件格式

1
文件格式: 44100Hz, 16 位, 立体声

这一行信息的意思是,每秒钟采样了44100个点,每个点占16位,16位就是2字节。

所以每秒钟需要占用空间 44100x2=88200 字节,就是大约 88 KB。

而由于这是立体声的,占两个声道,所以两个声道加起来,每秒钟就是大约 176 KB。

所以,如果这个声音文件是WAV格式的,那么它每秒钟占用大约 176 KB,一分钟就是 176x60=10560 KB。

比特率

比特率表示每秒钟占用多少硬盘空间,单位是 Kbps ,把这个单位展开成英文就是“Kbit per second”,中文意思是“千比特每秒”。

例如,128 Kbps 意思是每秒占用空间 128 Kbit。

1个bit就是二进制数字中的1位,所以 8bit=1字节

所以,128 Kbit 就是 16 KB (128 / 8 = 16)。

所以,128 Kbps 就是 16 KB/s ,即每秒占 16 KB。

每秒 16 KB,那么每分钟就是 960 KB 。所以,如果是 128 Kbps 的 MP3,一首3分钟的歌曲大约占用不到 3 MB 左右。

如果使用不压缩的 WAV 格式,根据上文所述,那么“44100Hz, 16 位, 立体声”的WAV文件就是 176 KB/s ,即比特率就是 1408 Kbps。

比特率是用来衡量声音文件的压缩率的。比特率越小,文件越小,压缩率越高。

对于同一种声音文件格式,比特率越小代表音质越差。但要是文件格式不一样,比特率就不能用来对比音质了。

MP3

一种最常见的声音文件格式,比特率范围是 30 - 320 Kbps。

网上最流行 128 Kbps。

现在 MP3 已经被所有浏览器所支持了。(Can I Use: MP3

WMA

在2000年-2010年之间还蛮常见的一种声音格式,由微软公司发明。

当时被很多 MP3 随身听支持,压缩率比 MP3 高。即 WMA 的 64 Kbps 的音质大概相当于 MP3 128 Kbps(维基百科:WMA)。

但是可能由于微软开出版权费过高(我猜的),所以现在的浏览器全都不支持了。

AAC

一种网上不太常见但是兼容性最接近 MP3 的声音文件格式。常见扩展名有 .aac .mp4 .m4a .3gp

这是 MP3 的继承者,都是 MPEG 系列的标准,因此一般来说只要支持 MP3 的浏览器都能支持 AAC。

AAC 的压缩率几乎肯定比 MP3 高,但是能高多少取决于压缩软件是否给力,因为根据维基百科的描述,AAC是个庞大家族,有很多种AAC,压缩率参差不齐。

不过无论如何,在Web端,AAC 确实是一种比 MP3 更省网络流量的选择。

现在 AAC 也已经被所有浏览器所支持了(Can I Use: AAC),所以以后都不需要用 MP3 了,放心地用 AAC 吧。


接下来…

下一节:Web Audio API 小教程(5): 进阶篇

Benz Leung wechat
同步更新的微信公众号
0%