#set page(
  width: 595.35pt,
  height: 800pt,
  margin: (x: 57pt, y: 57pt),
)
#set text(
  font: ("Source Serif 4", "Simsun", "TH-Tshyn-P0", "TH-Tshyn-P1", "TH-Tshyn-P2"),
  lang: "zh",
  region: "cn",
  size: 10.7pt,
)
#show regex("[“”。：，、《》（）「」]+"): it => {
  set text(font: "Simsun")
  it
}
#show par: set block(spacing: 0.9em);
#set par(justify: true, first-line-indent: 2em, leading: 0.9em);
#show text.where(weight: "bold").or(strong): it => {
  show regex("\p{script=Han}+"): set text(stroke: 0.5pt)
  it
}
#show heading.where(level: 1): it => {
  set text(size: 20pt)
  set align(center)
  show par: set block(spacing: 0em, inset: 0em, outset: 0em, below: 3em)

  v(2.5em)
  it.body.text.clusters().join("    ")
}
#show heading.where(level: 2): set heading(numbering: "1");
#show heading.where(level: 2): it => {
  let num = counter(heading).get().at(1)
  let counts = "壹贰叁肆伍陆柒捌玖拾".clusters()
  let num-display = if num >= 1 and num <= 10 {
    counts.at(num - 1)
  } else {
    panic("Invalid heading number.")
  }
  v(0.2em)
  h(-0.4em)
  num-display + "、 " + it.body
  v(0.2em)
}
#show heading.where(level: 3): set heading(numbering: "1");
#show heading.where(level: 3): it => {
  let num = counter(heading).get().at(2)
  let counts = "一二三四五六七八九十".clusters()
  let num-display = if num >= 1 and num <= 10 {
    counts.at(num - 1)
  } else {
    panic("Invalid heading number.")
  }
  v(0em)
  num-display + "、 " + it.body
  v(0em)
}
#show heading.where(level: 4): set heading(numbering: "1");
#show heading.where(level: 4): it => {
  let num = counter(heading).get().at(3)
  v(0em)
  str(num) + ".  " + it.body
  v(0em)
}
#show figure.where(kind: table): it => {
  set figure.caption(position: top)
  show figure.caption: c => {
    text(weight: "bold")[
      #v(0.8em)#c.supplement #c.counter.display(c.numbering)~~~~#c.body#v(0.5em)
    ]
  }
  it
}
#import "tools/prelude.typ": xs;

// 正文開始
= 前言

上古音研究一直是漢語音韻學的前沿。從高本漢的《漢文典》以後，出版了好幾部漢語上古音的字典、手冊，其中鄭張尚芳的《上古音系》後附古音字表，能夠比較全面地反映20世紀70年代以來漢語歷史音韻學的發展。這個字表以諧聲分類，對於瞭解上古音是一個很好的安排。19世紀，在達爾文進化論影響下出現了歷史比較語言學，20世紀又出現了演化語言學。 本手冊的創新是從歷史比較法轉向演化語言學，其根本內容就是自然音變和音變鏈。

手冊的編制歷經10年，分兩期推進。

第一期，用上古字建立上古音表。

我們根據上古文獻做成上古字形庫，這項工作主要由顧國林和上海師範大學的研究生葛佳琦、胡平、郭承禹、孟曉紅、吳蕾完成。同時還建立了古音數據庫，這來自兩個基礎材料，一個是蔡夢麒在2014年提供給我的《廣韻校釋》電子材料，另一個是鄭張尚芳撰寫《上古音系》時跟我合作的古音數據庫。2015年，王奕樺在此基礎上擴充成上古音表，這就是本手冊的雛形。

第二期，在嚴格的諧聲分析基礎上做成本手冊。

2020年開始，22位專家、學者先後參加了兩個微信群：“漢語古音手冊”討論群（2020）和“諧聲分析”討論群（2021）。這本手冊包括大量的原始材料，許多青年專家對它們進行了整理，主要工作是聲符整理，這是諧聲系統的基礎；除此之外，還有上古用字和中古切語的整理。其中包括：上古通用字的確定，文字、音韻材料的校對，音韻地位的核實，語音數據的統計，聲符的確定，通假字的比較，等等，這使得本手冊的基礎更爲堅實。

青年專家有李豪、應金琦、肖禕科、張振通、喬宇軒、葛佳琦、潘牧天、畢謙琦、趙庸、王豔紅；電腦專家有顧國林、陳鵬、王奕樺；學者有葉玉英、張富海、鄔可晶、邊田鋼、董建交、王弘治、來國龍、施瑞峰、蔡夢麒。

2013年，我申請到國家社科基金重大項目“基於語音對應關係的漢語和少數民族語言演化語素的研究”，把本手冊列爲這個項目的一部分。在漢藏語歷史比較的基礎上，漢語上古音的研究纔有了更堅實的基礎。子課題的負責人有鄭張尚芳、黃樹先、王雙成、韋樹關、李雲兵。鄭張尚芳2018年去世，他爲漢語歷史音韻學和漢藏曆史比較語言學作出了不可磨滅的貢獻。當古音手冊即將出版的時候，我們深深地表示哀悼。手冊有許多地方是來自於他半個多世紀的諸多努力，同時也超出了他的《上古音系》原來的範圍和水平。本手冊即將出版，可能還存在許多差錯和不足之處。這一方面是對大量數據進行處理時帶來的；另一方面則是本人學術水平的原因。特別是在寫作過程中，我已經看到音韻學有可能發展的高度，演化語言學的新理論，出土文獻和親屬語的新材料，所以，我們很希望再過兩年能刊出手冊的新版本來彌補此版的不足。

== 基本材料

上古音構擬的依據是諧聲材料、諧聲規則和諧聲類型。漢語幾千年的語音和文字演變，雖然會有不確定性，但是總體上有據可依，有理可循。爲此，我們將上古文獻做成資料庫，每個字加上中古音和聲符，以聲符爲單位得到上古的諧聲系列，從而得到諧聲規則和諧聲類型。

=== 古文獻材料

本手冊的研究對象主要是漢語的上古讀音，所以只收錄傳世文獻中的上古用字。如“茶”是後起字，本手冊就沒有收錄，只是把它作爲“荼”的後起字放在檢索中備查。爲了得到上古用字表，我們參考了大量的先秦兩漢文獻，包括十三經、《史記》、《漢書》等89種著作，相關文獻材料取自香港中文大學創建的漢達文庫。

本手冊收錄上古用字18887個，包括主要的異讀用字，這也是第一份比較可靠的上古傳世文獻用字表。

漢字所代表的語素是音義的結合體，只有通過上古的語音特徵來確定上古用字。語音史的分期雖然還有不少爭論，但是主流的意見認爲，上古漢語有以下的語音特徵：一是魚部字的讀音爲#xs(``` a ```)，二是存在輔音叢，三是聲調還屬於非區別性特徵。這三個特徵從先秦到兩漢一直存在，到魏晉就消失了。所以，我們認定上古漢語就是東漢以前所使用的文獻語言。一個人到20歲通常進入語言的穩定期。東漢結束是公元220年，這個時候年屆20歲的作家所使用的就是上古漢語。語言史用某個時間進行切分只是一種統計的方便，本手冊把公元200年左右出生的作家定爲東漢作家，把商周至東漢的文獻定爲本書的收字範圍。但是，漢代的一些通用字在漢達文庫中漏收，如否定詞“無”。許多學者認爲漢代纔有專字“𫡟”，但是西漢武威漢簡《儀禮》、東漢熹平石經都收有否定詞“無”。

漢語的通用字在歷史上有幾個大變化。文字改革以後的用字，我們叫作現代字，隸變以前的文字叫古文字。這兩者之間的古籍通用字也經過了不少變化，本手冊基本上沿用《漢語大詞典》的繁體字作古籍通用字，個別地方根據上古的用字做了調整。

音韻學的研究對象是語素，而不是文字，所以本手冊確定了通用字以後，就不再收錄異體字，只在腳註中註明《廣韻》的異體字以備檢索。

=== 中古音系

上古音研究應該首先從中古的音系開始,《切韻》系統的基本材料就是反切。通過反切行爲和反切規則能切分成的基本單位是聲、韻、調。

漢語最早形成的共同語即洛陽王室的語言，叫作“雅言”。這種共同語和中古時代的洛陽方言一脈相承。晉室從洛陽南遷，形成金陵的書音系統，是《切韻》的音系基礎。漢語幾千年來，從殷商的雅言到中古的洛陽金陵書音系統，再到中原官話，雖然有方言的變動，但共同語卻都有相同的音系基礎和語音規則。陸法言的《切韻》一方面記錄了上萬字的讀音材料，另一方面將其分析爲嚴密的音韻系統，這爲梳理現代方言的語音變化，構擬上古漢語的語音和形態提供了可能。可以說，沒有《切韻》，就不可能有現在的漢語語音史，《切韻》的出現實在是漢語語音史的幸運。

《切韻》原本已經失落，後來有過許多修訂和擴充的本子，其中最常見的就是《廣韻》。許多音韻學家用不同的本子和其他語言材料對《廣韻》做了細緻的校對，包含了《切韻》的精華，所以本手冊所用的《切韻》實際上就是《廣韻》的材料。我們基本採用《廣韻》反切，並按照前人與我們自己的校勘作了改動。不見於《廣韻》的用字，酌取《集韻》《說文》《玉篇》等中古《切韻》系韻書。《切韻》原本有193韻，王仁昫《刊謬補缺切韻》（即《王三》）增加爲195韻。因爲《王三》爲最早的《切韻》完本，而且《王三》的韻目更有系統性，故本手冊採用《王三》的音韻框架。《集韻》等《切韻》系韻書，與《切韻》的音韻框架並不完全一致，我們通過梳理它們的讀音音注與《切韻》的對應關係，還原作《切韻》的音韻地位。

晉室南渡以後金陵有兩個語言社團，一個是洛陽士族形成的書音系統，一個是金陵庶族形成的口語系統。二等韻在這兩個語言社團中的讀音相似又不完全一樣，經常出現異讀。如“頑”有刪、山兩個讀音，從“元”得聲的諧聲系列中，二等只能出現在刪韻，不可能出現在山韻。《切韻》佳與麻、佳與皆、山與刪、庚與耕、銜與鹹、轄與黠、陌與麥、狎與洽都有相混現象，實際上就是金陵兩個語言社團的不同讀音。本手冊的這些異讀通過諧聲系統進行改動。

有些四等的合口介音在《切韻》時代失落，如四等“絃𣒃”，原來應該有合口介音，因爲四等帶前元音，合口介音舌位靠後，容易失落變成開口字。本手冊根據諧聲在上古音中補上合口介音，但是中古的開合口則沿用文獻的原貌。

有些二等的合口介音#xs(``` _w ```)在中古二等介音#xs(``` _M_t ```)的影響下變成介音#xs(``` _M_t ```)，之後變成開口字：#xs(``` _C_o_w_M_t ```) -> #xs(``` _C_o_M_t_M_t ```) -> #xs(``` _C_o_M_t_-_t ```)。如二等“街”原來應該有合口介音，到中古變成開口字：#xs(``` *k_w_r_te_- ```)>#xs(``` k_M_t_M_te_- ```)>中古#xs(``` k_M_tE ```)。

《切韻》不是古今南北方音的大雜燴，陸法言的記音以金陵洛下書音系統爲嚴格依據，所以《切韻》是實際語言的記錄。但是，《切韻》除了嚴格遵照書音系統以外，還摻雜了古代經師、文獻的反切和記音。如“臡”字，《切韻》有“人兮反”“奴低反”兩讀，都讀齊韻。齊韻屬於四等韻，四等韻是不與日母配合的。陸法言從《字林》或徐邈的字典上看到，“臡”字的日母讀音與他自己的金陵音系不合，於是他把這些反切抄到《切韻》中作爲參考讀音。他沒有寫明出處，因而造成混亂。本手冊通過中古音跟諧聲系統的比較，消除了這些混亂。

== 上古音系

=== 上古的音節結構

#context {

  import "@preview/cetz:0.2.2": canvas, draw, tree


  set align(center)
  set text(size: 9.5pt)

  let data = (
    [A],
    ([B], [C], [D]),
    ([E], [F]),
  )

  let syllable-structure = canvas(
    length: 1cm,
    {
      import draw: *

      tree.tree(
        (
          [音節],
          ([[聲母]], [[冠音]], ([聲幹], [主輔音], [[後輔音]])),
          ([韻母], ([韻部], [主元音], [[韻尾]]), [[後韻尾]]),
        ),
        grow: 1.2,
        spread: 2,
        draw-edge: (from, to, ..) => {
          let (a, b) = (from + ".center", to + ".center")
          line((a, .4, b), (b, .5, a))
        },
      )
    },
  )

  v(0.4em)
  syllable-structure
  h(0em)
  v(-1em)
}

上古有兩個後韻尾（postcode）：#xs(``` _-_o? ```)、#xs(``` _-_os ```)，前者到中古形成上聲調，後者形成去聲調。後韻尾屬於後綴，不屬於詞根。爲了便於詞根處理，上古韻母系統中只用韻部作基本單位，結合中古的聲調反推後韻尾，再補全上古的韻母。

一個音節可能包括一個詞根與前後綴，這是從構詞平面所作的分析。但是目前好像沒有與構詞對應的音系名稱。如“蓋”有兩讀：“古太切”的#xs(``` _*_gka_-bs ```)和“古盍切”的#xs(``` _*_gka_-b ```)，詞根是#xs(``` _*_gka_-b ```)。我們把音節中所包含的詞根叫作音節根，同時把詞根的音節叫作根音節。如音節#xs(``` ka_-bs ```)中的詞根部分#xs(``` ka_-b ```)叫作音節根：#xs(``` ka_-b ```)是音節，同時是詞根，叫作根音節。

=== 上古聲母輔音

上古聲母分單聲母與輔音叢兩類。下面是單聲母，都是簡單輔音，用大寫字母代表聲類：

#figure(
  table(
    columns: (1fr,) * 11,
    align: center + horizon,
    inset: (y: 0.8em),
    [聲類],
    [P],
    [T],
    [K],
    [Q],
    [L],
    [R],
    [S],
    [M],
    [N],
    [NG],
    table.cell(rowspan: 3)[聲母],
    xs(``` p ```),
    xs(``` t ```),
    xs(``` k ```),
    xs(``` q ```),
    xs(``` l ```),
    xs(``` r ```),
    xs(``` s ```),
    xs(``` m ```),
    xs(``` n ```),
    xs(``` N ```),
    xs(``` p_h ```),
    xs(``` t_h ```),
    xs(``` k_h ```),
    xs(``` q_h ```),
    xs(``` l_0 ```),
    xs(``` r_0 ```),
    xs(``` s_h ```),
    xs(``` m_0 ```),
    xs(``` n_0 ```),
    xs(``` N_0 ```),
    xs(``` b ```),
    xs(``` d ```),
    [],
    xs(``` G\ ```),
    xs(``` l_0_h ```),
    [],
    xs(``` z ```),
    xs(``` m_0_h ```),
    xs(``` n_0_h ```),
    xs(``` N_0_h ```),
  ),
  caption: "上古音單聲母",
) <上古音單聲母表>

@上古音單聲母表 的單聲母是從上古漢語資料庫歸納出來的，其中#xs(``` r_0_h ```)空缺，在實際的語言中也許有可能出現。除了單輔音的聲類以外，還有兩個單輔音組成的輔音叢。以下主要討論CL系列，其中L包括#xs(``` r ```)和#xs(``` l ```)，它們變成單輔音以後有不同的音變。

==== 帶冠輔音

東南亞許多語言中有一種包含次要音節（minor syllable）的音節類型，長度一般只有主要音節的一半，所以馬提索夫（Matisoff 1973）把次要音節和主要音節組成的詞叫作“一個半音節的詞”（sesquisyllabic word）。大部分次要音節可以是輔音，也可以是沒有音位價值的元音，音系功能實際上等同於一個輔音。許多人把它們叫作前置輔音，也有學者稱作前冠音。比起鼻音前置輔音、噝音前置輔音、塞音前置輔音來，鼻冠音、噝冠音、塞冠音更容易上口，把它們叫作冠音更好。上古音音節中的冠音往往是帶有無音位價值的弱元音，代號記作Pre。

冠音是弱化音，用一個小圓點記音，上古以後都已經失落，#xs(``` _C_o._L_o ```)->#xs(``` _L_o_-_o ```)。如“藍”上古#xs(``` g.ra_-m ```)>#xs(``` ra_-m ```)>中古#xs(``` lAm ```)，可比較泰文中的藉詞#xs(``` gra:m_A_o_2_o ```)藍靛。有些以母字也有類似的帶輔音的來源：#xs(``` _C_o.l ```)->#xs(``` l_-_o ```)，如“羑”#xs(``` k_w.lM? ```)>#xs(``` lu? ```)。

==== 複輔音

複輔音的#xs(``` _C_o ```)與#xs(``` _L_o ```)有兩次成阻，兩次除阻。#xs(``` _C_o ```)除阻以後#xs(``` _L_o ```)再成阻，實際上就是由兩個單輔音組成。複輔音變成單輔音的時候，有以下的音變規則#xs(``` _C_o_L_o ```)->#xs(``` _T_o ```)，其中的#xs(``` _T_o ```)來自於#xs(``` _C_o ```)的發音方法和#xs(``` _L_o ```)的發音部位。如藏頭“肘”#xs(``` kru ```)到拉薩話中變成了#xs(``` ts`u ```)<#xs(``` _*_gt`u ```)，#xs(``` t` ```)的發音部位與#xs(``` kru ```)中#xs(``` r ```)的捲舌部位相同，#xs(``` t` ```)的發音方法與#xs(``` kru ```)中的塞音#xs(``` k ```)相同。漢語的“塘”#xs(``` dAN ```)<#xs(``` gla_-N ```)，#xs(``` d ```)的發音部位與#xs(``` l ```)的舌齒音相同，#xs(``` d ```)的發音方法與塞音#xs(``` g ```)相同。曲瑤語和侗臺語中的“池塘”借自漢語，可比較長坪勉語#xs(``` gla:N ```)、全州勉語#xs(``` glaN ```)、板考布依語#xs(``` gAN ```)、隆安壯語#xs(``` hlaN ```)、扶綏壯語#xs(``` laN ```)，這些材料正可以印證漢語“塘”的複輔音聲母的音變規則。複輔音是輔音叢中的一類，東亞語言中的這一類有特殊的音變類型。

==== 複雜輔音

雅洪托夫的有些輔音叢並不採用複輔音的音變規則。例如，他把二等字“家”擬作複輔音#xs(``` _*_gkra ```)，按照上面複輔音的變化規則應該是#xs(``` kra ```)>#xs(``` t`a ```)>#xs(``` ts`a ```)，但它在中古以後卻是變爲#xs(``` kia ```)>#xs(``` ts\ia ```)。所以，雅洪托夫的這種輔音叢應該是複雜輔音，它變成單輔音的音變規則是：#xs(``` k ```)是主要調音，讀音保留不變，#xs(``` r ```)是次要調音，變成介音或者失落，如“家”#xs(``` k_r_ta_- ```)>#xs(``` k_M_ta_- ```)>#xs(``` kia_- ```)>#xs(``` ts\ia ```)。爲了與複輔音區分，複雜輔音的第二個成分用上標記音，如家#xs(``` _*_gk_r_ta_- ```)。

賴福吉（2015）提到複雜調音這個術語的時候，認爲是塞音（主要調音）+近音（次要調音）的組合。次要調音成分記作上標形式，如脣化音#xs(``` k_wa ```)，齶化音#xs(``` k_ja ```)。二等聲母就是#xs(``` r ```)化音#xs(``` k_r_ta ```)，它與其他的複雜輔音一樣，主要調音成分#xs(``` k ```)保持不變。

上古漢語的一些字與塞音或近音都發生關係，到中古的時候塞音保留不變，這就是來自上古的複雜輔音聲母，如“告”#xs(``` _*_gk_lu_-s ```)>#xs(``` ku ```)>#xs(``` k_@_tu ```)>中古#xs(``` kAu ```)，可比較泰文#xs(``` kluh ```)<#xs(``` klaawh ```)（說、說話）。“鴻”#xs(``` _*_gg_lo_-N ```)>#xs(``` go_-N ```)>中古#xs(``` h\uN ```)，可比較藏文#xs(``` kruN ```)（雁）。“刻”#xs(``` _*_gk_lM_- ```)>#xs(``` kM_- ```)>中古#xs(``` k_h@k ```)，可比較景頗語#xs(``` krok ```)、佤語#xs(``` lok ```)（雕刻）。

上古漢語的複雜輔音分爲三套#xs(``` _C_o_j_-_o ```)、#xs(``` _C_o_l_-_o ```)、#xs(``` _C_o_r_t_-_o ```)。#xs(``` _C_o ```)是主要調音。#xs(``` _C_o_l_-_o ```)、#xs(``` _C_o_r_t_-_o ```)中的#xs(``` _C_o_-_o ```)只限於鈍音，如舉#xs(``` _*_gk_la? ```)>中古#xs(``` ka? ```)>中古#xs(``` ki7 ```)，鏗#xs(``` _*_gk_h_r_ti_-N ```)>中古#xs(``` k_h_M_tEN ```)。其中的#xs(``` _C_o_j_-_o ```)變爲章組。複輔音#xs(``` _C_ol_-_o ```)、#xs(``` _C_or_-_o ```)加上次要調音#xs(``` _j ```)以後也變成章組，複輔音先變成塞音，如#xs(``` kl_j_-_o ```)>#xs(``` t_j_-_o ```)，之後再與次要調音合成#xs(``` t_j_-_o ```)>#xs(``` ts\_-_o ```)，如振#xs(``` _*_gkl_jMn ```)>#xs(``` t_jMn ```)>中古#xs(``` ts\in ```)。