CMU Subword Modeling | 14 Descriptive Phonetics

本文解读 CMU "Subword Modeling" (Spring 2026) 第14讲:Descriptive Phonetics

这节课从「文字不等于语言」出发,介绍了语音学的核心框架:如何用发音部位、发音方式、浊音性等维度系统地描述人类语言中的所有语音,以及 phone 和 phoneme 的关键区别。最终落脚到 G2P(字素到音素转换):为什么把文字层面的输入转到语音层面的表示,对多语言 NLP 很重要。

1. 文字不等于语言

在开始之前,先澄清一个很多人都会搞混的事情:文字系统(orthography)和语言本身是两码事。

你一定听过有人说「中文是最古老的语言」或者「泰米尔语是南印度最古老的语言」。其实不对------所有语言都一样古老(都是人类祖先一路传下来的),只是有些语言的书写传统比较早而已。把「有文字记录」等同于「语言的年龄」,就好比说「有身份证的人比没身份证的人年纪大」一样荒谬。

搞清楚这个区别之后,就能理解这堂课的出发点了:同一个语音,在不同语言的文字系统里写法完全不同。

比如英语 shoe 里的那个 /ʃ/ 音:

语言 写法
英语 ⟨sh⟩(有时候还有 ⟨ti⟩、⟨si⟩)
德语 ⟨sch⟩
法语 ⟨ch⟩
苗语 ⟨s⟩
葡萄牙语 ⟨x⟩ 或 ⟨z⟩

同一个音,五种写法------而且这些语言用的还都是拉丁字母。如果再加上阿拉伯文、天城文、汉字这些不同的 script,情况只会更复杂。

所以问题来了:如果我们想系统地研究语音、研究文字系统跟语音之间的关系,我们需要一套不依赖于任何特定语言的、统一的标音方案

这就是 IPA(国际音标)存在的意义。

2. Phoneme 和 Phone:功能相同 ≠ 物理相同

IPA 能区分非常细微的语音差异,但这就引出一个关键问题:区分到什么粒度才算合理?

2.1 一个让英语母语者意外的事实

英语里 "pit" 的 p 和 "spit" 的 p,物理上是不同的音。用 IPA 来写的话:

  • "pit" → [pʰ](送气)
  • "spit" → [p](不送气)

可以做个实验:把手放在嘴前面,说 "pit",你会感到一股气流;说 "spit",那股气流明显弱很多。物理上确实不一样。

但对英语母语者来说,这两个音「听起来一样」。为什么?因为在英语里,这两个音永远不会出现在同一个位置上互相竞争 ------[pʰ] 只出现在词头和重读音节开头,[p] 只出现在 s 后面。它们的分布(distribution)是互补的,换一个用另一个不会改变词义。

但到了普通话里,情况完全不同。普通话的 "波"(bō)是 [p],"坡"(pō)是 [pʰ]------这两个音在同一个位置上对立,区分不同的词

2.2 Phone、Phoneme、Allophone

这就引出三个核心概念:

  • Phone(语音):物理层面上实际发出的声音。[p] 和 [pʰ] 是两个不同的 phone。
  • Phoneme(音位):功能层面上的抽象单位。在英语里,[p] 和 [pʰ] 属于同一个 phoneme /p/。
  • Allophone(音位变体):属于同一个 phoneme 的不同 phone。[p] 和 [pʰ] 是 /p/ 的 allophone。

用一个 NLP 的类比来理解:phonemicization(音位化)本质上是一种信息压缩。 它把可预测的、冗余的变化因素给 factor out,只保留具有区分意义的对比信息(contrastive information)。

这跟做 NLP 时候的 normalization 思路其实一样------把大小写统一、把同义词映射到同一个 token,都是在做类似的压缩。只不过语音学家做的是在声学信号层面的压缩。

Mortensen 还特别提到一个有趣的事实:连语音科学的研究者有时候都会搞混 phone 和 phoneme------Interspeech 2024 的投稿指南里专门提醒作者「请正确使用 phoneme 和 phone 这两个术语」。

3. 描述一个辅音:Place × Manner × Voicing

搞清楚了 phone 和 phoneme 的区别之后,接下来的问题是:怎么系统地描述世界上所有可能的语音?

IPA 的做法是把每个辅音看成几个维度的交叉。

3.1 发音部位(Place of Articulation)

每个辅音都有一个「发音部位」------发音时声道中最窄的地方在哪

想像把一个人的头从正中间劈开(语音学家管这叫 mid-sagittal section),你会看到从声门到嘴唇之间一系列的解剖结构。不同的音就是在这条通道的不同位置制造阻碍:

  • p\]:双唇闭合 → **双唇音(bilabial)**

  • k\]:舌背靠近软腭 → **软腭音(velar)**

3.2 发音方式(Manner of Articulation)

同一个部位可以用不同的方式制造声音。/t/ 和 /s/ 的发音部位相同(都是齿龈),但方式不同:

  • 塞音(plosive/stop):完全堵住气流再释放,比如 [p] [t] [k]
  • 鼻音(nasal):口腔堵住但软腭打开,气流从鼻腔出去,比如 [m] [n] [ŋ]
  • 颤音(trill):松弛闭合让气流引起振动,比如西班牙语的大舌颤音 [r]
  • 闪音(tap/flap):瞬间的一下接触,比如美式英语 water 里的 [ɾ]
  • 擦音(fricative):气流通过狭窄缝隙产生湍流,比如 [s] [f] [ʃ]
  • 近音(approximant):较松的接近,比如 [w] [j] [ɹ]
  • 边音(lateral):气流从舌头两侧通过,比如 [l]

3.3 气流机制(Airstream Mechanism)

绝大多数语音用的都是肺部呼气(pulmonic egressive)------肺把气往外推。但世界上还存在其他机制:

  • 搭嘴音(click):用舌头和软腭之间制造真空再释放,只出现在南非的一些语言(如 Xhosa)和墨西哥的一种 Nahuatl 方言里。
  • 挤喉音(ejective):声门关闭后喉头上升挤出空气。
  • 内爆音(implosive):声门关闭后喉头下降制造负压,比如越南语的 đ。

3.4 浊音和清音(Voicing)

发 [s] 的时候,声带不振动(清音/voiceless);发 [z] 的时候,声带在振动(浊音/voiced)。把手指放在喉咙上交替发这两个音,能明显感受到区别。

但现实比「清 vs 浊」的二分法更复杂。Mortensen 引入了一个关键概念:VOT(Voice Onset Time,嗓音起始时间)

  • d\]:声带从头到尾都在振动 → 负 VOT

  • tʰ\]:声带在释放很久之后才开始振动 → 正 VOT

4. 元音:高低、前后、圆唇

元音的描述方式跟辅音不同,用的是三个维度:

  • 高度(height):舌头离口腔顶部的距离。说 "beet" 时舌头位置高,说 "bat" 时低。
  • 前后(backness):舌头的最高点偏前还是偏后。"beet" 偏前,"boot" 偏后。
  • 圆唇(rounding):嘴唇是否圆起来。"boot" 有圆唇,"beet" 没有。

这三个维度构成了一个三维空间,IPA 的元音图就是这个空间的二维投影(高度 × 前后),圆唇作为附加标记。

可以做个实验来感受:先发 "beet" 的元音 [i],然后不停嘴,慢慢滑到 "boot" 的元音 [u]。你能感到舌头在往后移,同时嘴唇在慢慢收圆。这就是你在这个三维空间里移动了一下。

5. 把所有维度做交叉积:IPA 辅音表

把 place × manner × voicing × airstream mechanism 做交叉积(cross product),去掉那些在自然语言中从未出现过的组合,就得到了完整的 IPA 辅音表。

这张表本质上就是一个高维特征空间的表格化呈现:每一行是一种 manner,每一列是一种 place,每个格子里有清/浊两个选项。每个辅音就是这个高维空间中的一个点。

这个思路其实跟做 NLP 特征工程的逻辑一样------用一组离散特征的交叉来定义一个空间,然后把每个数据点(这里是每个辅音)放进去。区别在于 IPA 的特征是语音学家手动定义的,而 embedding 的特征是模型自己学出来的。

6. 跟 NLP 的连接:G2P

这堂课配套的 Mini-Project 3 是做一个 G2P(Grapheme-to-Phoneme)系统------把文字转成语音表示。

为什么这很重要?因为:

文字是 NLP 模型实际看到的输入,但语音才是语言的本质。

文字系统充满了不规则性和歧义性。英语是出了名的拼写混乱:同一个字母在不同词里发不同的音,同一个音在不同词里用不同字母写。阿拉伯语和乌尔都语更极端------短元音在书写中根本不标出来,读者要靠上下文自己脑补。

如果 NLP 模型只看到文字层面的 token,它就被困在了文字系统的混乱里。而 G2P 可以把输入转换到一个更干净、更系统化的表示空间------语音空间。在这个空间里,语言的规律性更容易被发现。

Mortensen 还提到了一个很有意思的方向:为乌尔都语(Urdu)建 G2P。乌尔都语用波斯-阿拉伯文写,短元音不标注,所以从文字到语音是一个有歧义的解码问题。一种思路是用印地语(Hindi)的发音词典来训练一个语音层面的语言模型,因为乌尔都语和印地语其实是同一种语言(Hindustani)的两种变体,只是文字系统不同。然后用这个语言模型来对乌尔都语的 noisy 输出做解码。

这种跨文字系统但同语言的知识迁移,本质上就是在利用语音表示的跨正字法不变性

7. 总结

概念 核心思想 跟 NLP 的关系
Orthography ≠ Language 文字只是语言的一种编码方式 tokenizer 切的是文字,不是语言本身
Phone vs Phoneme 物理声音 vs 功能单位 phonemicization ≈ 信息压缩 / normalization
Place × Manner × Voicing 用几个离散维度的交叉积定义语音空间 类似于特征工程或 discrete embedding
VOT 是连续谱 清浊不是二元开关,而是连续值 语音模型需要学连续特征而非离散标签
G2P 从文字表示转到语音表示 把输入转到更干净的表示空间,有助于下游任务

这堂课的核心 takeaway:

文字系统是语言的一件外衣,而且不同语言穿的衣服款式完全不同。如果只盯着衣服看(tokenizer 切文字),很容易被表面差异误导。脱掉这层衣服,看底下的语音结构,很多跨语言的规律就会浮出来。

IPA 就是一套帮你「脱衣服」的工具,而 G2P 就是自动化这个过程的技术。对于做多语言 NLP 的人来说,理解这一层表示------文字和语音之间的映射------可能比你想象的更有价值。

相关推荐
美团技术团队2 小时前
突破零样本TTS音色克隆上限:LongCat-AudioDiT 的声音克隆艺术
人工智能
编码小哥2 小时前
OpenCV图像增强实战:对比度调整与Gamma校正
人工智能·opencv·计算机视觉
小机学AI大模型2 小时前
Opus 4.7 上线:新模型一发布就想“辞职研究“?先用四道题测完再决定
人工智能
Ricardo-Yang2 小时前
# BPE Tokenizer:从训练规则到推理切分的完整理解
人工智能·深度学习·算法·机器学习·计算机视觉
GISer_Jing2 小时前
AI Agent Skills 发现指南:前端工程化与自动化全景
前端·人工智能·自动化
心.c2 小时前
从 Function Call 到渐进式 Skill:大模型能力扩展范式的演进与落地实践
前端·人工智能·react.js·ai·react
IT_陈寒2 小时前
Vue的响应式更新把我坑惨了,原来问题出在这里
前端·人工智能·后端
智慧地球(AI·Earth)2 小时前
用 Python 构建一个“记性好”的 AI 助手:JSON本地存储和向量检索
人工智能·python·json
_张一凡2 小时前
【大语言模型学习】2026年十大LLM训练数据集汇总
人工智能·学习·语言模型·aigc·大模型训练·llm数据集