目錄(20 節)
廣東話字庫與自訂詞彙 API 實戰:粵拼、異讀、專有名詞點樣教得識
字庫唔係一本字典,係三層資料。本文講清字形/讀音/情境三層、五個免費資源點揀、專有名詞五類規則、ASR 詞表 50 詞上限點用,同一個可跟做嘅 A/B 驗收流程。
一句答你:廣東話「字庫」唔係一本字典咁簡單,而係三層資料——字形(點寫)、讀音(點讀)、情境(幾時讀邊個音)。 你做 ASR,最重要的是第三層;你做 TTS,最痛的是第二層;你做人手校對,最花時間的是第一層。
大部分團隊講「廣東話字庫」,其實講緊三樣唔同嘅東西,然後互相聽唔明。工程師想要一份「粵拼對照表」;營運想要一份「公司專有名詞清單」;編輯想要一份「口語字點寫」。呢篇會先把三層分開,再講實務:五個免費資源點揀、專有名詞五類規則、語音辨識嘅自訂詞彙點準備,同一個唔會自欺嘅 A/B 驗收流程。
Key Takeaways
- 字庫分三層:字形、讀音、情境讀法。搞亂層數,就會出現「查得到字但讀錯音」。
- 免費資源各有用途:查讀音用審音配詞字庫、查拼音方案用粵拼、查口語詞義用粵典、做批次處理用 PyCantonese。
- 「有網頁查詢」唔等於「有 API」;「開源」唔等於「商用授權自動 OK」。
- 專有名詞唔需要一個大詞庫;需要一份小型、精準、分行業嘅詞表。
- ASR 詞表有硬上限(50 詞、單詞 ≤30 字、提示 ≤200 字),塞爆只會互相干擾。
- 加詞之後一定要跑 A/B:有修正、零回歸,才算成功。
廣東話字庫三層:唔好再用一本字典嘅心態
| 層 | 內容 | 錯了會點 | 去邊度查 |
|---|---|---|---|
| ① 字形 | 口語字點寫(嘅/啲/咗/喺/唔) | 搜尋唔到、對外文件唔專業 | 粵語詞典、公司內部風格指南 |
| ② 讀音 | 粵拼、聲調、異讀、文白異讀 | TTS 讀錯、ASR 標音錯 | 審音配詞字庫、粵拼方案 |
| ③ 情境讀法 | 同一個字喺人名/地名/專有名詞嘅讀法 | 人名讀錯最尷尬;專名聽錯最影響業務 | 行業詞表、客戶提供讀音 |
三個層次嘅維護節奏完全唔同:字形一年改幾次;讀音跟字典版本;情境讀法每個新客戶、每個新產品都要更新。所以真正需要「系統化」嘅係第三層,唔係第一層。
先講清兩個成日被混用嘅詞:字庫 係指一份「字/詞 → 讀音」嘅對照資料,用嚟解決「呢個字點讀」;場景詞表 係指一份只屬於某個團隊、某個項目嘅專名清單,用嚟解決「呢個陌生人名點解要聽得明」。兩者唔可以互相代替:查得到讀音,唔代表引擎喺你嘅會議入面聽得返出嚟。
為何第三層最影響 ASR
語音辨識嘅錯誤,大部分唔係「唔識聽音」,而係「揀錯同音字」。而揀字嘅依據係語言模型對「呢個詞有幾常見」嘅判斷。你公司名、產品代號、同事花名,永遠唔會係常見詞——所以佢一定會被同音字取代。
呢個問題唔可以靠「換一個更強嘅引擎」解決,因為對任何引擎嚟講,你嘅專名都係低頻詞。正解係話佢知呢啲詞存在,即係自訂詞彙(hotwords)。
五個免費資源點揀(同各自嘅限制)
| 資源 | 主要用途 | 有冇 API | 授權/使用要留意 |
|---|---|---|---|
| 中大粵語審音配詞字庫 | 查單字讀音、異讀 | 網頁查詢為主,未見公開 REST API | 學術資源;大量抓取要先問准 |
| 香港語言學學會粵拼方案 | 拼音標準、聲調標示 | 方案文件,唔係 API | 用嘅時候要跟返官方拼寫規則 |
| 粵典 Words.hk | 口語詞義、例句、用法 | 以網站/社群資料為主 | 內容有版權;引用要標來源 |
| PyCantonese | 批次斷詞、G2P(字→粵拼/IPA) | Python 套件(本地跑) | 開源,但要睇授權條款同版本 |
| Canto-HK-G2P(KongHub) | 高效本地 G2P,處理數字、日期、中英夾雜 | 開源套件 | 開源,商用前要自行核授權 |
兩個常見誤解:
- 「官網有得查,就等於有 API。」 大部分學術字庫只提供網頁查詢,冇對外 API;你要大量處理,就要自己想辦法(匯出、抄表、或者用開源套件)。
- 「開源就係免費商用。」 唔一定。每個專案嘅授權條款唔同,商用前要逐個核,尤其是你要把資料嵌入產品嘅時候。
專有名詞五類規則
| 類別 | 例子 | 準備方法 | 常見錯法 |
|---|---|---|---|
| 人名 | 陳嘉詠、阿龔、Yvonne 姐 | 客戶提供讀音;同音字要標明 | 用最常見同音字(嘉詠→嘉泳) |
| 品牌/公司 | 港嘢、Canto-Gen、客戶品牌 | 英文名保留原形;中文名統一寫法 | 中英混寫、大小寫不一 |
| 地名 | 鰂魚涌、昂船洲、石硤尾 | 用官方中文名;英文名獨立處理 | 生僻字變問號 |
| 縮寫 | KPI、Q3、PR、ROI | 保留英文;讀音唔需要轉中文 | 拆成無意義中文字 |
| 中英夾雜句 | 「個 deadline push 到下個 sprint」 | 英文詞保留;連接詞用粵語 | 整句變中文近音 |
規則可以總結成一句:「睇得明嘅保留原形,讀得出嘅先轉粵拼。」 英文縮寫唔需要粵拼;中文專名需要讀音;兩者都唔應該被「翻譯」成另一個語言。
語音辨識嘅自訂詞彙:規則同上限
自訂詞彙嘅原理係「提示」而唔係「命令」:你把一堆可能出現嘅詞交畀引擎,佢會喺解碼時提高呢啲詞嘅機會率。所以:
- 只放真正需要嘅詞。常用詞唔需要提示,放咗只會干擾其他判斷。
- 詞表要短而精。港嘢現時嘅上限係 50 個詞、單詞 ≤30 字、提示總長 ≤200 字。
- 分場景。港嘢嘅詞庫分兩本:
playground(轉錄頁/實時聽寫)同meeting(會議批次轉寫)。同一間公司,會議同客服錄音嘅專名可以完全唔同,唔應該共用一本。
供應狀態講清楚: 詞庫功能現階段係 Beta,按帳號開通,唔係所有帳戶預設見到。介面喺語音轉錄頁;如果你登入後見唔到詞庫入口,即係你嘅帳號未開通,可以聯絡我哋申請。
詞表好壞對照
| 唔好咁寫 | 應該咁寫 | 原因 |
|---|---|---|
| 把全公司 300 個客名塞入去 | 只放今次會議相關嘅 20–30 個 | 超出上限,而且互相干擾 |
| 放「公司」「開會」「報告」 | 唔放 | 常用詞本身唔會錯 |
| 放「KPI」 | 放「KPI」但同時確認英文保留設定 | 縮寫要保留原形,唔應該被轉中文 |
| 放一句完整句子 | 只放詞語 | 詞表係詞,唔係句 |
| 同一個詞寫三種大小寫 | 統一寫法 | 重複只浪費額度 |
一個可跑嘅詞表清洗函數
以下係純資料處理(唔涉及任何 API 呼叫),你可以直接放入自己嘅 pipeline。規則同產品一致:去空白、去重、丟太長、截到 50 個、總長 ≤200 字。
MAX_TERMS = 50
MAX_TERM_CHARS = 30
MAX_HINT_CHARS = 200
def clean_terms(raw):
"""把使用者輸入整理成合法詞表。永不拋錯,寧願少放,唔好放錯。"""
if isinstance(raw, str):
# 支援換行或逗號分隔
raw = raw.replace(",", ",").replace("\n", ",").split(",")
seen, terms, total = set(), [], 0
for item in raw or []:
term = str(item).strip().strip("、,,")
if not term or len(term) > MAX_TERM_CHARS:
continue # 太長 = 唔係專有名詞,靜靜丟棄
key = term.casefold()
if key in seen:
continue # 去重(大小寫不敏感)
if total + len(term) + 1 > MAX_HINT_CHARS:
break # 總長到頂就停,唔好硬塞
seen.add(key)
terms.append(term)
total += len(term) + 1
if len(terms) >= MAX_TERMS:
break
return terms
用法示例(同上面嘅程式碼一致):clean_terms("港嘢, Canto-Gen\n陳嘉詠,KPI") 回 ["港嘢", "Canto-Gen", "陳嘉詠", "KPI"]——逗號、全角逗號、換行三種分隔符都食,大小寫重複會先去重。
呢個函數有三個設計決定值得講:唔拋錯(壞資料唔應該令整個轉寫失敗)、先丟太長再算總長(避免一個超長字串食晒額度)、大小寫不敏感去重(KPI 同 kpi 對引擎嚟講係同一個詞)。
A/B 驗收:點知加詞有冇用
加詞之後,最常出現嘅兩種結果:①目標詞修好了 ②其他本來正確嘅字變成錯(回歸)。第二種更危險,因為你唔會即刻發現。
回歸(regression) 係指加詞之後,原本正確嘅字變成錯——你只會盯住目標詞,所以呢種副作用最容易被漏掉。下面嘅流程就係為咗將呢個副作用變成一個可量度嘅數字。
流程(30 分鐘可完成):
- 固定音檔:揀一段 3–5 分鐘、包含大部分目標詞嘅錄音。以後每次都用同一段。
- 先跑 baseline:唔加詞,儲存逐字稿。
- 逐詞標記:對每個目標詞,記「正確/錯誤」;同時抽查 10 個非目標詞,記「有冇由對變錯」。
- 加詞再跑:同一個音檔、同一個語言設定,只改詞表。
- 計算三欄:修正數、回歸數、無變化數。
- 判斷:有修正、零回歸 才值得上線;有回歸就逐個詞剔除,找出係邊個詞搞事(通常係太短、太常見、或者同其他詞撞音)。
| 指標 | 點計 | 合格標準 |
|---|---|---|
| 修正數 | 由錯變對嘅目標詞數 | 越多越好 |
| 回歸數 | 由對變錯嘅非目標詞數 | 必須 0 |
| 無變化 | 加詞後仍然錯 | 檢討係詞表問題定音檔問題 |
| 穩定性 | 同一段音檔跑 3 次結果一致? | 應該一致 |
失效模式:一項已驗證,其餘四項要你自己跑
以下五種情況由「自訂詞彙=解碼提示」呢個機制推導出嚟。第一項係我哋用小樣本測試過、方向上確認到嘅失效模式(具體樣本數同百分比屬未公開嘅測試資料);其餘四項屬設計推論——即係由機制推導出嚟嘅預期行為,你未必每次都撞到,但撞到就知點處理。你可以逐項用上面嘅 A/B 流程自己確認。
- 【實測】低碼率音檔+短詞表:音檔壓得太厲害(≤32 kbps,電話線嗰種質素)而詞表又短嘅時候,引擎有時會傾向「照讀詞表」而唔係真正轉寫內容。呢個形態我哋喺同一批音檔上重複見到過,可以當係一個可靠嘅預警訊號。同一輪測試亦見到加詞之後目標詞有修正、而且回歸數可以維持喺零——即係「詞表有數得嘅效果」呢件事企得穩。具體樣本數同百分比屬未公開嘅測試資料。解法係提高音檔碼率,或者加長詞表覆蓋率。
- 詞表混入常用詞(設計推論):常用詞本身唔會錯,加咗只會令解碼偏向佢,預期會令其他位置變差。點樣自己驗:只加一個常用詞,跑一次 A/B,睇回歸數有冇郁。
- 同音衝突(設計推論):兩個專名讀音相同(例如「嘉詠」同「嘉泳」),詞表幫唔到分辨;要靠上文或者人手覆核。點樣自己驗:兩個詞一齊入表、同一個音,睇引擎揀邊個。
- 英文縮寫(設計推論):
Q3、PR呢類要保留原形,唔應該被當成中文詞提示。點樣自己驗:單獨加Q3,睇佢係咪照讀字母。 - 一次改太多變數(設計推論):同時換音檔、換語言設定、換詞表,你唔會知道邊個改動有效。點樣自己驗:一次只改一樣,改完即刻記低。
驗收示例
我哋唔會貼「加詞後準確率提升 X%」呢類數字做賣點——冇公開測試集嘅百分比唔可以比較。我哋自己嘅測試用嘅係小樣本,具體樣本數同百分比屬未公開嘅測試資料;但方向上確認咗兩件事:加詞之後目標詞會修好,而且回歸數可以維持喺零。
下面呢三項就係一張可重現嘅驗收表長咩樣——用你自己嘅音檔跑,output 就係你團隊嘅「詞表 baseline」:
- 同一段 5 分鐘會議錄音,加詞前後嘅逐詞對錯表(20 個目標詞)。
- 回歸檢查結果(10 個非目標詞,加詞後有冇變差)。
- 不同碼率(32 kbps vs 64 kbps)對詞表效果嘅影響。
你可以用上面嘅流程自己跑一次。跑完之後,你手上嘅表就係你團隊嘅「詞表 baseline」,之後每次加詞都用同一段音檔對比。想睇完整嘅測試集砌法(8 類難點、WER/CER 點計、評分表點填),可以讀廣東話語音轉文字實測。
同 TTS 讀音控制有咩分別
好多人把「ASR 詞表」同「TTS 讀音詞典」混為一談。兩者方向相反:
- ASR 詞表:幫引擎聽得明你講嘅專名(輸入方向)。
- TTS 讀音:幫引擎讀得啱你寫嘅字(輸出方向)。
如果你關心嘅係「AI 把聲讀錯我公司名」,你要睇嘅係多音字同異讀嘅處理,可以參考廣東話多音字攻略同廣東話讀音字典點用。如果你要處理嘅係「會議錄音轉出嚟嘅人名錯」,就係本文講嘅 ASR 詞表。
常見問題 FAQ
字庫同詞庫有咩分別?
字庫通常指「字→讀音」嘅對照(例如粵拼表);詞庫指「詞→意思/用法」嘅集合(例如粵典)。實際做事嘅時候,你要嘅係第三樣:場景詞表——你團隊會出現嘅專有名詞清單。
詞表可以放幾多個詞?
港嘢現時上限 50 個詞、單詞 ≤30 字、提示總長 ≤200 字。超過就會截斷或者丟棄,所以唔好把整個客戶資料庫倒入去。
加咗詞會唔會令其他字變差?
有可能,呢個叫回歸。所以每次加詞都要跑 A/B,並且明確要求「回歸數 = 0」。有回歸就逐個詞剔除,通常係太短、太常見、或者同其他詞撞音。
有冇現成粵語發音 API?
有免費查詢資源(審音配詞字庫、粵拼方案、粵典),但多數係網頁查詢或開源套件,唔一定提供托管式 REST API。要放入產品,通常要自己封裝一層,或者用有公開 API 嘅語音服務。
點知加詞有冇用?
用同一段固定音檔跑兩次(加詞前/後),逐詞標對錯,計「修正/回歸/無變化」。有修正、零回歸,才算有效。
英文同數字要唔要放入詞表?
英文縮寫一般唔需要(引擎多數會保留原形),但如果經常被轉成中文字,就值得放。數字唔應該放——數字讀法應該由語言設定處理,放數字入詞表反而容易造成奇怪輸出。
想試下自己嘅專有名詞?
先睇廣東話語音轉文字上架公告了解產品範圍,再用語音轉錄頁跑一段你嘅錄音;詞庫入口需要帳號開通,可以聯絡我哋申請 Beta。想先打好讀音基礎,可以讀粵拼入門同廣東話人名讀音指南。
本文由港嘢內容團隊編輯審閱(editorial review,2026-10-25)。想了解我哋嘅背景,可以睇關於港嘢;詞庫開通同技術問題,可以用上面同一張聯絡表格。
相關文章
廣東話 AI 客服聽唔明中英夾雜?由辨識到回覆嘅三層實戰設計
中英夾雜唔係噪音,係香港人正常講法。問題係多數語音系統只當佢係雜訊。呢篇由 ASR 到 TTS 逐層拆,附測試語料同驗收數。
2026年10月31日
廣東話拼音轉換教學:文字轉拼音、拼音轉字同批次處理
用兩個開源 G2P 工具實際跑過同一批文字,逐項對照正規化、分詞、多音字消歧嘅實際輸出同已知失效模式,附可重現嘅驗證方法。
2026年10月30日
廣東話拼音輸入法教學:三大平台安裝、打字技巧同詞庫設置
廣東話拼音輸入法點裝、點打?Windows、macOS、手機三大平台安裝步驟,打粵拼嘅五個規則、聲調點解唔使打、詞庫同自造詞設定,附可重現嘅流暢度量度方法。
2026年10月30日