LLM 後修正處理方法

建立:2026-06-21 · 最後編輯:2026-06-26

Raw ASR

直接將結果吐出,不進行修正

DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓
ASCEND testWhisper0.21730.20400.43500.3167
ASCEND testSenseVoice0.11940.09800.32190.2760
CS-Dialogue testWhisper0.18960.16540.53930.2680
CS-Dialogue testSenseVoice0.07230.05810.19100.1546

 

Zero-shot

你是一位語音辨識後處理專家。請修正以下 ASR 假設文本中的錯誤,
輸出最可能的正確轉錄。請保持原有的中文與英文混用結構,不要新增或刪除語言。

ASR hypothesis: {hypothesis}

 

DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND testWhisper0.24580.23840.41520.31410.03810.04090.0900
ASCEND testSenseVoice0.16010.14860.30620.29040.03210.05930.1267
CS-Dialogue testWhisper0.18160.16780.43830.27300.02940.02770.1350
CS-Dialogue testSenseVoice0.11920.10410.24290.20910.01340.05950.1625

Few-shot

給 LLM 範例進行修正

你是一位語音辨識後處理專家。以下是幾個中英混語 ASR 修正範例,請學習「保留英文詞、只修明顯錯誤、不改寫混語結構」的風格,然後修正最後一個 ASR 假設。

   Example 1:
   ASR hypothesis: Oregon friends chan chan message
   Corrected transcription: 偶尔跟friends传传messages

   Example 2:
   ASR hypothesis: 所以就会喝一些辣椒
   Corrected transcription: 所以就会喝一些latte

   Example 3:
   ASR hypothesis: 那个ignomic status就买不买得起这个 smartphone 跟小朋友如果买得起的话我觉得
   Corrected transcription: 那个economic status就买不买得起这个smartphone给小朋友如果买得起的话我觉得

   ASR hypothesis: {目前要修的句子}

 

DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND testWhisper0.22590.21630.40340.30090.07200.02350.1600
ASCEND testSenseVoice0.12890.11550.28380.26940.04040.02950.1433
CS-Dialogue testWhisper0.18630.17460.43120.26900.04130.02030.1800
CS-Dialogue testSenseVoice0.09790.08270.21910.19140.01470.03470.2350

Language-preserving prompt

保留所有英文,禁止把英文翻成中文。

你是一位語音辨識後處理專家。任務:修正以下 ASR 假設文本中的錯誤。
重要限制:
  1. 這段話是中文與英文混用(code-switching)。
  2. 你必須保留所有英文詞,禁止把英文翻譯成中文。
  3. 你必須保留中文與英文交錯出現的順序與結構。
  4. 只修正明顯的辨識錯誤(例如錯字、漏字、多字、英文拼寫錯誤)。
  5. 不要新增額外內容,不要改寫語意。

  ASR hypothesis: {hypothesis}
DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND testWhisper0.22560.21490.42710.30620.04450.01870.0767
ASCEND testSenseVoice0.13380.12320.28250.26280.04120.03280.1433
CS-Dialogue testWhisper0.18860.17520.44330.28040.04560.02570.1425
CS-Dialogue testSenseVoice0.09590.08270.20680.17730.01600.03150.2325

Detect-then-correct

先偵測可能的錯誤,第二步再進行修正,2 次 LLM Call。

- 只標真正可疑的片段:
    - 錯字
    - 漏字
    - 多字
    - 英文拼寫錯誤
    - 語意不通處
- 禁止把正確英文詞標成錯誤
- 禁止要求翻譯成中文
- 若沒有可疑片段,回傳空陣列
- 輸出 JSON array,例如:

 ```json
  [
    {"span": "可疑片段", "reason": "原因"}
  ]
```

 

第二步進行修正

- 只修正列出的可疑片段
- 其餘文字必須保持不變
- 保留所有英文詞
- 禁止英文翻中文
- 保留中英交錯順序與結構
- 輸出完整修正後 transcript
DatasetFrontendMER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND devWhisper0.26760.40750.29410.05030.01760.0628
ASCEND devSenseVoice0.16080.30990.27260.03600.02160.0995

 

Detect-correct-verify

接續上一個方法,找可疑的錯誤,針對錯誤進行修正,最後再次驗證是否過度修正,如果判斷過度修正就 fallback。LLM 自我驗證。

  1. 第一次 Call 查看是否有可能的錯誤
  2. 第二次 Call 進行修正
  3. 第三次 Call 檢查是否有過度修正
DatasetFrontendMER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND devWhisper0.26760.40600.28980.04940.01540.0995
ASCEND devSenseVoice0.16150.30270.26830.04300.02540.1571

Conservative fallback

使用 Language-preserving prompt,小範圍的英文修正保留,若破壞整個結構進行 fallback。

DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND testWhisper0.21950.20750.42710.30620.05110.01110.1167
ASCEND testSenseVoice0.13200.12100.28520.26020.04130.02900.1767
CS-Dialogue testSenseVoice0.08150.06910.18940.15760.01550.01490.2950

Multi-candidate adjudication

把多個產生的結果組合起來(raw, few-shot, preserve, Conservative),另一個 LLM 當作裁判從中選擇一個,不能自由產生。

DatasetFrontendMER ↓CER ↓WER ↓PIER-En ↓F0.5 ↑OCR ↓FB ↓
ASCEND devWhisper0.25970.24880.40030.28550.06740.01540.2356
ASCEND devSenseVoice0.15780.13480.30270.27400.05180.03150.1885
CS-Dialogue devWhisper0.23670.23360.56420.26300.03630.01250.2700
CS-Dialogue devSenseVoice0.08870.07720.17740.15950.01850.02180.3375