vx 搜索『gjzkeyframe』 关注『关键帧Keyframe』来及时获得最新的音视频技术文章。
『声音』是我们司空见惯再熟悉不过的一种物理现象。我们唱歌发出声音,用耳朵听到声音,用手机记录并分享声音;如果作为音视频开发人员,我们还会在工作中处理众多声音数据。但是,你真的了解『声音』吗?
在前面的文章《声音的表示(1)》里,我们提出了一个问题:从我们耳朵听见的『声音』,到我们用手机、电脑所处理的『音频数据』,其中经历了什么?从这个问题出发,我们探讨了『声音的定义是什么』和『声音有哪些特征』这两个问题,接下来我们继续探讨下个问题:『怎样对声音进行数学描述』。
3、怎样对声音进行数学描述?
有了声音的定义,也明确了声音的特征,那接着便可以探讨对特征的数学描述了。
3.1、响度的数学描述
响度是反映人耳感受到的声音强弱的主观心理量,根据它可以把声音排成由轻到响的序列。
对应的,与声音强弱相关的客观物理量有『声强』、『声压』等。而要理解声强,先要理解一下『声能』的概念。
声能是声音在介质中传播时,使媒介附加的能量。由于声波是质点偏离平衡位置的振动,所以声能定义为质点振动动能和质点偏离平衡位置所具有的势能的总和,单位是『瓦(W)』。
声强是单位时间内通过垂直于声波传播方向的单位面积的平均声能,用 I 表示声强。声强的单位是『瓦/平方米(W/m²)』。人耳允许的声强范围为 0.000000000001~1 W/m²,这个范围太大。此外,心理物理学的研究表明,人对声音强弱的感觉并不是与声强成正比,而是与其对数成正比的,所以我们引入『声强级』来表示声强。
虽然声强在理论上可以客观衡量在某一点上的声波振幅,还可以通过测量得出其数值,但并不是一个在日常工作中经常用来阐述声音振幅的量。由于人耳表现为压力敏感组织,又因为压力或压强具有相对容易进行实地测量的特点,所以目前实际中更多是使用声压来代表声波的振幅表现。
声压是指声波通过媒质时,由振动所产生的压强改变量,单位是『牛顿每平方米(N/m²)』或『帕斯卡(Pa)』,用 P 表示声压。声音在空气中传播时,物体的振动带动周围空气的振动,形成了疏密相间的波动,所以压力变化增量是正负交替的。通常取声压的均方根值,称为有效声压。如未说明,通常所指的声压即为有效声压。声压范围为 0.00002~20 N/m²,这个范围太大,同样的,人对声音的强弱的感觉是与声压的对数成正比,所以我们引入『声压级』表示声压。
声压与声强的关系:在自由声场中,某处的声强与该处声压的平方成正比,与介质密度与声速的乘积成反比。
// 由于格式显示问题,此处完整内容见:原文:声音的表示(2)
所谓级是做相对比较的无量纲量。例如声强级和声压级等。
声强级(Sound Intensity Level,SIL),是以 10-12 W/m² 为参考值,任一声强与其比值的对数乘以 10 记为声强级,单位是『分贝(dB)』。这里为什么乘以 10?这个是由『贝尔』和『分贝』两个单位的定义而来,贝尔这个单位太大,这样计算得到的数值就相对较小;所以取其十分之一为单位『分贝』,来放大计算的数值,更容易体现数值之间的差异。
// 由于格式显示问题,此处完整内容见:原文:声音的表示(2)
声压级(Sound Pressure Level,SPL),是以 2×10-5 N/m² 为参考值,任一声压与其比值的对数乘以 20 记为声压级,单位也是『分贝(dB)』。这里为什么是 20?把上面讲到的声压与声强的关系公式带入进声强级的计算公式即可推到得出声压级的计算公式。
// 由于格式显示问题,此处完整内容见:原文:声音的表示(2)
人耳对声音的感觉,与声压有关,但也不是只与声压有关,还和频率有关。声压级相同,频率不同的声音,听起来响度也不同。
为了在数量上估计一个纯音的响度,可以把这个纯音和 1000 Hz 的某个声压级的纯音在响度上作比较。这两个声音在听觉上认为是相同的响度时,就可以把 1000 Hz 纯音的这个声压级规定为该频率纯音的响度级。响度级的单位为『方(Phon)』。
举例来说,一个纯音的频率 1000 Hz,若希望其响度能达到 40 方,根据等响度曲线图,其声压级就必须达到 40 dB SPL。
下图中,横坐标为频率,纵坐标为声压级,波动的一条条曲线就是等响度曲线(equal-loudness contours),这些曲线代表着声音的频率和声压级在相同响度级中的关联。
响度级既考虑了声音的物理效应,又考虑了人耳的听觉生理效应,表示人耳对声音的主观评价。
我们日常所说的分贝指的是声压级。比如:
// 由于格式显示问题,此处完整内容见:原文:声音的表示(2)
比如上表所说的,飞机起飞时的声音是 120 分贝,如果我们知道对应的声音的频率,我们就能知道它的响度级。
3.2、音调的数学描述
音调是人耳对声音高低的主观感受。音调对应的客观评价尺度是声波的『频率』。音调的高低是由振动频率决定的,两者成正相关关系。
频率的计量我们比较熟悉,单位是『赫兹(Hz)』。那么音调是怎么计量呢?一种计量法是将音调的单位称为『美(mel)』,取频率 1000 Hz、声压级为 40 dB 的纯音的音调作标准,称为 1000 mel,另一些纯音,听起来调子高一倍的称为 2000 mel,调子低一倍的称为 500 mel,依此类推,可建立起整个可听频率内的音调标度。
乐音(复音)的音调更复杂些,一般可认为主要由基音的频率来决定。
音调和频率的对应关系如图:
在 500 Hz 以下,音调和频率基本上近乎成线性关系,但是对于中高频则成对数关系。
此外,音调通常使用『科学音调记号法』或使用结合字母与数字(用以表示基频)而成的记录法。
两个音符之间若频率相差整数倍,则听起来非常相似。因此,我们将这些音放在同一个『音调集合』中。两个音符间若相差一倍的频率,则我们称两者之间相差一个八度。要完整描述一个音符,则必须同时说出它的类别以及它在哪个八度之中。在传统音乐理论中,我们使用前七个拉丁字母:A、B、C、D、E、F、G(按此顺序则音调循序而上)以及一些变化(详情请见下文)来标示不同的音符。这些字母名字不断的重复,在 G 上面又是 A(比起前一个 A 高八度)。为了标示同名(在同一个音调集合中)但不同高度的音符,科学音调记号法(scientific pitch notation)利用字母及一个用来表示所在八度的阿拉伯数字,明确指出音符的位置。比如说,现在的标准调音音调 440 赫兹名为 A4,往上高八度则为 A5,继续向上可无限延伸;至于 A4 往下,则为 A3、A2 等。传统上,由于历史原因,八度的数字标注由 C 音符开始,结束于 B:C、D、E、F、G、A、B(按此顺序则音调循序而上)。
有时我们也会在音名旁加上变音记号,如升号和降号。这些符号代表将原音升高或降低半音,在十二平均律(现在最广泛使用的调音法)中则是将原频率乘或除以 2(1/12)=1.0594 倍,即升高 n 个半音就将原频率乘 2(n/12) 倍,降低 n 个半音则乘 2(-n/12) 倍。升音符号为 ♯,降音符号则为 ♭。它们通常写在音名之后,如 F♯ 表示升 F,而 B♭ 表示降 B。其它的变音符号如重升或重降(将原音升高或降低一个全音,即两个半音),在传统乐理中也会用到。在等音音程(enharmonicity)的情况下,我们可以利用变音记号把同一个音调记成不同的音符。举例而言,把 B 升半音成为 B♯,其实就与 C 同音。不过,在删去这些异名同音的情况后,完整的半音音阶在原来的七个音上添加了五个音调集合,且任两个相邻的音调集合都相差半音。
注意,7 个全音只有 5 个半音。E 和 F 之间,B 和 C 之间是没有半音的。详细来讲,就是一个八度之间有 12 个半音。其中 7 个(CDEFGAB)叫自然音,另外 5 个叫变化音。自然音之间一般是隔着两个半音(相隔两个半音可以叫距离为一个全音),也有部分自然音之间(E 和 F,B 和 C)只隔一个半音。
下面的图表完整的表示自 C4(中央 C)起向上八度内的半音音阶:
常见的国际谱、男唱谱、女唱谱的部分记号和频率对照表:
// 由于格式显示问题,此处完整内容见:原文:声音的表示(2)
3.3、音色的数学描述
声音的响度表示声音的大小,音调表示声音的频率,这两个还是比较好理解的。
那么怎么理解声音的音色呢?
现实中声音的波形绝大多数都不是简单的正弦波,而是一种复杂的波。这种复杂的波形可以分解为一系列的正弦波,这些正弦波中有基频 f0,它对应声音的基音,还有与 f0 成整数倍关系的谐波:f1、f2、f3、f4 等,它们对应声音的泛音,它们的振幅有特定的比例。这种特定的比例,赋予每种声音特色,这就是音色。如果没有谐波成分,单纯的基频正弦信号是毫无音乐感的。因此,乐器乐音的频率范围包括基频和谐波。
上一节讲到的声音音调的高低是由基音对应的基频决定的。这就是为什么同唱一个音调,不同人的音色截然不同的根本原因:他们只是基频相同,谐波是截然不同的。
所以,声音的音色决定于谐波频谱,也可以说是声音的波形所确定的。
(通过上文的探讨,我们知道了如何对声音的响度、音调、音色特征进行数学描述。在这个过程中,引入了众多的物理量和概念:比如与响度相关的声能、声强、声压、声强级、声压级、响度级等;与音调相关的频率、科学音调记号法、十二平均律等;与音色相关的基频、基音、谐波、泛音等。这些物理量和概念是对声音进行数学描述的工具和桥梁,而基于这些物理量和概念建立起来的数学模型是我们对声音数字化的基础。对于声音数字化的问题,我们将在后面继续探讨,敬请期待)