5D Library › 发声的生物力学与注意力转移 · English
第八章 实践:声学评估与预注册试验
第一部分 四步声学评估
免费软件 Praat (Boersma and Weenink 2026) 能完成这项评估所需的全部测量。在安静的房间里录音,每次使用同一支麦克风、同样的距离(约 30 cm),保存为 44.1 kHz 的 WAV 文件。
注
先轻柔地热身。所有任务都保持在舒适的音量,任何不适都应立即停止。这项评估是教学工具,不是临床检查;持续的声音嘶哑应当去看医生(见序言)。
四个步骤
- 五个目标音。 学生跟随参考音,用 /a/ 唱五个持续的音(例如较低的嗓音唱 C4 到 G4,较高的嗓音高八度),每个约两秒。
- 以音分计的音准误差。 在 Praat 中选取每个音稳定的中间一秒,读取音高中位数,按 换算为相对目标音的音分,再取绝对值的平均。
- 谐噪比。 用舒适中音区的三秒持续 /a/,读取稳定中段的谐噪比。
- 共振峰。 在同一个元音上读取 F1 和 F2(对受过古典训练的歌者,再看看 3 kHz 附近的频谱)。
推导
一位学生上课前后的编造示例:每个音的音分误差、平均绝对误差和平均有符号误差,以及谐噪比的变化。
import math
def cents(f, ref):
return 1200 * math.log2(f / ref)
# Step 2 of the assessment: the median F0 of the stable middle of each sung note,
# read from Praat, against the target note. Invented example of one student.
targets = {"C4": 261.63, "D4": 293.66, "E4": 329.63, "F4": 349.23, "G4": 392.00}
before = {"C4": 258.9, "D4": 289.0, "E4": 321.8, "F4": 343.0, "G4": 381.5}
after = {"C4": 260.8, "D4": 292.1, "E4": 327.0, "F4": 347.5, "G4": 388.6}
for label, sung in (("before", before), ("after", after)):
errs = [cents(sung[n], targets[n]) for n in targets]
mae = sum(abs(e) for e in errs) / len(errs)
print(f"{label:6s} " + " ".join(f"{n}:{e:+5.1f}" for n, e in zip(targets, errs))
+ f" | mean absolute error {mae:4.1f} cents, mean signed {sum(errs) / len(errs):+5.1f}")
# Steps 3–4: HNR and F1/F2 of a sustained /a/ entered from Praat
hnr = {"before": 14.2, "after": 17.9}
print(f"HNR {hnr['before']} → {hnr['after']} dB ({hnr['after'] - hnr['before']:+.1f} dB)")
# before C4:-18.2 D4:-27.7 E4:-41.6 F4:-31.2 G4:-47.0 | mean absolute error 33.1 cents, mean signed -33.1
# after C4: -5.5 D4: -9.2 E4:-13.9 F4: -8.6 G4:-15.1 | mean absolute error 10.5 cents, mean signed -10.5
# HNR 14.2 → 17.9 dB (+3.7 dB)在这个编造的示例中,学生每个音都偏低,而且音越高偏得越多;误差从 33 音分降到 11 音分。平均有符号误差值得与绝对误差一起记录:一贯偏低需要的练习,与随机散布不同。
第二部分 预注册随机试验
问题
对成年初学者,在触觉锚定和外部听觉–空间焦点下唱五分钟,是否比在指向喉咙和呼吸肌肉的内部焦点指令下唱五分钟,更能减少音准误差?
设计
| 要素 | 规定 |
|---|---|
| 参与者 | 18–60 岁成年人,除学校音乐课外未受过声乐训练,自述听力正常,目前没有嗓音问题;排除:筛查时声音嘶哑、正在治疗的嗓音疾病、近期咽喉手术 |
| 设计 | 两组平行随机试验;计算机按 1:1 分配,分组在参与者完成基线录音后才揭晓 |
| 基线 | 第一部分的四步评估 |
| A:内部焦点 | 用同样五个音做五分钟引导练习,指令为「密切注意你的喉咙和呼吸用到的肌肉,控制它们唱准每个音」 |
| B:锚定 + 外部焦点 | 同样的练习,同时轻轻握住一块光滑的石头或桌子边缘(由参与者选择,不与人接触),指令为「把每个音送到对面墙上的钟那里,听它到达」 |
| 保持相同 | 指导语长度、重复次数、参考音、房间和麦克风相同;练习指导者按脚本朗读,不给其他反馈 |
| 主要结局 | 练习结束后立即测量的五个音平均绝对音高误差(音分),以基线为协变量 |
| 次要结局 | 持续元音的谐噪比;平均有符号误差;参与者自评用力程度(0–10) |
| 盲法 | 录音编码;在 Praat 中提取音高和谐噪比的人员不知道分组 |
B 组的触碰对象是物体而不是指导者,这样试验不依赖人与人的接触,在任何地方都能以同样方式进行。
样本量
推导
import math
from statistics import NormalDist
z = NormalDist().inv_cdf
def per_group_ancova(d, rho, alpha=0.05, power=0.90):
"""Two-arm trial analysed with the baseline as covariate: the variance shrinks by (1 − ρ²)."""
za, zb = z(1 - alpha / 2), z(power)
return math.ceil(2 * (za + zb) ** 2 * (1 - rho ** 2) / d ** 2 + za ** 2 / 4)
# Outcome: mean absolute pitch error (cents) over five target notes after 5 minutes.
SESOI, SD = 10.0, 20.0 # smallest difference worth acting on; between-person SD
d = SESOI / SD
for rho in (0.5, 0.7):
n = per_group_ancova(d, rho)
print(f"baseline–outcome correlation {rho}: {n} per group, {2 * n} in all "
f"(recruit {math.ceil(2 * n / 0.9)} for 10 % drop-out)")
# baseline–outcome correlation 0.5: 65 per group, 130 in all (recruit 145 for 10 % drop-out)
# baseline–outcome correlation 0.7: 44 per group, 88 in all (recruit 98 for 10 % drop-out)方案按较保守的情形计划:每组 65 人完成,共招募 145 人。个体间标准差 20 音分是一个假设,将在 10 人预试验中核对;预试验只用于这一目的和检查操作流程。
分析与判定规则
主要分析为协方差分析:以练习后误差为因变量、基线误差为协变量,得出两组调整后的差值及其 95% 置信区间。结果将按下面这条在任何数据出现之前写定的规则解读,采用等效性检验的思路 (Lakens 2017)。
推导
SESOI = 10.0 # cents of mean absolute pitch error
def verdict(diff, lo, hi):
"""diff = (tactile anchor + external focus) minus (internal focus), adjusted for
baseline, with its 95 % confidence interval. Negative = smaller pitch error.
Fixed before any data are seen."""
if hi <= -SESOI:
return "external package clearly better (by at least 10 cents)"
if hi < 0:
return "external package better; size not shown to reach 10 cents"
if lo > 0:
return "internal focus better"
if lo >= -SESOI and hi <= SESOI:
return "no difference worth acting on (within ±10 cents)"
return "unclear: the interval is too wide"
for d, lo, hi in ((-15, -21, -11), (-6, -11, -1), (-1, -7, 5), (-5, -16, 6)):
print(f"{d:+4d} ({lo:+4d} to {hi:+4d}) cents: {verdict(d, lo, hi)}")
# -15 ( -21 to -11) cents: external package clearly better (by at least 10 cents)
# -6 ( -11 to -1) cents: external package better; size not shown to reach 10 cents
# -1 ( -7 to +5) cents: no difference worth acting on (within ±10 cents)
# -5 ( -16 to +6) cents: unclear: the interval is too wide示例是编造的,用来事先说明每种结果将怎样报告。落在 ±10 音分以内的区间,报告为「没有值得据以行动的差别」,而不是「没有效果」;跨过边界的区间报告为结论不明。
这项试验能说明什么、不能说明什么
B 组把两样东西结合在一起,即触觉锚定和外部焦点,因为这个提示就是这样教的。阳性结果支持的是组合提示,而不是其中任何一个成分;要把两者分开,需要一项四组的后续试验(有无触觉 × 外部或内部焦点)。五分钟的练习检验的也是对表现的即时效果,而不是学习;一天后的保持测试将是下一步。
伦理与利益冲突
两组都是简短、温和的歌唱任务。参与者签署知情同意,可以随时停止。方案在招募前将经独立研究伦理委员会审查并公开登记,遵循预注册的原则 (Nosek et al. 2018)。
利益披露
作者在 vocal.guru 和 singingasia.com 教授声乐,并在教学中使用 B 组所检验的「触觉 + 外部焦点」提示的一种形式,因此与有利的结果有直接的商业利益关系。为限制这种利益的影响:方案、分析代码和判定规则在招募前公开;带练习的指导者、提取测量数据的人员和分析者都独立于作者的企业;无论结果如何,结果、匿名数据和代码都将公开。
参考文献
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).