5 系统整体硬件实现与性能分析
在实现上述分模块的基础上,通过对各模块的组合实现了帧压缩模块,然后通过接口逻辑将语音帧压缩模块与HMM识别模块组合成完整的关键词识别系统.
5.1 语音帧压缩模块实现
由于隐马尔可夫模块HMM的输入数据是VQ 矢量量化标号序列,为了获得多帧语音的矢量量化标号,需要不断循环执行帧输出.特征参数提取以及VQ 矢量量化等三个模块,直到将所有的语音帧压缩为VQ 编号.因此本文提出了帧压缩模块的架构,该模块主要包括帧输出模块.MFCC 特征参数提取模块.VQ 矢量量化模块,以及计数器.接口逻辑等逻辑电路.
通过MODELSIM对该模块进行仿真,仿真结果如图8所示.
从图8 中可以看出,三大组成模块采用流水线方式运行,对语音帧进行处理.产生VQ 矢量量化结果时,出现done_vq 脉冲并对编号进行存储.采用amount 信号记录已处理的语音帧数,当amount=num_frame 时,所有语音帧处理结束,产生done 脉冲,输出num_frame 帧语音数据的矢量量化编号序列dout.
5.2 关键词识别系统设计实现
将帧压缩模块模块与HMM模块通过接口逻辑连接在一起,即可实现完整的识别系统.
帧压缩模块模块用于实现VQ 编号序列,并触发启动HMM模块实现的识别结果.本文设计的关键词识别系统电路结构图如图9 所示,主要由帧压缩模块(frame2vq)和隐马尔可夫识别模块HMM组成.
采用MODELSIM 对关键词识别系统进行仿真,结果如图10 所示.图中对实验语音产生的VQ矢量量化编号序列为:(105,105,105,36,36,36,77,109,109,45,45,45,61,64,74,122,47,79,109,109,41,41,41,41,25,25,25,9,81,81),将该序列通过HMM 模块进行识别,LED 输出为“1110”,表明识别结果为“广州”.
5.3 系统整体性能分析
实际可识别的关键词数是据所用芯片的容量来确定的.实验中训练了四个关键词模型,分别是“杭州”.“深圳”.“广州”和“北京”.在识别过程中分别选用四个关键词语句各30 组,同时选用非关键词语句50 组.识别结果如表5 所示.
从表5 可看出,一方面,识别系统会产生一定的漏识率,这是因为在通过Viterbi 搜索的过程中,随着幸存路径加长,幸存概率会变得非常微小,部分特征不太明显的关键词会因为幸存概率低于概率门限而被判断为非关键词,而极少被判断为其他关键词.另一方面,系统将非关键词误判为关键词的情况较少出现,即存在较低的虚报率.这说明HMM模板包含的关键词特征比较明显.综合分析,系统对关键词的平均检出率约为87.5%,虚报率约为8.0%.
在XST 中对关键词识别系统KWR进行综合,其结果如表6所示.
关键词识别系统是基于Xilinx 公司的ViterxII Pro 开发板实现的,表中显示的Slices.Slice FFs 以及LUTs 的逻辑资源占用量分别约为总量的39%.22%和29%,这是可以接受的.系统延迟时间为24.882 ns,工作频率为40.190 MHz.如果以20 MHz 的频率工作,对每秒语音的时间处理时间约为0.11 ms,实时性较强.
6 结束语
随着集成电路规模的不断扩大,基于IC 的关键词识别系统的研究已成为当前语音处理领域的研究热点和难点.针对国内缺乏DSP 芯片相应的知识产权核,导致其价位偏高的情况,本文阐述了基于ViterxII Pro 芯片的FPGA的语音识别系统的设计与实现.本文采用帧输出模块来识别语音段,用MFCC 算法进行特征提取,以VQ矢量量化去除大量冗余信息,实现了高效的数据压缩,并运用语音帧压缩模块结合HMM 算法进行匹配识别,实现了基于FPGA 的关键词识别系统,极大地提高了系统的识别率和实时性.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。