5D Library › 发声的生物力学与注意力转移 · English
第五章 节奏、计时与节拍
守住拍子
唱得合拍,是一种感觉运动同步的技能:使动作(这里是唱出的每个起音)与外部节拍保持稳定的关系。关于它的知识大多来自手指敲击实验,这类实验简单到可以精确建模 (Repp 2005; Repp and Su 2013)。
两种变异来源
证据
温(Wing)和克里斯托弗森(Kristofferson)提出,每两次敲击之间的间隔,等于一个中枢计时器产生的间隔,加上两个运动延迟之差,即结束这个间隔的那次敲击与开始它的那次敲击的延迟之差:。由于相邻间隔共享一个符号相反的运动延迟,模型预测相邻间隔呈负相关,并且可以把两种变异来源分开:计时器方差 与运动方差 (Wing and Kristofferson 1973)。
推导
模拟以 500 毫秒为周期的 4000 次敲击,计时器标准差 15 毫秒、运动标准差 8 毫秒,然后只用间隔数据还原模型参数:,。
import random, statistics
# Wing–Kristofferson model: each inter-tap interval
# I_n = C_n + D_n − D_(n−1)
# C = central timekeeper interval, D = motor delay. Then
# var(I) = σC² + 2σD² and lag-1 autocovariance = −σD².
random.seed(3)
period, sC, sD = 500.0, 15.0, 8.0 # ms
D = [random.gauss(50, sD) for _ in range(4001)]
I = [random.gauss(period, sC) + D[n] - D[n - 1] for n in range(1, 4001)]
m = statistics.fmean(I)
var = statistics.pvariance(I)
acov1 = sum((I[k] - m) * (I[k + 1] - m) for k in range(len(I) - 1)) / (len(I) - 1)
sD2 = -acov1
sC2 = var - 2 * sD2
print(f"mean interval {m:.1f} ms, total SD {var ** 0.5:.1f} ms, lag-1 autocorrelation {acov1 / var:+.2f}")
print(f"estimated timekeeper SD {sC2 ** 0.5:4.1f} ms (true {sC:.0f}), motor SD {sD2 ** 0.5:4.1f} ms (true {sD:.0f})")
# mean interval 500.1 ms, total SD 19.2 ms, lag-1 autocorrelation -0.18
# estimated timekeeper SD 15.4 ms (true 15), motor SD 8.1 ms (true 8)只凭敲击时间,这一分解就还原了两个数值。这对教学很重要,因为两种来源需要不同的办法:计时器变异关乎内在的节拍感;运动变异关乎身体执行每个起音的一致性。
向节拍校正
有节拍器或乐队时,歌者的起音与节拍之间的每一次偏差(异步),都可以在下一次部分得到纠正。在线性相位校正模型中,每次异步有一个比例 被纠正 (Vorberg and Wing 1996)。
推导
在与上面相同的计时器和运动噪声下,不同校正比例时异步的变异程度。
import random, statistics
# Phase correction when tapping to a metronome (after Vorberg & Wing):
# A_(n+1) = (1 − α) A_n + (C_n − P) + D_(n+1) − D_n
# A = asynchrony, C = timekeeper interval, P = metronome period, D = motor delay,
# α = the share of each asynchrony corrected on the next tap.
def asynchrony_sd(alpha, sC=15.0, sD=8.0, n=20000, seed=5):
rnd = random.Random(seed)
a, d_prev, out = 0.0, rnd.gauss(0, sD), []
for _ in range(n):
d = rnd.gauss(0, sD)
a = (1 - alpha) * a + rnd.gauss(0, sC) + d - d_prev
d_prev = d
out.append(a)
return statistics.pstdev(out[100:])
results = {alpha: asynchrony_sd(alpha) for alpha in (0.05, 0.2, 0.4, 0.6, 0.8, 1.0, 1.3, 1.6)}
for alpha, sd in results.items():
print(f"α = {alpha:4.2f}: SD of asynchrony {sd:6.1f} ms")
best = min(results, key=results.get)
print(f"smallest variability near α ≈ {best}; too little correction drifts, too much over-corrects")
# α = 0.05: SD of asynchrony 47.2 ms
# α = 0.20: SD of asynchrony 26.2 ms
# α = 0.40: SD of asynchrony 20.7 ms
# α = 0.60: SD of asynchrony 18.9 ms
# α = 0.80: SD of asynchrony 18.5 ms
# α = 1.00: SD of asynchrony 18.8 ms
# α = 1.30: SD of asynchrony 20.8 ms
# α = 1.60: SD of asynchrony 26.0 ms
# smallest variability near α ≈ 0.8; too little correction drifts, too much over-corrects与第三章的音高一样,这里也存在一个最佳值。几乎不纠正,歌者会逐渐偏离节拍;纠正超过最佳值,每次纠正都带入自身的噪声,异步在偏早与偏晚之间来回摆动。敲击研究通常发现校正比例小于 1,与这种权衡相一致 (Repp 2005)。
大脑的计时网络
证据
动作计时与节拍感知涉及一个包括小脑、基底核以及辅助运动区和前运动皮层的网络。小脑损伤患者在敲击中表现出更大的计时器变异 (Ivry and Keele 1989);功能成像显示,基底核和辅助运动区对有规则节拍的节奏比对无规则的节奏反应更强 (Grahn and Brett 2007)。
假说 · 尚未验证
尚未确立。 对初学者,把注意力放在呼吸或喉部的内部焦点,会使每个唱出的起音执行得更不一致,而不改变内在的节拍感;也就是说,与把注意力放在房间对面一台节拍器上的外部焦点相比,它增加运动方差而不增加计时器方差。该假说预测:在按节拍唱出的音节上,内部指令下的温–克里斯托弗森运动方差更大,而计时器方差在两种指令下相近。如果在一项歌者自身的随机比较中,运动方差在两种指令下没有差别,假说就被推翻。
参考文献
Fan, Y. (2026). The Biomechanics of Phonation and Attentional Shift: Myoelastic-Aerodynamic Theory, the Singer's Formant, Auditory-Motor Feedback and External Focus of Attention [发声的生物力学与注意力转移] (Version 1.0.0). 5D Library. https://doi.org/10.5281/zenodo.23719625 · Licensed under Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0).