詞錯誤率(WER):如何衡量轉錄準確度
了解詞錯誤率(WER)——衡量轉錄準確度的標準指標。學習 WER 的計算方式以及什麼是好的分數。
詞錯誤率(WER)是衡量自動語音辨識(ASR)系統準確度的標準指標——它計算逐字稿中與驗證過的參考逐字稿之間,透過替換、刪除和插入而不同的詞彙百分比。
無論你是在評估轉錄服務、對 ASR 模型進行基準測試,還是試圖理解「95% 準確度」在實際中意味著什麼,WER 都是最重要的數字。本指南說明 WER 的運作方式、什麼構成好的分數,以及為什麼這個指標既有優勢也有重要限制。
什麼是詞錯誤率?
詞錯誤率衡量轉錄系統相對於真實參考逐字稿出了多少錯。它以百分比表示,數值越低表示準確度越高:WER 為 5% 意味著系統在每 100 個詞中出了 5 個錯。
WER 的公式為:
WER = (S + D + I) / N x 100%
其中:
- S(替換):被替換為不同詞的詞。參考說「cat」但逐字稿說「cap」。
- D(刪除):存在於參考中但在逐字稿中缺失的詞。一個詞被說了但沒有被轉錄。
- I(插入):逐字稿中出現但參考中沒有的詞。系統添加了一個從未被說過的詞。
- N:參考逐字稿中的總詞數。
WER 為 0% 意味著逐字稿與參考完全匹配。WER 為 100% 意味著錯誤數量等於參考詞的總數。如果系統插入的詞比參考包含的更多,WER 實際上可以超過 100%,雖然這在現代系統中不常見。
為什麼這三種錯誤類型重要
每種錯誤類型反映了語音辨識中不同的失敗模式:
- 替換是最常見的錯誤類型。當聲學模型混淆了發音相似的詞(「their」vs.「there」)、語言模型選擇了統計上可能但不正確的詞,或口音和方言導致誤辨時就會發生。
- 刪除在系統完全遺漏詞彙時發生。這在填充詞(「嗯」、「呃」)、快速語音、重疊說話者或低音量段落中很常見。
- 插入在系統產生幻覺詞彙(從未被說過的詞)時發生。背景噪音、迴音或音樂可能觸發錯誤的詞彙偵測。
了解 S、D 和 I 錯誤的分佈通常比單一的 WER 數字更有用,因為它揭示了系統在哪裡失敗以及可能做什麼來改善結果。
WER 的計算方式
WER 計算依賴動態規劃來找到參考逐字稿和假設(系統輸出)之間的最小編輯距離。這與用於字串編輯距離(Levenshtein 距離)的演算法相同,但應用在詞彙層級。
以下是逐步範例。
參考逐字稿(實際所說的話):
The quick brown fox jumps over the lazy dog
假設逐字稿(系統產出的結果):
The quik brown fox jump over a lazy dock
步驟 1:逐詞對齊兩份逐字稿。
| 參考 | The | quick | brown | fox | jumps | over | the | lazy | dog |
|---|---|---|---|---|---|---|---|---|---|
| 假設 | The | quik | brown | fox | jump | over | a | lazy | dock |
| 錯誤類型 | -- | S | -- | -- | S | -- | S | -- | S |
步驟 2:計算每種錯誤類型。
- 替換 (S):4(「quick」->「quik」、「jumps」->「jump」、「the」->「a」、「dog」->「dock」)
- 刪除 (D):0(沒有詞被省略)
- 插入 (I):0(沒有多餘的詞被添加)
步驟 3:套用公式。
WER = (4 + 0 + 0) / 9 x 100% = 44.4%
參考中的總詞數 (N) 為 9。有 4 個替換錯誤,WER 為 44.4%。
更複雜的範例
考慮一個包含所有三種錯誤類型的情況。
參考: "She sells sea shells by the seashore"
假設: "She sell sea shells on seashore today"
對齊:
| 參考 | She | sells | sea | shells | by | the | seashore | -- |
|---|---|---|---|---|---|---|---|---|
| 假設 | She | sell | sea | shells | on | -- | seashore | today |
| 錯誤類型 | -- | S | -- | -- | S | D | -- | I |
- S = 2(「sells」->「sell」、「by」->「on」)
- D = 1(「the」被刪除)
- I = 1(「today」被插入)
- N = 7
WER = (2 + 1 + 1) / 7 x 100% = 57.1%
實際上,對齊步驟是以演算法計算的,因為手動對齊包含大量插入和刪除的長逐字稿容易出錯。研究工具如 NIST 的 sclite 和 Python 的 jiwer 函式庫可以自動化此過程。
什麼是好的 WER?
WER 基準因音訊品質、領域、說話者數量和語言而顯著不同。以下是英語轉錄的一般指引。
| WER 範圍 | 品質水準 | 典型場景 |
|---|---|---|
| 低於 5% | 優秀 | 錄音室品質音訊、單一說話者、清晰語音、常見詞彙 |
| 5% -- 10% | 良好 | 專業錄音、安靜房間的會議、良好麥克風的訪談 |
| 10% -- 15% | 可接受 | 電話會議、網路研討會、中等背景噪音 |
| 15% -- 20% | 尚可 | 嘈雜環境、口音語音、多個重疊說話者 |
| 高於 20% | 不佳 | 非常嘈雜的音訊、重口音、麥克風品質差、遠距語音 |
作為參考,專業人類轉錄員在有利條件下通常達到 4% -- 6% 的 WER。人類和機器表現之間的差距在近年來已大幅縮小,最佳 AI 系統現在在乾淨音訊上匹配或接近人類準確度水準。
你需要的品質水準取決於使用情境。10% 的 WER 對於參與者可以填補上下文的會議筆記可能完全可以接受,但對每個字都重要的法律證詞或醫療逐字稿則不夠。
現代 AI 的 WER 基準
現代自動語音辨識系統自 2020 年以來已有長足進步。以下是知名 ASR 系統在標準英語基準上的大約 WER 數據。
| 系統 | 大約 WER(乾淨語音) | 備註 |
|---|---|---|
| OpenAI Whisper(large-v3) | 3% -- 5% | 開源、多語言,對多元口音表現強 |
| Google Cloud Speech-to-Text(v2) | 4% -- 6% | 雲端 API,支援即時和批次轉錄 |
| AWS Amazon Transcribe | 5% -- 8% | 雲端 API,包含說話者辨識 |
| Microsoft Azure Speech | 4% -- 7% | 雲端 API,可自訂語言模型 |
| Deepgram Nova-2 | 3% -- 5% | 針對速度和準確度最佳化 |
| Meta MMS | 5% -- 10% | 開源,涵蓋 1,100 多種語言 |
這些數字是近似值,來自公開的基準、研究論文和獨立評估。實際表現因音訊條件、領域詞彙、口音和語言而顯著不同。在乾淨 TED 演講上達到 4% WER 的系統可能在嘈雜電話通話上產生 15% 以上的 WER。
同樣值得注意的是,廠商通常在精心挑選的基準上報告 WER。真實世界的表現——帶有背景噪音、交叉對話、領域特定術語和多種錄音設備——通常高於公開的數據。評估轉錄服務時,用你自己的音訊測試,而不是僅依賴基準聲稱。
WER 的限制
WER 是有用但不完美的指標。了解其限制幫助你更批判性地解讀準確度聲稱。
WER 忽略語義正確性
WER 平等對待所有詞彙錯誤。將「I need to book a flight」轉錄為「I need to cook a flight」算為一個替換錯誤,與轉錄為「I need to book a fright」相同。但第一個錯誤對含義的損害比第二個更大。WER 沒有衡量錯誤對理解造成多大損害的概念。
標點符號和大小寫被排除
標準 WER 評估在比較前會去除標點符號並正規化大小寫。這意味著詞彙完美但缺少句號、逗號和問號的逐字稿會得到 0% WER,儘管難以閱讀。相反,標點正確但有詞彙錯誤的逐字稿會受到完全的懲罰。
格式和結構不可見
WER 不考慮段落分隔、說話者標籤、時間戳記或任何結構格式。兩份文字相同但可讀性大不同的逐字稿(一份是一大片文字,另一份按說話者適當分段)會得到相同的 WER 分數。對於結構重要的使用情境(如會議逐字稿),僅靠 WER 是不夠的。
短語句使 WER 膨脹
WER 是一個比率,因此短句會產生不穩定的分數。如果參考是「Yes, absolutely」(2 個詞)且系統輸出「Yes, definitely」,那個單一替換就產生 50% 的 WER。同類型的錯誤在 200 個詞的段落中只會對 WER 貢獻 0.5%。這使得 WER 在評估短句轉錄任務時意義較小。
正規化差異造成不一致
你在計算 WER 之前如何正規化文字會影響結果。「Dr.」和「Doctor」應該被視為匹配嗎?「100」和「one hundred」呢?不同的評估流程做出不同的正規化選擇,這就是為什麼來自不同來源的 WER 數字不總是可以直接比較的。
其他準確度指標
研究人員和從業者已開發了幾個替代和補充指標來解決 WER 的限制。
字元錯誤率(CER)
CER 將相同的替換/刪除/插入公式應用在字元層級而非詞彙層級。CER 對於沒有明確詞彙邊界的語言(如中文、日文和泰文)特別有用,也適合評估錯誤的嚴重程度。將「cat」替換為「car」在 WER 中是 1 個錯誤但在 CER 中也只是 1 個字元錯誤,而「cat」替換為「elephant」在 WER 中仍然是 1 個錯誤但有很多字元錯誤。
CER = (Sc + Dc + Ic) / Nc x 100%
其中 Sc、Dc、Ic 是字元層級的替換、刪除和插入,Nc 是參考中的字元總數。
匹配錯誤率(MER)
MER 調整 WER 公式以考慮匹配總數而非僅參考長度。當假設和參考在長度上有顯著差異時,它提供了更平衡的準確度觀點。
MER = (S + D + I) / (S + D + C) x 100%
其中 C 是正確(匹配)的詞數。
詞資訊損失(WIL)
WIL 衡量轉錄過程中損失了多少資訊。與專注於錯誤的 WER 不同,WIL 同時考慮精確度(假設中有多少是正確的)和召回率(參考中有多少被擷取到)。WIL 的範圍從 0(完美)到 1(完全資訊損失)。
語義距離指標
較新的評估方法使用語言模型來衡量參考和假設逐字稿之間的語義相似度,而非精確的詞彙匹配。這些指標更好地擷取含義是否被保留,即使精確的詞彙不同。這個領域的研究很活躍,但這些指標尚未標準化。
如何改善你的轉錄 WER
無論你使用的是 AI 轉錄還是人工轉錄,音訊品質都是影響準確度最大的單一因素。以下是改善 WER 的實用步驟。
使用好的麥克風錄音
使用專用麥克風而非筆記型電腦的內建麥克風。對於獨白錄音,放置在距離說話者 15-30 公分處的 USB 電容式麥克風比房間對面的網路攝影機麥克風產生明顯更好的結果。對於會議,帶有波束成形麥克風的會議揚聲器可以改善所有參與者的辨識準確度。
盡量減少背景噪音
盡可能在安靜的環境中錄音。關閉窗戶、關掉風扇和空調,避免有環境音樂或對話的場所。即使現代抗噪穩健的 ASR 模型在乾淨音訊下也有可衡量的更好表現。關於處理不可避免噪音的技巧,請參閱我們的轉錄嘈雜音訊指南。
清晰且速度適中地說話
快速語音、含糊不清和句尾音量降低都會增加 WER。錄製將被轉錄的內容時,保持穩定的說話速度和清晰的發音。這不意味著不自然地放慢——只是避免匆忙略過重要的要點。
使用更高的音訊位元率
以 128 kbps 或更高的位元率壓縮語音音訊。重度壓縮的音訊(64 kbps 或以下)丟棄了 ASR 系統賴以準確辨識的聲學細節。如果你專門為轉錄錄音,256 kbps 或無損格式保留了最有用的訊號。
避免重疊語音
當多人同時說話時,即使最好的辨識系統也難以分離和準確轉錄兩位說話者。在會議和訪談中,建立輪流發言的規範。如果重疊不可避免,為每位說話者使用個別麥克風可以顯著改善結果。
選擇正確的轉錄工具
不同的 ASR 系統有不同的優勢。有些在口音語音方面處理更好,其他在領域特定詞彙方面表現出色,有些則針對嘈雜條件最佳化。Vocova 支援超過 100 種語言並具備自動語言偵測和說話者辨識,有助於在多元錄音條件下保持準確度。在承諾工作流程之前,用你特定的音訊類型測試服務總是值得的。
帶有上下文的後處理
轉錄後,配合原始音訊審閱輸出。領域特定術語、專有名詞和縮寫是最常見的錯誤類別。許多轉錄工具允許你直接編輯逐字稿,有些支援自訂詞彙清單,可以減少已知術語的錯誤。
常見問題
什麼被認為是好的詞錯誤率?
低於 5% 的 WER 被認為是優秀的,與專業人類轉錄品質相當。對於大多數商務應用——會議筆記、訪談逐字稿、內容創作——5% 到 10% 的 WER 被認為是良好的,產生的逐字稿只需最少編輯即可使用。
WER 可以超過 100% 嗎?
可以。因為插入增加了錯誤計數但不增加參考詞數 (N),一個產生很多多餘詞的系統可以超過 100% WER。例如,如果參考是 10 個詞而系統輸出 25 個詞且有大量錯誤,(S + D + I) / N 的計算可以產生超過 1.0 的值。這在現代系統中很少見,但在數學上是可能的。
WER 和準確度有什麼不同?
準確度有時報告為 (1 - WER)。8% 的 WER 對應 92% 的準確度。然而,「準確度」在行銷中使用較為鬆散,可以指不同的評估方法。當你看到轉錄提供者的準確度聲稱時,總是要問使用了什麼指標以及評估是如何進行的。
為什麼不同的 ASR 系統對相同音訊報告不同的 WER?
WER 取決於評估資料集、文字正規化流程和計分方法。一個廠商可能在計分前將「Dr. Smith」正規化為「doctor smith」,而另一個保持原樣。一個可能在乾淨朗讀語音上評估,而另一個使用對話音訊。這些方法差異使得直接比較不可靠,除非使用相同的評估協定。
WER 考慮標點符號錯誤嗎?
不考慮。標準 WER 評估在對齊和計分前移除所有標點符號。詞彙完美但完全沒有標點的逐字稿會達到 0% WER。標點準確度需要單獨的評估指標,這些指標的標準化程度不如 WER。
我如何為自己的逐字稿計算 WER?
最容易使用的工具是 Python 的 jiwer 函式庫。用 pip install jiwer 安裝,然後用幾行程式碼計算 WER:
from jiwer import wer
reference = "the quick brown fox jumps over the lazy dog"
hypothesis = "the quik brown fox jump over a lazy dock"
error_rate = wer(reference, hypothesis)
print(f"WER: {error_rate:.1%}") # 輸出:WER: 44.4%
對於較長的逐字稿,你需要一份驗證過的參考逐字稿進行比較。這通常意味著讓人類轉錄員產生一份音訊的真實版本。