语音识别中动态时间规整算法的硬件加速实现

2022-04-20 07:23祝禛天焦继业刘泽琛
电子设计工程 2022年7期
关键词:规整语音模板

祝禛天,焦继业,刘泽琛

(1.西安邮电大学计算机学院,陕西西安 710121;2.西安邮电大学电子工程学院,陕西 西安 710121)

在语音识别技术的发展过程中,动态时间规整算法一直处于重要地位,其本质上是一种距离度量算法。在过去的几十年中研究者们提出了几十种距离度量算法,实验证明,动态时间规整算法仍然是最佳的距离度量技术。然而,目前的各种嵌入式语音识别方案中,由于动态时间规整算法本身庞大的计算量和相邻数据处理过程中的高度依赖性极大地限制了它的实际应用,同时也使得计算资源和存储空间相对有限的嵌入式设备无法更好地发挥其性能[1-3]。

文中针对上述问题,提出了一种面对语音帧的动态时间规整算法硬件计算框架。在减少调用动态时间规整算法次数的基础上,利用流水线调度保证了相关数据的依赖性同时提高了计算效率。

1 动态时间规整算法研究

1.1 基本原理

动态时间规整算法是一种准确性高、鲁棒性强的时间序列相似性度量方法。通过在测试语音序列和模板语音序列之间利用规整函数建立一条非线性的弯折路径,不断对比两序列之间弯折路径的距离,距离越小,相似度越高,以此找到声学相似性最大的两个序列。

设T={t1,t2,t3,t4,t5,…,tN} 和H={h1,h2,h3,h4,h5,…,hM}分别为长度为N和M的语音序列。动态时间规整算法需要不断搜索得出一个时间规整函数C=z(n),该函数将T序列的时间轴非线性的映射到H序列的时间轴上。同时,该函数z满足公式(1):

式中,d[T(n),H(z(n))]是序列T中第n个数据tn和序列H中第C=w(n)个数据hm之间的距离度量,D为最优时间规整情况下两个序列的累积距离。为了保证两个序列之间的搜索匹配路径具有实际意义,规整函数z(n)必须满足以下3 个条件:

单调性:z(n)≤z(n+1),1 ≤n≤N-1;

边界性:z(1)=1,z(N)=M;

连续性:z(n+1) -z(n)≤1。

根据上述3 个条件,由N和M两个序列中任意两点的距离构成N×M的距离矩阵AN×M,其中任意两点A1、A2使用公式(2)计算其欧氏距离。

边界性是为了保证搜索路径的起点从矩阵AN×M的左下角(1,1)开始到右上角(N,M)结束。单调性和连续性是为了保证搜索路径的下一个方向在当前点的上方、右上方或者右方。从而在所有有效路径中找到唯一最优路径可以使累积距离最小。

为了找到唯一最优路径,动态时间规整算法采用逆序决策过程,求其任意点处累积距离,需先找出其所有满足上述3 个条件的前序节点,利用公式(3)递推求得所有节点。

1.2 算法加速研究

动态时间规整算法的时间复杂度为0(N×M)即两条计算序列长度的乘积,这在大规模的数据计算中难免成为其计算瓶颈。为了提高计算效率,一种经典的方法是引入时间复杂度低的计算度量方法来预先估计待计算序列的下界,若下界超出了阈值,则待计算序列的动态时间规整距离也会超出阈值。通过筛除掉不满足阈值条件的序列,只将满足阈值条件的序列进行动态时间规整计算,从而提高其整体计算效率。

较为经典的一种下界距离函数LB_Kim,其计算公式如式(4)所示:

其中,S、Q分别为两个待计算序列,取待计算序列中的4 个特征点构建新的序列。4 个特征点由待计算序列的首尾两点、最大值和最小值构成,LB_Kim 计算简单,使用点数少,所以一般常用作初步筛选[4]。

2 动态时间规整算法实现

2.1 动态时间规整算法硬件结构设计

提出一种动态时间规整算法计算结构,硬件架构图如图1 所示,硬件架构分为全局语音序列匹配筛选单元与动态时间规整精确计算单元两个主体。模板语音数据在设计时直接写入模板语音序列存储ROM 中,测试语音数据在识别开始时通过外部总线写入测试语音序列存储RAM 中。识别开始,两个存储器中的数据依次送入全局语音序列匹配筛选单元,经过内部的下限函数计算单元进行全模板匹配,筛选出与测试语音特征点序列近似的模板语音特征点序列。将其送入动态时间规整精确计算单元进行进一步动态时间规整度量。在动态时间规整精确计算单元中,待计算的语音序列按照流水线时序,通过控制模块调度送入到PE-FIFO 环形计算单元中,一组序列计算完成后,将当前距离结果存放到结果计算模块,等待所有序列计算完成,在结果计算模块中比较所有动态时间规整距离,输出最小距离结果。

图1 动态时间规整算法硬件架构图

2.2 全局语音序列匹配筛选单元

为了节省资源和考虑算法的可实施性,全局语音序列筛选单元的设计采用下界距离函数LB_Kim,识别开始,控制单元不断读取两个存储器中的序列,将有效数据传入下限距离计算单元。下限距离计算单元使用4 个寄存器持续更新当前序列的LB_Kim函数所需要的首、尾、最大值和最小值4 个数据。当数据有效位拉低时,加法器将当前4 个寄存器中的值累加得到模板语音同测试语音的下限距离,计算结果与阈值进行对比。阈值计算结果如图2 所示,使用Matlab 仿真动态时间规整算法采集实验室条件下同一语音指令,计算20 次取均值为63。将满足阈值条件的模板语音数据送入下一级动态时间规整精确计算单元的模板数据RAM 中,测试语音数据送入测试数据FIFO 中,等待进一步动态时间规整计算。动态时间规整精确计算单元完成当前计算后,控制单元启动ROM 和RAM 进行下一包数据的读取。若当前数据不满足阈值条件则直接进行下一包数据读取,不会调用下一级动态时间规整精确计算单元,该设计可以减少传统全模板动态时间规整计算造成的资源无效消耗。

图2 Matlab仿真动态时间度量值统计图

2.3 动态时间规整精确计算单元

2.3.1 PE计算单元设计

如图3 所示为PE 计算单元。整个计算单元由欧式距离计算模块、下节点方向比较器、加法器以及两个寄存器组成。PE 的具体任务是计算当前坐标特征点的欧式距离以及累积距离值。累积距离由当前特征点欧氏距离和下节点方向比较器比较的最小值相加所得,通过寄存器1(Reg1)持续更新数据,与此同时,数据分为三路,第一路送入下一个PE 作为其前序节点的左侧距离。第二路送入当前PE 的下节点方向比较器作为其当前列第二个特征点的下侧距离。第三路送入寄存器2(Reg2)作为前一时钟周期临时数据存储,当下一时钟周期来临时,寄存器2(Reg2)中的数据送入下一个PE 作为其前序节点的左下侧距离。

图3 PE计算单元设计原理图

2.3.2 PE-FIFO环形运算单元设计

由于动态时间规整算法计算过程中较大的数据依赖性,每搜索一次下节点前进方向,均需要其上一节点计算所得的累积结果,传统的并行计算并不能提供好的加速效果。而且采集一段1 s 的语音一般有50~100 帧,经过特征提取处理后,每帧语音会生成具有12 个梅尔频率倒谱系数特征点的序列,那么一段待识别语音最终会生成具有600~1 200 个语音特征点的长序列。如果使用1 200 个PE,不论是从硬件资源消耗、功耗还是面积来说均是不明智的。那么设计固定数量的PE 并按照一定的时序循环复用才是合理的解决方案。所以针对上述问题采用流水线设计,通过控制模块调度,将待计算的模板语音特征序列和测试语音特征序列按照12 个周期分步送入图4 所示的PE-FIFO 环形计算单元。12 个PE依次相接,每个PE 负责全局矩阵中一列数据的计算,每个周期结束时PE 计算得到当前列节点上的3个方向数据。当下一个周期来临,将下侧累积距离和左下侧累积距离送入下一级PE,将下侧累积距离送入当前PE 的方向比较器。经过12 个周期后当前帧语音数据处理完成,即前12 个特征点处理完成,此时PE12 产生的左侧和左下侧临时数据已经完全送入到两个FIFO 中,当下一帧语音的第一个特征点送入PE1 时,使能多路开关,将两个FIFO 中的数据送入PE1 中作为边界条件,开始第二帧语音的计算,依此循环直至当前输入的特征点序列完全处理完成,当检测到结束标志后,PE12 输出此时的左侧数据即为当前序列的动态时间规整距离。按照每段待识别语音的帧数,PE-FIFO 环形计算单元通过循环复用,使用时间换空间的思想,一方面节省了器件资源,在不影响动态时间规整算法处理语音数据时的固有的数据依赖性的前提下,提高了资源利用率,另一方面,按照语音数据声学属性,根据识别语音的帧数不同,实现不同次数的循环调用,便于控制逻辑的实现,减少了系统集成开发周期。

图4 PE-FIFO环形计算单元设计原理图

3 实验及结果分析

3.1 实验环境搭建

为验证设计方案的有效性,对该文硬件加速方案进行上板验证。硬件开发环境为Vivado 2018.1,开发板为DIGILENT ARTY,FPGA 器件为ARTIX-7 XC7A35T。该系列器件支持MicroBlaze 软核,所以实验搭建如图5所示以MicroBlaze软核作为控制单元的嵌入式平台。MicroBlaze处理器工作频率为100 MHz,片内Memory64 Kb,动态时间规整算法硬件加速器工作频率为100 MHz,通过AXI-Lite 总线实现和处理器的挂载。采集实验室环境一人有效发音数字1~10 共10 个模板数据作为模板数据集,同理,测试语音数据集以同样的采集设置,采集实验室环境一人有效发音数字1~10,每个有效发音录制30 次,共300 组测试数据。MicroBlaze 处理器将经过处理的数据集依次送入硬件加速单元开始识别测试,识别结果通过UART 串口反馈至上位机。

图5 FPGA嵌入式验证平台结构图

3.2 模块资源占用

经过Vivado 综合布局布线后,资源占用情况如表1 所示。从表中可以看出,LUT 和FF 的资源占用近50%,仍有足够的资源可以提供更多的模板语音数据,后续可根据需求增加模板语音数量。

表1 资源占用表

3.3 性能测试与对比

该文方案与其他文献的方案进行时钟频率、识别率、识别时间等性能方面的横向对比,性能测试对比如表2 所示。

表2 性能对比表

相较于文献[5]中调用NiosII 软核处理器实现动态时间规整算法,文献[6]中的VQ+DTW 的识别方案以及文献[7]中的传统嵌入式软件解决方案。该文方案充分利用流水线计算架构的优势,提出改进的动态时间规整算法硬件架构,提高了数据计算速率。由表2看出,该文方案相对于文献[5]、文献[6]以及文献[7]中的识别方案识别速率分别提升约4 倍、3.3 倍、160倍。识别率则保持在90%以上,可以看出该文提出的方案在损失极小的识别精度的情况下极大地提升了识别速率,识别时间均优于表中其他实现方案。

4 结束语

该文面向嵌入式语音识别平台提出一种动态时间规整算法硬件加速器的设计与实现方法。针对大数据量语音实时处理环境,设计了下界距离函数初筛模块级联PE-FIFO 环形计算模块的处理框架,应用流水线调度,使数据实现粗粒度并行计算,提高了数据计算效率,节省了硬件资源。与同类型参考文献提出的方法相比,识别速率提升4 倍以上,具有较高的计算性能。为应对嵌入式语音识别大数据量的实时计算提供了有效的解决方案。

猜你喜欢
规整语音模板
铝模板在高层建筑施工中的应用
高层建筑中铝模板系统组成与应用
铝模板在高层建筑施工中的应用
“教学做合一”在生成课程背景下构建区角游戏开展
Inventors and Inventions
300kt/a硫酸系统规整填料使用情况简介
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……