Quizzman Fanqie Engine 系列(第七篇)
上一篇:聲調演算法:Eight Tone Slot
漢越音韻母系統:從中古漢語十六攝到數百個越南語韻母
如果說聲母決定了一個音節如何開始,那麼韻母便決定了它如何結束。事實上,漢越音超過七成以上的差異都來自韻母。元音、介音與韻尾共同形成了 -ang、-anh、-iêm、-ương、-uân、-uốc、-iệt、-oát 等熟悉的越南語韻母。而在這些表面形式背後,則是中古漢語由十六攝、眾多韻部及多層音變規律構成的龐大音韻系統。Quizzman Fanqie Engine 並不是逐一記錄每個韻母,而是透過演算法完整建模其歷史演變過程。
為什麼韻母比聲母更複雜?
上一篇文章提到,
聲母主要決定音節的起始子音。
例如:
幫
↓
b
或:
明
↓
m
雖然也存在一些例外,
但中古漢語的聲母數量相對有限。
韻母則複雜得多。
一個韻母,
並不只是元音而已。
它同時包含:
- 介音。
- 主要元音。
- 韻尾元音。
- 韻尾子音。
- 與聲調的關係。
- 與開口、合口的關係。
- 與等的關係。
- 與整個攝系統的關係。
換句話說,
漢越音大部分的音節面貌,
都是由韻母所決定。
什麼是韻母?
在中國傳統音韻學中,
一個音節可分為兩大部分:
聲母
+
韻母
聲母,
是音節開頭的子音。
韻母,
則包含聲母以外的所有部分。
例如:
東
↓
đ
+
ông
其中:
đ
↓
聲母
ông
↓
韻母
又例如:
國
↓
qu
+
ốc
以及:
學
↓
h
+
ọc
許多學習漢越音的人,
往往較注意聲母。
然而,
真正決定音節特色的,
其實是韻母。
韻部並非彼此孤立
翻閱《廣韻》時,
可以看到數百個不同的韻部。
乍看之下,
這似乎十分難以掌握。
然而,
早期音韻學家便已發現:
許多韻部在歷史演變上的行為非常相似。
因此,
便將它們歸納成較大的分類:
攝(攝)。
可以簡單理解為:
韻
↓
攝
或者說:
攝,就是一群具有相似演變規律的韻部家族。
屬於同一攝的韻,
在發展成漢越音時,
通常具有相近的變化方向。
因此,
Quizzman Fanqie Engine 會先判斷「攝」,
而不是直接針對每一個韻部建立規則。
中古漢語十六攝
《廣韻》的韻系,
一般可歸納為十六攝。
| 攝 | 代表韻 | |------|---------| | 通攝 | 東、冬、鍾 | | 江攝 | 江 | | 止攝 | 支、脂、之、微 | | 遇攝 | 魚、虞、模 | | 蟹攝 | 齊、佳、皆、灰、咍、祭…… | | 臻攝 | 真、諄、文、欣、魂…… | | 山攝 | 元、寒、桓、刪、山…… | | 效攝 | 蕭、宵、肴、豪 | | 果攝 | 歌、戈 | | 假攝 | 麻 | | 宕攝 | 唐、陽 | | 梗攝 | 庚、耕、清、青 | | 曾攝 | 蒸、登 | | 流攝 | 尤、侯、幽 | | 深攝 | 侵 | | 咸攝 | 覃、談、鹽、添、咸、銜…… |
這是整個中國傳統音韻學最重要的分類之一。
若不知道一個韻屬於哪一攝,
幾乎無法建立系統性的漢越音推導演算法。
為什麼要依照攝來處理?
假設必須為每一個韻部個別撰寫規則,
規則數量將高達數百條。
若改以攝為單位,
大量規律便可共用。
例如:
通攝
↓
多數入聲保留 -c 韻尾
而:
流攝
↓
常發展為
-âu
-ưu
-u
又例如:
梗攝
↓
-anh
-inh
-ênh
依不同條件而變化。
因此,
Engine 不需撰寫數百條零散規則,
而是建立每一攝的整體模型。
這也是整個系統兼具準確性與可擴充性的原因。
「等」如何影響韻母?
除了攝之外,
每個韻還屬於四等之一:
- 一等
- 二等
- 三等
- 四等
「等」反映的是元音結構上的細微差異。
許多情況下,
即使:
- 聲母相同。
- 同屬一攝。
只因等不同,
最後便形成不同的漢越音韻母。
例如:
相同聲母
+
相同攝
↓
不同等
↓
不同元音
若忽略等,
推導錯誤率將快速增加。
因此,
Quizzman Fanqie Engine 將「等」完整保存於 Middle Chinese Profile 中。
開口與合口
另一項經常被忽略的重要因素,
便是:
- 開口(開口)
- 合口(合口)
可以簡單理解為:
- 開口:沒有唇化介音。
- 合口:具有唇化成分。
這會直接影響不少漢越音韻母。
例如:
a
↓
oa
以及:
ang
↓
oang
在特定語音環境下,
若忽略開口、合口,
Engine 便無法合理解釋,
為何部分漢越音會出現 u 或 o 的介音。
入聲與韻尾子音
漢越音最珍貴的特點之一,
就是保留了中古漢語大量入聲韻尾。
例如:
| 中古漢語 | 漢越音 | |-----------|---------| | -p | -p | | -t | -t | | -k | -c/-ch |
這些韻尾,
在現代普通話中幾乎已完全消失。
例如:
| 漢字 | 普通話 | 漢越音 | |------|---------|---------| | 法 | fǎ | pháp | | 德 | dé | đức | | 國 | guó | quốc | | 學 | xué | học |
對 Quizzman Fanqie Engine 而言,
正確判斷韻尾的重要性,
絲毫不亞於聲調。
為什麼有時是 -c,有時卻變成 -ch?
這是最常見的問題之一。
例如:
國
↓
quốc
但:
白
↓
bạch
兩者原本都來自中古漢語 -k 韻尾,
為何最後不同?
答案就在於:
顎化(Palatalization)。
在部分元音環境中,
韻尾 -k 會逐漸向口腔前方移動,
最後演變成:
-k
↓
-ch
而其他環境則維持:
-k
↓
-c
這並不是例外,
而是一條音韻規律。
Quizzman Fanqie Engine 會依據:
- 攝。
- 核心元音。
- 顎化條件。
共同判斷結果,
而非逐字記憶。
Rule Engine,而非對照表
仔細觀察整個韻母推導流程,
可以發現,
Engine 並不是詢問:
「這個字怎麼讀?」
而是依序回答:
- 屬於哪個韻?
- 屬於哪一攝?
- 第幾等?
- 開口還是合口?
- 入聲還是舒聲?
- 是否發生顎化?
完成所有判斷後,
才生成對應的漢越音韻母。
因此,
同一套規律,
即可重複應用於數千個漢字。
建模,而不是記憶
這正是 Quizzman Fanqie Engine 一貫的設計理念。
一般字典儲存的是:
國
↓
quốc
德
↓
đức
學
↓
học
三筆彼此獨立的資料。
Quizzman Fanqie Engine 則儲存:
通攝
↓
規律 A
江攝
↓
規律 B
梗攝
↓
規律 C
再由演算法自動推導:
- quốc
- đức
- học
- cốc
- mục
- cực
- bạch
- mạch
以及數千個其他漢越音。
這正是資料庫與推論系統最大的差異。
下一篇
了解韻母推導之後,
漢越音形成流程已大致完整。
然而,
實際語言仍存在許多僅靠音韻規律無法決定的情況,
例如:
- 多音字。
- 多種反切。
- 多個歷史讀音層。
- 歷史例外。
下一篇將介紹 Quizzman Fanqie Engine 的 Lexical Normalization,
說明系統如何將音韻規律與歷史詞彙資料結合,
產生最終可信度更高的漢越音結果。