LLM 後修正處理方法
Raw ASR
直接將結果吐出,不進行修正
| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ |
|---|---|---|---|---|---|
| ASCEND test | Whisper | 0.2173 | 0.2040 | 0.4350 | 0.3167 |
| ASCEND test | SenseVoice | 0.1194 | 0.0980 | 0.3219 | 0.2760 |
| CS-Dialogue test | Whisper | 0.1896 | 0.1654 | 0.5393 | 0.2680 |
| CS-Dialogue test | SenseVoice | 0.0723 | 0.0581 | 0.1910 | 0.1546 |
Zero-shot
你是一位語音辨識後處理專家。請修正以下 ASR 假設文本中的錯誤,
輸出最可能的正確轉錄。請保持原有的中文與英文混用結構,不要新增或刪除語言。
ASR hypothesis: {hypothesis}
| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|---|
| ASCEND test | Whisper | 0.2458 | 0.2384 | 0.4152 | 0.3141 | 0.0381 | 0.0409 | 0.0900 |
| ASCEND test | SenseVoice | 0.1601 | 0.1486 | 0.3062 | 0.2904 | 0.0321 | 0.0593 | 0.1267 |
| CS-Dialogue test | Whisper | 0.1816 | 0.1678 | 0.4383 | 0.2730 | 0.0294 | 0.0277 | 0.1350 |
| CS-Dialogue test | SenseVoice | 0.1192 | 0.1041 | 0.2429 | 0.2091 | 0.0134 | 0.0595 | 0.1625 |
- Ma et al., 2023. Can Generative Large Language Models Perform ASR Error Correction?arXiv:2307.04172. https://arxiv.org/abs/2307.04172
- Wan et al., 2023. New Datasets and Controllable Iterative Data Augmentation Method for Code-switching ASR Error Correction. Findings of EMNLP 2023. https://aclanthology.org/2023.findings-emnlp.543/
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: {目前要修的句子}
| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|---|
| ASCEND test | Whisper | 0.2259 | 0.2163 | 0.4034 | 0.3009 | 0.0720 | 0.0235 | 0.1600 |
| ASCEND test | SenseVoice | 0.1289 | 0.1155 | 0.2838 | 0.2694 | 0.0404 | 0.0295 | 0.1433 |
| CS-Dialogue test | Whisper | 0.1863 | 0.1746 | 0.4312 | 0.2690 | 0.0413 | 0.0203 | 0.1800 |
| CS-Dialogue test | SenseVoice | 0.0979 | 0.0827 | 0.2191 | 0.1914 | 0.0147 | 0.0347 | 0.2350 |
- Ma et al., 2023. Can Generative Large Language Models Perform ASR Error Correction?arXiv:2307.04172. https://arxiv.org/abs/2307.04172
- Wan et al., 2023. New Datasets and Controllable Iterative Data Augmentation Method for Code-switching ASR Error Correction. Findings of EMNLP 2023. https://aclanthology.org/2023.findings-emnlp.543/
- Chen et al., 2023. Generative Error Correction for Code-Switching Speech Recognition Using Large Language Models. arXiv:2310.13013. https://arxiv.org/abs/2310.13013
Language-preserving prompt
保留所有英文,禁止把英文翻成中文。
你是一位語音辨識後處理專家。任務:修正以下 ASR 假設文本中的錯誤。
重要限制:
1. 這段話是中文與英文混用(code-switching)。
2. 你必須保留所有英文詞,禁止把英文翻譯成中文。
3. 你必須保留中文與英文交錯出現的順序與結構。
4. 只修正明顯的辨識錯誤(例如錯字、漏字、多字、英文拼寫錯誤)。
5. 不要新增額外內容,不要改寫語意。
ASR hypothesis: {hypothesis}| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|---|
| ASCEND test | Whisper | 0.2256 | 0.2149 | 0.4271 | 0.3062 | 0.0445 | 0.0187 | 0.0767 |
| ASCEND test | SenseVoice | 0.1338 | 0.1232 | 0.2825 | 0.2628 | 0.0412 | 0.0328 | 0.1433 |
| CS-Dialogue test | Whisper | 0.1886 | 0.1752 | 0.4433 | 0.2804 | 0.0456 | 0.0257 | 0.1425 |
| CS-Dialogue test | SenseVoice | 0.0959 | 0.0827 | 0.2068 | 0.1773 | 0.0160 | 0.0315 | 0.2325 |
Detect-then-correct
先偵測可能的錯誤,第二步再進行修正,2 次 LLM Call。
- 只標真正可疑的片段:
- 錯字
- 漏字
- 多字
- 英文拼寫錯誤
- 語意不通處
- 禁止把正確英文詞標成錯誤
- 禁止要求翻譯成中文
- 若沒有可疑片段,回傳空陣列
- 輸出 JSON array,例如:
```json
[
{"span": "可疑片段", "reason": "原因"}
]
```
第二步進行修正
- 只修正列出的可疑片段
- 其餘文字必須保持不變
- 保留所有英文詞
- 禁止英文翻中文
- 保留中英交錯順序與結構
- 輸出完整修正後 transcript| Dataset | Frontend | MER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|
| ASCEND dev | Whisper | 0.2676 | 0.4075 | 0.2941 | 0.0503 | 0.0176 | 0.0628 |
| ASCEND dev | SenseVoice | 0.1608 | 0.3099 | 0.2726 | 0.0360 | 0.0216 | 0.0995 |
Detect-correct-verify
接續上一個方法,找可疑的錯誤,針對錯誤進行修正,最後再次驗證是否過度修正,如果判斷過度修正就 fallback。LLM 自我驗證。
- 第一次 Call 查看是否有可能的錯誤
- 第二次 Call 進行修正
- 第三次 Call 檢查是否有過度修正
| Dataset | Frontend | MER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|
| ASCEND dev | Whisper | 0.2676 | 0.4060 | 0.2898 | 0.0494 | 0.0154 | 0.0995 |
| ASCEND dev | SenseVoice | 0.1615 | 0.3027 | 0.2683 | 0.0430 | 0.0254 | 0.1571 |
- Fang et al., 2025. Fewer Hallucinations, More Verification: A Three-Stage LLM-Based Framework for ASR Error Correction arXiv:2505.24347. https://arxiv.org/abs/2505.24347
Conservative fallback
使用 Language-preserving prompt,小範圍的英文修正保留,若破壞整個結構進行 fallback。
| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|---|
| ASCEND test | Whisper | 0.2195 | 0.2075 | 0.4271 | 0.3062 | 0.0511 | 0.0111 | 0.1167 |
| ASCEND test | SenseVoice | 0.1320 | 0.1210 | 0.2852 | 0.2602 | 0.0413 | 0.0290 | 0.1767 |
| CS-Dialogue test | SenseVoice | 0.0815 | 0.0691 | 0.1894 | 0.1576 | 0.0155 | 0.0149 | 0.2950 |
Multi-candidate adjudication
把多個產生的結果組合起來(raw, few-shot, preserve, Conservative),另一個 LLM 當作裁判從中選擇一個,不能自由產生。
| Dataset | Frontend | MER ↓ | CER ↓ | WER ↓ | PIER-En ↓ | F0.5 ↑ | OCR ↓ | FB ↓ |
|---|---|---|---|---|---|---|---|---|
| ASCEND dev | Whisper | 0.2597 | 0.2488 | 0.4003 | 0.2855 | 0.0674 | 0.0154 | 0.2356 |
| ASCEND dev | SenseVoice | 0.1578 | 0.1348 | 0.3027 | 0.2740 | 0.0518 | 0.0315 | 0.1885 |
| CS-Dialogue dev | Whisper | 0.2367 | 0.2336 | 0.5642 | 0.2630 | 0.0363 | 0.0125 | 0.2700 |
| CS-Dialogue dev | SenseVoice | 0.0887 | 0.0772 | 0.1774 | 0.1595 | 0.0185 | 0.0218 | 0.3375 |