高度数据驱动的端到端ASR系统在应用到实际业务场景中往往识别特定行业名词的准确率不高,如muji外呼中“无印良品”这个名词经常会识别错误。传统混合ASR模型可以修改解码过程和语言模型(LM)即可以达到快速更新,从而可以较准确的识别特定行业专有名词。但是针对端到端ASR模型修改就比较麻烦了,本文整理并验证了利用TTS合成语音来增强ASR识别专有行业名词的准确率。
一、增强ASR识别专有名词的可行方法
- 标注部分业务数据集,可以利用迁移学习,也可以和通用数据一起训练;
- 标注大量业务数据,从头训练模型(一般不太可能,也不建议)。
- 结合传统hybrid模型(如WeNet2.0中利用了WFST解码):
- 在解码过程加入热词
- 加入语言模型
二、利用TTS合成语音迁移学习详解
- 合成语音和真实语音一同训练
对合成数据和真实数据一起微调可以防止模型忘记真实音频。有相关文献证实了,在不做任何正则化迁移学习中,真实语音占比70%,合成语音占比30%可以达到比较好的结果。
||实验结果||:
1
| 利用业务标注数据集(真实数据)进行迁移学习比利用TTS合成语音(数据增强)要好,这个也符合常识[1]。但是换成多说话人TTS,增加不同语速和音调的调整或许可能会更毕竟业务标注数据集结果。
|
- 迁移学习中冻结 Encoder 参数
可以有效减少对原有模型的过调整,要比上述方法1提高了更多专有名词的识别率,同时也没有降低原有模型的识别率。
- 迁移学习中冻结 Encoder 参数,同时正则化Decoder参数
这种方法识别专有名词的准确率会提升,但是并没有第二种方法提升的高。优点是可以能稳定保持原有模型的性能。
||总结以下||:
1
| 需求不同,选择的方法也不同。比如我更在乎专有名词识别的准确率,可以接受原有模型准确率的下降。我就会更多选择第二种方法。当然,迁移学习用的合成数据的规模,迁移学习在什么时候停止等问题,也会严重影响到最终的结果。
|
三、实际验证
以下是我针对业务数据进行的验证,利用espnet框架完成。
- 利用 AISHELL3 训练的218多说话人 TTS,合成100*218句 “无印良品”,100是调整语速和音调的;
- 利用 wenetspeech 作为基础模型进行 迁移学习。
迁移学习后模型:(1000句,47句包含“无印良品”,正确45,准确率为95.7%)
1 2 3 4 5 6 7 8 9 10 11 12 13
| ,-------------------------------------------------------------------. | hyp_test_muju.txt | |-------------------------------------------------------------------| | SPKR | # Snt # Chr | Corr Sub Del Ins Err S.Err | |--------+----------------+-----------------------------------------| | 202 | 1000 14919 | 92.4 6.6 1.0 0.5 8.2 51.0 | |===================================================================| | Sum/Avg| 1000 14919 | 92.4 6.6 1.0 0.5 8.2 51.0 | |===================================================================| | Mean |1000.0 14919.0 | 92.4 6.6 1.0 0.5 8.2 51.0 | | S.D. | 0.0 0.0 | 0.0 0.0 0.0 0.0 0.0 0.0 | | Median |1000.0 14919.0 | 92.4 6.6 1.0 0.5 8.2 51.0 | `-------------------------------------------------------------------'
|
迁移学习前模型:(1000句,47句包含“无印良品”,正确13,准确率为27.7%)
1 2 3 4 5 6 7 8 9 10 11 12 13
| ,-------------------------------------------------------------------. | old_hyp_test_muju.txt | |-------------------------------------------------------------------| | SPKR | # Snt # Chr | Corr Sub Del Ins Err S.Err | |--------+----------------+-----------------------------------------| | 202 | 1000 14919 | 93.7 5.4 0.9 0.7 7.0 44.9 | |===================================================================| | Sum/Avg| 1000 14919 | 93.7 5.4 0.9 0.7 7.0 44.9 | |===================================================================| | Mean |1000.0 14919.0 | 93.7 5.4 0.9 0.7 7.0 44.9 | | S.D. | 0.0 0.0 | 0.0 0.0 0.0 0.0 0.0 0.0 | | Median |1000.0 14919.0 | 93.7 5.4 0.9 0.7 7.0 44.9 | `-------------------------------------------------------------------'
|
四、参考文献
[1] Using Synthetic Audio to Improve the Recognition of Out-Of-Vocabulary Words in End-To-End ASR Systems.