ASR Error Correction using Large Language Models
在未見過的數據中(少用的字、特殊領域的專有名詞),辨識準確率遇到了困難。
提出了 3 種方法:
- 透過 N-best 進行錯字的修復。
- Fine Tune T5 模型,以監督式的方式進行錯字處理。
- 使用 LLM(這裡是 ChatGPT)進行修正,提供 N-best 選項,讓 LLM 進行修正。
4 種 decoding 的策略:
- Unconstrained decoding 由 EC[1] Model 自由生成,可以不需要符合 N-best 的任何選項,可能會造成亂改、亂產生的問題。
- N-best constrained decoding,從 N-best 內選擇評分最高的。
- 結合 1 和 2,先讓 EC Model 自由產生,再透過 Levenshtein distance 比對看最符合哪一個 N-best 的選項。
- 透過原始的 ASR 提供 Lattice Graph[2] ,再由 EC Model 從路徑中自行組出句子。
實驗 ASR 採用:
- Conformer-Transducer
- Whisper
論文實驗結果:
- Whisper 生成的 N-best 選項差異不大。
- Fine-tuned T5 可以改善 ASR
- 在 Transducer 中
- 改善幅度 Constrained > Unconstrained
- Lattice 方法有更好,但相較於 Constrained 沒有相差太多
- 在 Whisper 中
- Unconstrained 反而比較好
- 在 Transducer 中
- Whisper 在識別 out-of-domain 上相比 Transducer 表現更好(Whisper 有更大量的資料進行訓練)
- 透過 LLM Prompt 修正 ASR
- Transducer 能改善
- Whisper 反而可能結果變差(推測是 N-best 差異不大)
- N-best 表現選項越多 2 者(Transducer, Whisper) 透過 T5 修正都會更好,不過不是線性增長
- 將 2 個 ASR 系統的 N-best 交由 GPT 進行判斷,可以提高修正
論文結論:
N-best 加上 LLM Error Correction 是可以提高準確率的後處理方式
