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.1178 | 0.0949 | 0.3219 | 0.2760 |
| CS-Dialogue test | Whisper | 0.1896 | 0.1654 | 0.4863 | 0.2680 |
| CS-Dialogue test | SenseVoice | 0.0721 | 0.0575 | 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.1150 | 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}
只輸出修正後的文本,不要解釋。
Detect → Correct
先偵測可能的錯誤,第二步再進行修正,2 次 LLM Call。
- 只標真正可疑的片段:
- 錯字
- 漏字
- 多字
- 英文拼寫錯誤
- 語意不通處
- 禁止把正確英文詞標成錯誤
- 禁止要求翻譯成中文
- 若沒有可疑片段,回傳空陣列
- 輸出 JSON array,例如:
```json
[
{"span": "可疑片段", "reason": "原因"}
]
```
第二步進行修正
- 只修正列出的可疑片段
- 其餘文字必須保持不變
- 保留所有英文詞
- 禁止英文翻中文
- 保留中英交錯順序與結構
- 輸出完整修正後 transcript
Detect → Correct → Verify
找可以的錯誤,針對錯誤進行修正,最後再次驗證是否過度修正,如果判斷過度修正就 fallback。
- 原始 ASR
- 修正後輸出
判斷是否 over-correction。
over-correction 定義包含:
- 把原本正確英文詞改掉、刪掉、翻譯成中文
- 改變中文與英文交錯順序或結構
- 新增或刪除語言,例如把英文片段變成全中文
LLM 需輸出:
```json
{"over_corrected": true/false, "reason": "簡短說明"}
```