论文部分内容阅读
解码器在语音识别系统中起着关键性的作用,完成根据语音识别的知识源将输入的语音序列转换为输出的文本序列的任务。在语音识别系统中,解码器直接与用户对接,其性能和效率关系到语音识别系统是否能够及时而准确地响应用户要求。当前,随着深度学习的发展及在语音识别领域中的应用,语音识别任务在性能迅速提升的同时,计算复杂度也随之提升。因此,有必要针对语音识别任务的特点和当前的硬件资源,进行解码器的加速优化,从而提升语音识别任务的效率。 本文的研究目标是加速基于深层神经网络的语音识别解码系统。研究内容和创新点如下所述: 1.提出激活值限域规整方法,实现了LSTM神经网络的定点化计算。针对目前主流的基于LSTM神经网络声学模型的解码系统,为了解决LSTM神经网络参数量大、计算复杂度高,因而难以应用于对实时性要求较高的任务的问题,推广了已经应用于前馈神经网络的定点化方法和SIMD指令集实现。为此,针对LSTM单元的结构和连接关系的特点,分析了LSTM单元内激活值的动态范围和概率分布,提出了激活值限域规整方法,实现了定点化LSTM神经网络计算,并带来了2.38倍的速度提升。 2.将帧异步算法推广到复杂结构神经网络。基于前馈神经网络的帧异步解码算法,提出了时延神经网络的帧序列近似计算方法,从而实现了时延神经网络帧异步解码。此外,提出了改变LSTM神经网络时序依赖关系的方法,从而实现了LSTM神经网络帧异步解码。该方法证明帧异步解码算法是不依赖网络结构特性的。 3.提出了基于神经网络声学模型的跳帧解码算法。针对解码器令牌传递和最优路径搜索的算法,对令牌在声学模型建模状态上的停留时间的分布进行了分析,进而在帧异步解码算法的基础上,提出了跳帧解码算法,并引入了不需要重新训练的跨状态HMM,实现了跳帧解码与非跳帧解码(帧同步解码和帧异步解码)搜索空间的一致性。同样,将跳帧解码算法应用于复杂结构神经网络中。在基于不同结构神经网络的解码任务中,跳帧解码算法获得了2.44~2.84倍的加速比。 4.将异构计算的思想应用于语音识别的解码任务中,实现了CPU-GPU混合解码框架。将神经网络计算任务和令牌传递任务分配到GPU和CPU,并实现了多线程解码和GPU核心灵活分配。本文所实现的系统可以配置为使用不同的CPU核心数和GPU核心数,从而能够适应不同的系统资源配置。该系统在基于不同结构神经网络的解码任务中获得了3.20~4.39倍的加速比。