漢越音韻母系統:從中古漢語十六攝到數百個越南語韻母

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 便無法合理解釋,

為何部分漢越音會出現 uo 的介音。

入聲與韻尾子音

漢越音最珍貴的特點之一,

就是保留了中古漢語大量入聲韻尾。

例如:

| 中古漢語 | 漢越音 | |-----------|---------| | -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

說明系統如何將音韻規律與歷史詞彙資料結合,

產生最終可信度更高的漢越音結果。