论文部分内容阅读
随着人工智能的兴起,智能家居、智慧医疗、智能教育等将逐渐走进我们的生活、工作和学习。人工智能的这些应用都需要语音识别系统的支撑,才能完成人与机器的交互。语音识别系统中的语言模型对系统整体的效率和性能影响很大,通常效率和性能的杠杆又很难平衡。因此,研究如何在提升效率的同时保证性能不下降甚至有所提升有着重要意义。本文主要针对语音识别过程中对识别精准度要以及计算速度要求较高的应用场景进行相关优化。本课题基于科大讯飞股份有限公司语音识别组“基于RNN(Recurrent Neural Network)循环神经网络语言模型的语音识别优化”项目。本文通过分析N-Gram语言模型的不足提出了采用RNN语言模型,但是RNN语言模型的高计算复杂度很大程度上限制了其在实际场景中的应用。通过分析研究,本文给出了一种基于RNN语言模型的定点化优化方案。该方案采用SIMD(Single Instruction Multiple Data)单指令多数据流指令集,将RNN语言模型的浮点数(float)矩阵运算转化为定点数计算,以提高模型的运算效率。在上述针对RNN模型效率提高的同时带来的性能略微波动,经过研究后本文给出了一种流水线性能优化方案。该方案在RNN语言模型计算中对扩大了的N-Best相似部分进行合并,形成前缀树型结构,采用多线程流水线方案进行计算,从而达到在提升RNN模型性能的同时其效率也得到了提升。在上述方案中,本文对扩大了的N-Best结果使用RNN语言模型和N-Gram语言模型分别再次进行打分并插值计算,然后对插值计算后的结果进行重新排序,最后选出最优的结果作为最终的识别结果。最后对定点化效率优化方案和流水线性能优化方案进行测试。实验结果表明,定点化方案提高了RNN语言模型运算效率,且保证性能无明显波动。再对扩大了的N-Best的结果使用多线程流水线的前缀树优化,结果表明在保障效率提升的同时性能有所提升。本文提出的优化方案目前已经应用于科大讯飞股份有限公司的讯飞输入法软件。