把一句话念出来,音高不会停在原地。它从你音域的高处起步,一路往下走,而最后三分之一秒决定了这句话听起来「说完了没有」。
英语的陈述句有一个形状:第一个重读音节定一个高点,之后每个短语往下退一级,最后一个音节落在说话人音域的低处。疑问句和没说完的分句会打破这个形状 —— 听话的人就是靠它把 she left 和 she left? 分开的,完全没有标点可依赖。
这套语料里 60 句中有 55 句以音高下降收尾,占 92%。最后三分之一秒的中位斜率是 -4.5 半音/秒;句首比句尾高 8.3 个半音,差不多是一个八度的大部分。整句的活动范围(第 10 到第 90 百分位)是 7.5 个半音。
那 5 句上升的不是错。它们是从段落中间切出来的句子,分句还没收尾。没说完的分句,收尾本来就该往上走。
在 60 句上测得
四句话,四种形状
每张图是那段录音的音高轨迹:10ms 一帧,纵轴是相对本句中位的半音数,所以虚线(0)就是这个说话人的中间位置。末端阴影是要拟合斜率的窗口。曲线中间的断口是清音段 —— 辅音、停顿 —— 是故意断开的,没有连过去。
它的斜率最接近全语料中位 —— 一句普通的话就长这样
全语料里下降最陡的一句
几乎没有下降
少数上升收尾的句子之一
这条线是怎么量出来的
音高用 Praat 的自相关法提取,10ms 步长,75–500 Hz。这个方法偶尔会锁到真实周期的两倍或一半上,表现是原本平滑的轨迹里突然跳一个八度。我们只修这些帧:与自身 ±150ms 邻域中位相差超过八个半音的帧,按 2 的幂折回来。别的一概不动。修之前有一句报出的音域是 18 个半音,而全语料中位是 7.5 —— 句子很普通,是测量不普通。
斜率是在末段 max(350ms, 句子长度的 25%) 上做的直线拟合。报「每秒」而不是报总量,是为了让长短句可比。全部数值都以半音为单位、相对本句中位 —— 这样说话人的嗓音就从图里消掉了。
这一页不能说明什么
这套语料里没有疑问句。LibriSpeech 是志愿者念小说,转写里没有标点,没有任何东西告诉我们哪句本来是个问句。这一页的每种形状都是陈述句,或者陈述句里的一个分句。那几句上升是语料自带的意外,不是设计出来的对照。
它也说不清说话人想表达什么。音高会随强调、随犹豫、随这句话在段落里的位置而变,而这段录音是从那一切里单独切出来的。