5D Library › 嗓音生物力学、非线性源-滤波耦合与听觉-运动反馈的数学模型 · English

第三章 歌手共振峰与管弦乐掩蔽:一笔明示假设的账

简要回顾:起作用的是喉前庭

第 10 本第二章已经用一个分段圆管模型说明了歌手共振峰的成因,这里只回顾结论,并把框架中的一处说法改正。

证据

松德贝里 1974 年发现,受过古典训练的男歌手(程度稍轻的还有女低音)的歌声频谱在 3 kHz 附近有一个突出的峰,即「歌唱共振峰」,现在通常称为歌手共振峰;它来自第三、四、五共振峰的聚集。他的声学模型把这一聚集归因于喉管——声带正上方那段短而窄的通道,即喉前庭(epilarynx)——当它的出口截面积约为其上方咽腔的六分之一时,它本身就成为一个共振腔 (Sundberg 1974)。1995 年,松德贝里用磁共振得到的面积函数重新检验:喉管出口与咽腔之间的面积不匹配只有约 4.5:1,结论是第四、五共振峰「在很大程度上、但不完全」依赖喉管;他也提到另一种观点认为歌者的第四共振峰取决于声道长度而非喉管,这一分歧并未完全解决 (Sundberg 1995)。

因此,框架中「咽腔与喉室出口面积比 > 6:1」需要改正两处。第一,起作用的结构是喉前庭(喉管),不是喉室:喉室是声带与室带之间向两侧凹入的小隐窝,是另一个结构。第二,比例的方向与数值:1974 年模型中喉管出口约为咽腔面积的 1/6(即咽腔约为其 6 倍),1995 年的磁共振测量只有约 4.5 倍,不是「大于 6:1」。第二章已经说明,同一个狭窄的喉前庭还增大了声道的惯性抗:它同时影响「滤波」(共振峰聚集)和「声源」(源—滤波耦合)。

歌手共振峰的频率大约在 2.5–3 kHz 一带,随声部而不同,低声部偏低、高声部偏高 (Sundberg 1977)。这一带恰好与人耳外耳的共振重合。

证据

肖(Shaw)汇总了多项测量,给出从自由场到鼓膜的声压变换:耳甲腔与外耳道的共振使约 2–4 kHz 的声音在到达鼓膜时增强十几分贝,增益随声源方向而变 (Shaw 1974)。松德贝里在面向一般读者的文章中指出,管弦乐的长时平均谱与说话的能量分布相似,能量集中在几百赫兹,到 3 kHz 附近已弱得多;歌手共振峰使歌声在这一频带中突出于伴奏之上 (Sundberg 1977)。

「信噪比提升 10–15 dB」:先说清楚是什么意思

框架写道,歌手共振峰使歌者在管弦乐中的「信噪比提升 10–15 dB」。核对后,没有找到一项直接测得这一数字的研究;它更像是由「共振峰簇高出若干分贝」推出来的估计。与其照抄,不如把账摊开:在什么假设下会得到这个数字?

我们用 1/3 倍频程的长时平均谱做一个透明的计算。管弦乐的谱在 450 Hz 最强,其下每倍频程降 6 dB,其上每倍频程降 SoS_o dB(取 6、8、10 三种);歌声先取一个「说话式」的谱(峰在 500 Hz,其上每倍频程降 8 dB),再在 2.8 kHz 附近加一个高 HH dB 的「共振峰簇」,然后把歌声的总声级调回原值——歌手共振峰不需要更大的总能量。整个乐队比歌者总体响 10 dB。外耳增益对两者相同。

推导

# Singer-to-orchestra ratio by band under explicit, illustrative assumptions (1/3-oct
# LTAS): orchestra peaks at 450 Hz (-6 dB/oct below, -So above); a "speech-like" voice
# peaks at 500 Hz (-6 / -8 dB/oct); the singer adds an H dB formant-cluster bump at 2.8
# kHz (Gaussian, 0.35 oct s.d.), rescaled to the SAME overall level; the orchestra is 10
# dB louder overall. An outer-ear gain (about +15 dB near 2.7 kHz) applies to both
# sources.
import math

BANDS = [round(1000 * 2 ** (k / 3)) for k in range(-9, 10)]          # 125 Hz ... 8 kHz
# the 2.5 and 3.2 kHz bands
SF = [BANDS.index(f) for f in BANDS if 2400 <= f <= 3300]

def ltas(f, peak, below, above):
    o = math.log2(f / peak)
    return below * o if o < 0 else -above * o

total = lambda levels: 10 * math.log10(sum(10 ** (v / 10) for v in levels))
ear = lambda f: 15 * math.exp(-0.5 * (math.log2(f / 2700) / 0.6) ** 2)

def spectra(h, so=8.0, d=10.0):
    orch = [ltas(f, 450, 6, so) for f in BANDS]
    voice = [ltas(f, 500, 6, 8) + h * math.exp(-0.5 * (math.log2(f / 2800) / 0.35) ** 2)
             for f in BANDS]
    shift = total(orch) - d - total(voice)
    return orch, [v + shift for v in voice]

def band_snr(h, so=8.0):
    orch, voice = spectra(h, so)
    heard = lambda s: total([s[i] + ear(BANDS[i]) for i in SF])
    i5 = BANDS.index(500)
    return heard(voice) - heard(orch), voice[i5] - orch[i5]

if __name__ == "__main__":
    print("orchestra 10 dB louder overall; SNR = singer minus orchestra in the same band")
    print("bump H | 2.5-3.2 kHz SNR, So = 6 / 8 / 10 dB/oct | gain vs H = 0 | 500 Hz SNR")
    base = band_snr(0.0)[0]
    for h in (0.0, 6.0, 10.0, 15.0):
        r = [band_snr(h, so) for so in (6, 8, 10)]
        print(f" {h:4.0f}  |   {r[0][0]:+5.1f} / {r[1][0]:+5.1f} / {r[2][0]:+5.1f} dB"
              f"   |   {r[1][0] - base:+5.1f} dB    |  {r[1][1]:+5.1f} dB")
    orch, voice = spectra(10.0)
    lev = total(voice) - total(orch)
    print(f"check: with H = 10 the singer's overall level is {lev:+.1f} dB re orchestra"
          " (by construction)")
    print(f"outer-ear gain at 2.5 / 3.2 kHz: +{ear(2520):.1f} / +{ear(3175):.1f} dB"
          " to BOTH sources")
# orchestra 10 dB louder overall; SNR = singer minus orchestra in the same band
# bump H | 2.5-3.2 kHz SNR, So = 6 / 8 / 10 dB/oct | gain vs H = 0 | 500 Hz SNR
#     0  |   -13.5 /  -9.0 /  -4.2 dB   |    +0.0 dB    |   -9.0 dB
#     6  |    -8.2 /  -3.7 /  +1.1 dB   |    +5.3 dB    |   -9.1 dB
#    10  |    -4.8 /  -0.2 /  +4.6 dB   |    +8.8 dB    |   -9.2 dB
#    15  |    -0.6 /  +3.9 /  +8.7 dB   |   +12.9 dB    |   -9.5 dB
# check: with H = 10 the singer's overall level is -10.0 dB re orchestra (by construction)
# outer-ear gain at 2.5 / 3.2 kHz: +14.8 / +13.9 dB to BOTH sources
管弦乐(灰)与歌声的长时平均谱模型。虚线为没有共振峰簇的「说话式」歌声,暗红实线为在 2.8 kHz 附近有 10 dB 共振峰簇的歌声;两条歌声曲线的总声级相同,都比乐队低 10 dB。阴影为 2.5 与 3.2 kHz 两个 1/3 倍频程带。所有频谱形状都是假设。

这张表说明了三件事。

第一,频带信噪比的改善几乎完全由共振峰簇的高度决定:簇高 6 dB 时改善 5.3 dB,10 dB 时 8.8 dB,15 dB 时 12.9 dB(改善略小于 HH,因为簇的峰值不完全落在两个频带的中心),而且与乐队频谱的斜率无关。所以「提升 10–15 dB」等于在说「歌手共振峰簇比说话式频谱高出约 11–17 dB」——这是一个需要用真实录音测量的数字,不能当作已知结论。作为参照,第 10 本的分段圆管模型中,收窄喉前庭、扩大咽腔使 2.5–3.5 kHz 频带增强约 6 dB,对应本表中约 5 dB 的改善。

第二,绝对信噪比——歌声在这一频带能否压过乐队——强烈依赖乐队在高频降得多快:同样是 10 dB 的簇,乐队每倍频程降 6 dB 时频带信噪比仍为 −4.8 dB,降 10 dB 时为 +4.6 dB。同一位歌者在不同的配器、不同的力度下,处境可以完全不同。

第三,500 Hz 处的信噪比始终约为 −9 dB:在乐队最强的频带,歌手共振峰帮不上忙。外耳在 2.5 与 3.2 kHz 带来约 14–15 dB 的增益,但它同等地放大歌声与乐队,不改变频带信噪比;它的作用是让这个频带在响度上更突出。

注

这个计算没有包括什么。 长时平均谱描述的是平均能量,不是任一时刻的掩蔽;真实的乐队有强弱起伏、休止和不同配器。听者分离声源还依靠时间结构、颤音带来的频率调制、空间方位和视觉线索,频带信噪比只是其中一项。因此本章的结论只是:在明示的假设下,歌手共振峰可以把 2.5–3.2 kHz 频带的信噪比提高约等于簇高的分贝数;它是否「足以被听见」,需要听觉实验回答。

假说 · 尚未验证

簇高—检测阈假说(尚未确立)。在同一段管弦乐伴奏中,听者检测到一个持续歌声所需的最低歌声声级,随歌声在 2.5–3.2 kHz 频带相对于 0–2 kHz 的强度增加而降低,斜率接近每分贝簇高降低 1 dB。可以检验的预测:用同一位歌者的录音经滤波改变簇高、总声级保持不变,测量多名听者的检测阈;如果斜率显著小于 0.5(即簇高对检测几乎无帮助),这一假说就被推翻。

本章小结

歌手共振峰来自第三至五共振峰在约 3 kHz 附近的聚集,起作用的是狭窄的喉前庭与较宽咽腔之间的面积不匹配(1974 年模型约 1:6,1995 年磁共振约 4.5:1),不是喉室。它的频率与外耳共振重合,而管弦乐的能量集中在几百赫兹。在明示的频谱假设下,2.5–3.2 kHz 频带的信噪比改善约等于共振峰簇高出说话式频谱的分贝数(10 dB 簇约改善 8.8 dB),绝对信噪比则取决于配器;「提升 10–15 dB」不是已证实的测量结果。下一章转向声源本身的非线性:音区、双质量模型与分岔。

参考文献

Shaw, E. A. G. 1974. “Transformation of Sound Pressure Level from the Free Field to the Eardrum in the Horizontal Plane.” Journal of the Acoustical Society of America 56 (6): 1848–61.
Sundberg, Johan. 1974. “Articulatory Interpretation of the ‘Singing Formant’.” Journal of the Acoustical Society of America 55 (4): 838–44.
Sundberg, Johan. 1977. “The Acoustics of the Singing Voice.” Scientific American 236 (3): 82–91.
Sundberg, Johan. 1995. “The Singer’s Formant Revisited.” STL-QPSR (Speech Transmission Laboratory Quarterly Progress and Status Report), KTH 36 (2–3): 83–96.

Fan, Y. (2026). Vocal Biomechanics, Non-Linear Source-Filter Coupling and Auditory-Motor Feedback: From Titze's Self-Sustained Vocal Fold Oscillation and Vocal-Tract Inertance to the Lombard Effect, Read Beside Classical Chinese Vocal Aesthetics [嗓音生物力学、非线性源-滤波耦合与听觉-运动反馈的数学模型] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23770084 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).