首页专栏

波形、频谱、声谱图。各画一件事。

有用的链条很短:人怎样发声,空气怎样振动,录音保存了什么,图里显示了什么,我们为什么听出高低、强调和语气。这里的声音都是教学合成音,方便一次只改一个因素。

这条线

声源、声道,然后是一串数字。

肺提供气流。发元音时,声带通常近似周期性地振动;发 s 一类声音时,气流经过狭窄处变成湍流噪声。舌头、嘴唇、口腔和鼻腔再决定哪些频率被增强。

  1. 1人怎样发声
  2. 2空气怎样振动
  3. 3录音保存了什么
  4. 4图里显示了什么
  5. 5我们为什么听出高低、强调和语气

一个很实用的模型:先有声源,再经声道滤波,最后变成空气压力随时间起伏。

声源声带振动或气流噪声
→
声道塑形舌头、嘴唇、口鼻腔
→
传出的声音空气压力随时间起伏

保持近似同一个音高,连续发「啊——衣——乌」。口型在变,音色在变,但不必改你所唱的那个音。音高与元音的音色,是两个可以分开的维度。

01 · 波形

振得多快,与振得多大。

麦克风先接到的是空气压力随时间的变化。录音把它变成一串数字。图的横轴是时间,纵轴是压力变化或与它成比例的幅度。上下起伏表示正负,不是声音正在升调、降调。

  • 波形:横轴是时间。
  • 上下是相对振幅,不是音高。

每 6.67 ms 重复一次(上方括线)。

频率 = 1 / 重复一次所需的时间

例如每 5 毫秒重复一次,一秒就重复 200 次,频率是 200 Hz。

真人的元音波形复杂得多,但仍可能看出某种形状在重复。这种整体重复的频率叫基频,记作 F0。不要把复杂波形里每一个小尖峰,都当成一次声带振动。

采样率与基频不是一回事。48,000 Hz 的采样率表示设备每秒记录 48,000 个数;150 Hz 的基频表示声音每秒重复约 150 个周期。这样的录音,每个周期大约有 320 个采样点。

02 · 频谱

谐波的间距,与共振增强的位置。

一个复杂的声音,可以用许多不同频率的正弦成分相加来表示。问「各个频率有多少成分」,得到的就是频谱。

  • 波形:横轴是时间。
  • 频谱:横轴是频率。

对近似周期的元音,频谱里常出现一列间隔整齐的成分,叫谐波。如果 F0 是 150 Hz,谐波出现在约 150、300、450、600 Hz……的位置。

声道会特别增强其中某些频率区域。这些共振区域的中心频率,依次叫 F1、F2、F3……共振峰。它们与声道形状有关,是区分元音的重要线索。

这里尤其要记住:F0 不是「第零个共振峰」,F1 也不是第一根谐波。它们虽然都用 Hz 表示,却描述不同机制。

试听元音模型 · F1 730 · F2 1090 · F3 2440 Hz

一个实用的身体对应是:F1 常与舌位高低、开口程度有关;F2 常与舌位前后等因素有关。但嘴唇形状、声道长度等也会影响它们,不能只凭一个数值就断定嘴里发生了什么。

03 · 声谱图

同一段合成声音:波形 → 声谱图 → F0。

频谱描述一小段声音的频率构成,但说话一直在变化。可以把录音切成许多彼此重叠的小窗口,对每个窗口做一次频谱分析,再把结果按时间排列:一小段波形 → 一列频谱 → 很多列沿时间拼起来 → 声谱图。

  • 横轴:时间。
  • 纵轴:频率。
  • 颜色深浅或明暗:对应时间、频率附近的频谱能量。

波形、声谱图和试听是同一段采样:元音是锯齿波经共振峰滤波,s 是高通噪声。声谱图由这段音的短时傅里叶变换得到。F0 是合成时设定的值,不是追踪器测得的。

  1. 看元音段。a、i、u 的能量集中位置不同,但下面的 F0 都保持 150 Hz。这说明「元音变了」不等于「音高变了」。
  2. 看 s 段。高频区域有明显能量,F0 却留空。这是一段有声音、但没有稳定声带周期的摩擦噪声。
  3. 看静音段。波形和声谱能量都明显减弱。它与「没有 F0、却有摩擦声」的情况不同。
  4. 切换分析窗。30 ms 窗更容易分开一条条谐波;5 ms 窗更容易显示时间上的快速变化。

观察时间越长,越容易辨清相近频率;观察时间越短,越容易定位变化发生的时刻。所以同一录音可以生成外观不同、各有用途的声谱图。

还要避免一个直觉陷阱:声谱图上方出现很多能量,并不意味着说话人的音高很高。「s」就是反例;元音的高次谐波也可以达到几千 Hz,而 F0 仍只有一两百 Hz。

F0 曲线是算法的估计结果,不是录音里原本藏着的一根线。把波形向后平移一点,看它与自己有多相似。假如平移 5 ms 后很相似,200 Hz 就是一个可能的 F0。它也可能把一个周期误认成两个,产生 200 → 100 Hz 一类错误。

04 · 音高轨迹

同一个「啊」的三条音高轨迹。

波形里的快慢,到了这张图里,变成了线的位置高低。周期越短,F0 数值越高,听觉上通常表现为音高上升。

时长 1 秒,相同元音模型,相同整体响度。曲线是设定的 F0,不是从真人录音测得。

在原始波形里,周期越来越短;在 F0 曲线里,数值越来越高;在听觉上,通常表现为音高上升。

严格说,F0 是声学量,音高是听觉体验。两者对普通有声语音关系密切,但不是完全相同的概念。

你可能觉得上升的「啊?」像询问,下降的「啊。」像确认或结束。这是很有用的体验,但不能把某条曲线直接翻译成某种心理状态。

人理解语调时,会同时利用:

  • 音高走向:上升、下降、平稳,以及转折在哪里
  • 音域:这一段相对说话人平常的声音,是更高、更低,还是变化更大
  • 时长与停顿:哪个音节被拉长,哪里停下来
  • 强度与音质:声音是否更强、带气声、紧绷或沙哑
  • 词句与上下文:对方正在回答、反问、纠正,还是继续说

小王买了红茶。——关注「是谁」。

小王买了红茶。——关注「做了什么」。

小王买了红茶。——关注「买了什么」。

普通话还多一层:字的声调和句子的语调,共同影响最终的 F0。句末字本来的声调、是否轻声、强调落在哪里,都会改变你看到的曲线。「问句必升、陈述句必降」并不成立。

读录音

看见变化。先别下故事。

真正分析录音时,可以用下面这张表约束自己的判断。

你看到的现象可以先考虑什么不能直接下的结论
波形幅度更大录入的信号更强说话人一定更用力、更激动
F0 整体更高这一段的周期重复更快说话人一定更紧张
F0 中间断开清音、静音、声音不规则或追踪失败这里一定没有声音
F0 突然翻倍或减半先检查周期和追踪错误这里一定发生了真实跳音
声谱图高频能量增强摩擦噪声、谐波或音色发生变化音高一定升高

录音本身也会影响这些图。麦克风距离、输入增益、自动音量控制、降噪和房间混响,都可能改变测量结果。做对比时,尽量保持设备、距离和处理方式一致。

尤其是「响度」:普通录音的数字幅度,不会自动告诉你现场是多少分贝声压级。没有经过标定,不能把软件显示的强度数值直接当成真实环境的 dB SPL。

最后可以用手机做一组很小的实验,每段两三秒,尽量保持同样的录音距离:

能解释前四组差别,就已经建立了读图的基础;第五组开始把这些声学线索与真实的表达意图联系起来。

核对

先想好,再点。

同样的 F0 仍可以是不同元音。声谱图上方很亮,也不自动等于音高很高。

1. F0 保持 150 Hz,把「啊」换成「衣」,主要该变的是?

2. 波形每 5 毫秒重复一次,频率是?

3. 声谱图在 4 kHz 附近很亮,是否表示音高很高?

4. F0 和 F1 是一回事吗?

5. 这次波形看起来更大。稳妥的结论是?

图能读了,开口让粤调盯着音高

这一页把 F0 和元音分开,也把曲线和心情分开。打开粤调录一句,看音高有没有走在该走的路上。