一种语音识别装置及其集成电路实现方法

文档序号:2820233阅读:256来源:国知局
专利名称:一种语音识别装置及其集成电路实现方法
技术领域
本发明涉及语音识别和集成电路设计领域,具体是指一种语音识别装置及其集成电路实现方法。
背景技术
目前,语音识别算法的实现方法一般有软件实现和集成电路实现两类。软件实现语音识别算法指在通用计算机上编写程序实现或利用嵌入式软件实现,其中,在通用计算机上编写程序实现的可利用资源充分,且算法优化升级灵活,缺点在于计算机携带不方便,不能随身使用,移动性差;利用嵌入式软件实现,其缺点在于资源有限,处理器计算速度也存在瓶颈问题。集成电路实现语音识别算法指采用逻辑电路实现,其特点是运算速度快、实时,识别装置体积小、重量轻,便于移动使用,也可作为构成模块,加载到其他需要人机交互的智能设备中,如语音拨号手机/电话机。
动态时间归正(Dynamic Time Warping,简称DTW)算法是常用的语音模式识别算法之一,主要应用于中小词汇量语音识别。
语音识别算法的集成电路实现方法通常有以下两种(1)微控制器加一个处理单元结构。该结构是采用一个微控制器控制处理单元的数据输入、计算、输出,充分利用了硬件处理单元在计算方面的优势和微控制器在控制方面的优势,比起使用通用处理器的纯软件实现语音识别方法在识别速度上有较大提高,但是由于受到微控制器处理速度的限制,这种实现结构仍然难以满足实时性要求。
(2)处理单元阵列结构。该结构的处理速度比非处理阵列实现方法有数量级的提高。按照处理器阵列的分类,目前用于实现DTW算法的处理单元阵列几乎都属于心动阵列。心动阵列通常只适用于计算规模大小确定的问题,目前的心动阵列实现结构都是采用固定参考模板和测试模板的帧数方式,而且参考模板的帧数和测试模板的帧数必须相等,但通常情况下每个字、词的发音的时长是不同的,即使是同一个人不同时候说出来的同一词的发音时长也是不同的,因此固定参考模板和测试模板的帧数不但增加了特征提取部分的计算量和复杂度,更重要的是增大了语音特征表达的失真度,不利于后续的识别,因此采用处理单元阵列结构实现语音识别的通用性比较差。
将语音识别算法嵌入到集成电路芯片上,不仅带来了应用上的便利,还将极大地拓宽语音识别的应用领域。国际上现有的语音识别装置中,采用的典型语音识别芯片有Sensory公司的RSC语音识别芯片和Philips公司的Hello IC语音识别芯片。其中RSC语音识别芯片可识别16个预先设定好的词,若采用外接SRAM(数据存储器),采用特定说话人方式,经过训练,词汇量可扩大到100左右。这些语音识别芯片的缺点在于都是基于8位MCU(Micro ControllerUnit,单片机)加上一个语音处理单元实现的,可识别的命令数很有限,难以满足大多数实际应用的要求。
国内集成电路设计在近几年才有较大的发展,目前仍然相对滞后,在专用语音识别芯片设计方面的研究目前很少报道,还未见语音识别专用芯片的报道。

发明内容
本发明的目的就是为了克服现有语音识别技术实现方法的缺点和问题,提供一种通用性、实用性强,可进行参数配置的采用动态时间归正算法的语音识别装置。
本发明的目的还在于提供上述动态时间归正算法的集成电路实现方法。
本发明的目的通过下述技术方案实现本语音识别装置包括嵌入式处理器、动态时间归正算法模块,所述动态时间归正算法模块通过控制总线与嵌入式处理器相连接,所述嵌入式处理器分别连接有程序存储器、数据存储器、显示器,同时通过模/数转换模块与麦克风连接,所述嵌入式处理器设置有按键、RS232接口,所述动态时间归正算法模块包括计算控制模块、处理单元阵列、模板缓冲区,且设置有系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、特征数据端口、系统忙标志端口、输出数据有效端口、匹配结果输出端口,所述处理单元阵列是一维线性阵列,各处理单元依次连接,所述系统时钟端口、复位信号端口与各处理单元分别连接,所述最后一个处理单元连接有匹配结果输出端口,所述计算控制模块与第一个、最后一个处理单元以及所述模板缓冲区、系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、系统忙标志端口、输出数据有效端口分别连接,所述模板缓冲区与第一个、最后一个处理单元以及所述系统时钟端口、复位信号端口、特征数据端口分别连接。
所述模板缓冲区包括测试模板缓冲区、参考模板缓冲区。
所述控制总线分别与系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、特征数据端口、系统忙标志端口、输出数据有效端口、匹配结果输出端口连接,所述控制信号端口与控制总线的三条控制信号线连接,可以表示8种不同的控制状态,使嵌入式处理器实现对动态时间归正算法模块的控制。
采用动态时间归正算法的上述语音识别装置的集成电路实现方法,包括如下步骤第一,所述计算控制模块检测到控制总线上有复位模板缓冲区信号后,对所述模板缓冲区进行复位,等待数据的输入;第二,所述计算控制模块检测到所述测试模板有效端口或参考模板有效端口为高电平时,输出相应的地址和控制信号,把所述特征数据端口上的测试模板特征参数和参考模板特征参数保存到所述模板缓冲区中,完成数据的输入;第三,所述计算控制模块检测到控制总线上有开始匹配命令后,向所述模板缓冲区输出相应的地址和控制信号,把参考模板特征参数和测试模板特征参数读出,分别送到所述第一个处理单元和最后一个处理单元,同时所述计算控制模块计算出下一个时刻的运动方向,并将其送到所述第一个处理单元,同时使所述系统忙标志端口输出高电平,说明系统正在工作;第四,所述计算控制模块根据运动方向依次把需要的参考模板和测试模板从所述模板缓冲区中读取出来,送到所述各处理单元中进行处理;第五,数据处理完成后,所述最后一个处理单元通过所述匹配结果输出端口输出测试模板和参考模板的匹配加权距离,此时所述计算控制模块使所述输出数据有效端口输出一个正脉冲,同时使所述系统忙标志端口输出低电平;第六、嵌入式处理器收到输出数据有效端口输出的正脉冲后,把匹配结果读到数据存储器中缓存起来,然后重复上述第二~五步骤,进行下一次匹配,如此循环,直到所有参考模板匹配完成。
所述运动方向是由所述计算控制模块确定下一个匹配时刻第一个处理单元的搜索方向,同时利用多处理单元的搜索路径的平行性,使运动方向信号和参考模板特征一起在心动阵列中流动,完成不等长模板的匹配。
所述第三步中,参考模板特征参数由第一个处理单元开始依次向下传递,测试模板特征参数从最后一个处理单元输入,并使之沿参考模板参数流向相反的方向流动,形成参考模板参数和测试模板参数由两个相反的方向相向运动。
基于动态时间归正算法的语音识别装置的工作原理是(1)生成参考模板。通过所述按键,选择训练功能,进行下述步骤1、发音人的声音通过所述麦克风转换成电信号后经所述模/数转换模块变成数字语音信号;2、所述嵌入式处理器对数字语音信号进行预处理,然后提取LPC(线性预测编码)特征参数作为参考模块特征参数;3、将参考模块特征参数保存到所述程序存储器中,形成参考模板供识别时使用。
(2)语音识别。通过所述按键,选择识别功能,进行下述步骤1、发音人的声音通过所述麦克风转换成电信号后经所述模/数转换模块变成数字语音信号;2、所述嵌入式处理器对数字语音信号做预处理,提取LPC特征参数作为测试模板特征参数,并保存到所述数据存储器中,形成测试模板;3、所述嵌入式处理器分别从数据存储器、程序存储器中将测试模板特征参数、参考模板特征参数读出,并送到所述动态时间归正算法模块中模板缓冲区的测试模板缓冲区、参考模板缓冲区;4、所述嵌入式处理器发送开始匹配命令,所述动态时间归正算法模块将测试模板与参考模板进行匹配,所述嵌入式处理器得到计算结果后对所述动态时间归正算法模块的参考模板缓冲区进行复位,并从所述程序存储器中取出下一个参考模板参数放到所述动态时间归正算法模块的参考模板缓冲区,然后开始下一次匹配,如此循环,直到所有参考模板匹配完成;5、所述嵌入式处理器根据测试模板与所有参考模板的匹配加权距离进行识别判决,得到识别结果并在所述显示器上显示,从而完成语音识别的过程。
在本发明中,所述嵌入式处理器和动态时间归正算法模块用一片FPGA(Field Programmable Gate Array,现场可编程门阵列)实现。
所述动态时间归正算法的集成电路实现通过使用VHDL(Very High SpeedIntegrated Circuit Hardware Description Language,超高速集成电路的硬件描述语言)语言进行描述。
相对现有技术,本发明具有以下优点及有益效果(1)采用“运动方向”的概念,利用一维心动阵列实现DTW算法。为了最大限度地提高识别速度,本发明采用了多个处理单元即处理单元阵列同时运算的方法。这种实现方法的处理速度比非处理阵列实现方法有数量级的提高,适合实时性要求比较高的应用场合。目前的DTW算法的电路实现结构都是采用固定参考模板和测试模板的帧数方式,且参考模板的帧数和测试模板的帧数必须相等,因此通用性比较差。针对这一问题,本发明在DTW实现结构中增加了一个计算控制模块(cal_ctrl),“运动方向”由计算控制模块产生,用于确定下一个匹配时刻第一个处理单元的搜索方向,同时利用多处理单元的搜索路径平行性特点,使运动方向信号和参考模板特征一起在心动阵列中流动,由运动方向控制测试模板特征在心动阵列中逆向流动,使得各个处理单元在参考模板和测试模板长度变化情况下仍然能够正确地进行两个模板的匹配过程。
(2)在DTW算法匹配过程中,对于一维并行阵列来说,把测试模板特征参数从最后一个处理单元输入,并使之沿参考模板参数流向相反的方向流动,参考模板特征参数由第一个处理单元开始依次向下传递,流动是顺序的。因此,模板特征参数由两个相反的方向输入,相对传统并行阵列所采用的模板特征参数由一个方向输入和先存储后计算的模板处理方式,大大减小了硬件资源和输入接口控制逻辑的复杂度。


图1是本发明语音识别装置的结构示意图;图2是图1所示动态时间归正算法模块的内部结构示意图;图3是图1所示动态时间归正算法模块的外部结构示意图;图4是图3所示测试模板与参考模板匹配过程的原理图。
具体实施例方式
下面结合实施例,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1图1给出了基于动态时间归正算法的本发明语音识别装置的具体结构,本语音识别装置包括嵌入式处理器(Nios II)1、动态时间归正算法模块(DTW)2,动态时间归正算法模块(DTW)2通过控制总线与嵌入式处理器(Nios II)1相连接,嵌入式处理器(Nios II)1分别连接有程序存储器(FLASH)3、数据存储器(SRAM)4、显示器5,同时通过模/数转换模块6与麦克风7连接,嵌入式处理器(Nios II)1设置有按键8、RS232接口9。
图2、图3给出了动态时间归正算法模块(DTW)2的结构,包括计算控制模块(cal_ctrl)10、处理单元阵列11、模板缓冲区12,且设置有系统时钟端口(clk)13、控制信号端口(ctrl_sig)14、特征数据端口(dat_ptn)15、参考模板有效端口(ref_dat-en)16、复位信号端口(rst)17、测试模块有效端口(test_dat_en)18、系统忙标志端口(busy)19、匹配结果输出端口(dout)20、输出数据有效端口(dout_en)21。处理单元阵列11是一维线性阵列,各处理单元依次连接,系统时钟端口(clk)13、复位信号端口(rst)17与各处理单元分别连接,最后一个处理单元11-2连接有匹配结果输出端口(dout)20,计算控制模块与第一个、最后一个处理单元11-1、11-2以及模板缓冲区12、系统时钟端口(clk)13、控制信号端口(ctrl_sig)14、参考模板有效端口(ref_dat-en)16、复位信号端口(rst)17、测试模块有效端口(test_dat_en)18、系统忙标志端口(busy)19、输出数据有效端口(dout_en)20分别连接,模板缓冲区12与第一个、最后一个处理单元11-1、11-2以及系统时钟端口(clk)13、特征数据端口(dat_ptn)15、复位信号端口(rst)分别连接17。
模板缓冲区12包括测试模板缓冲区、参考模板缓冲区。
控制总线分别与系统时钟端口(clk)13、控制信号端口(ctrl_sig)14、特征数据端口(dat_ptn)15、参考模板有效端口(ref_dat-en)16、复位信号端口(rst)17、测试模块有效端口(test_dat_en)18、系统忙标志端口(busy)19、匹配结果输出端口(dout)20、输出数据有效端口(dout_en)21连接,控制信号端口(ctrl_sig)14与控制总线的三条控制信号线连接,可以表示8种不同的控制状态,使嵌入式处理器(Nios II)1实现对动态时间归正算法模块的控制。
实施例2如图1、图2、图3所示,基于动态时间归正算法的本语音识别装置的工作过程是(1)生成参考模板。通过按键8,选择训练功能,进行下述步骤1、发音人的声音通过麦克风7转换成电信号后经模/数转换模块6变成数字语音信号;2、嵌入式处理器(Nios II)1对数字语音信号进行预处理,然后提取LPC(线性预测编码)特征参数作为参考模块特征参数;3、将参考模块特征参数保存到程序存储器(Flash)3中,形成参考模板供识别时使用。
(2)语音识别。通过按键8,选择识别功能,进行下述步骤1、发音人的声音通过麦克风7转换成电信号后经模/数转换模块6变成数字语音信号;2、嵌入式处理器(Nios II)对数字语音信号做预处理,提取LPC特征参数作为测试模板特征参数,并保存到数据存储器(SRAM)4中,形成测试模板;3、嵌入式处理器(Nios II)1通过控制总线向复位信号端口(rst)17发出的复位模板缓冲区信号,计算控制模块(cal_ctrl)10检测到复位模板缓冲区信号后,对模板缓冲区12进行复位,等待数据的输入;4、嵌入式处理器(Nios II)1通过控制总线向特征数据端口(dat_ptn)15依次输入测试模板特征参数、参考模板特征参数,并依次置测试模板有效端口(test_dat_en)18、参考模板有效端口(ref_dat_en)16为高电平,计算控制模块(cal_ctrl)10检测到测试模板有效端口(test_dat_en)18、参考模板有效端口(ref_dat_en)16为高电平时,依次输出相应的地址和控制信号,并把测试模板特征参数、参考模板特征参数分别保存到模板缓冲区12中的测试模板缓冲区、参考模板缓冲区,完成数据的输入;5、嵌入式处理器(Nios II)1通过控制总线向控制信号端口(ctrl_sig)14发出匹配命令,计算控制模块(cal_ctrl)10检测到匹配命令后,给模板缓冲区12输出相应的地址和控制信号,把参考模板特征参数和测试模板特征参数读出,分别送到第一个处理单元11-1和最后一个处理单元11-2,同时所述计算控制模块10计算出下一个时刻的运动方向,并将其送到所述第一个处理单元,同时使系统忙标志端口(busy)19输出高电平,说明系统正在工作;6、计算控制模块(cal_ctrl)10根据运动方向依次把需要的参考模板特征参数和测试模板特征参数从模板缓冲区12中读取出来,送到各处理单元中进行运算,直到计算完最后一个数据;
7、计算完成后,最后一个处理单元11-2通过匹配结果输出端口(Dout)20输出匹配结果,即测试模板和参考模板的匹配加权距离,此时计算控制模块(cal_ctrl)10通过输出数据有效端口(dout_en)21、控制总线向嵌入式处理器(Nios II)1输出一个正脉冲,提出中断申请,提醒嵌入式处理器(Nios II)1已经计算完毕,同时使系统忙标志端口(busy)19输出低电平;8、嵌入式处理器(Nios II)1收到输出数据有效端口(dout_en)21输出的正脉冲后,把匹配结果读到数据存储器(SRAM)4中缓存起来,然后重复上述3~7步骤,进行下一次匹配,如此循环,直到所有参考模板匹配完成;9、嵌入式处理器(Nios II)1根据测试模板和所有参考模板的匹配加权距离进行识别判决,得到识别结果并在显示器5上显示,从而完成语音识别的过程。
如图3所示,本动态时间归正算法模块的处理单元阵列是一维并行阵列,把测试模板特征参数从最后一个处理单元11-2输入,并使之沿参考模板参数流向相反的方向流动,参考模板特征参数由第一个处理单元11-1开始依次向下传递,流动是顺序的。如图4所示,在测试模板与参考模板的匹配过程的搜索方向是从左下角到右上角,处理单元B在计算第i行的时候处理单元A已经在计算第i+1行了;而每一列的特征则与行特征流向相反,处理单元A在计算第j列时,处理单元B已经在计算第j+1列了。因此,参考模板特征参数和测试模板特征参数由两个相反的方向输入,相对传统并行阵列所采用的模板特征参数由一个方向输入和先存储后计算的模板处理方式,大大减小了硬件资源和输入接口控制逻辑的复杂度。
本装置中,程序存储器(FLASH)3为Atmel公司的AM29LV065DU,数据存储器(SRAM)4为IDT公司的IDT71V416,模/数转换模块6采用美国国家半导体公司的8位模/数转换器ADC0809,显示器5为LUMEX公司的LCM-S16020,嵌入式处理器(Nios II)1和动态时间归正算法模块2采用一片Altera公司的型号为EPlC20F400C7的FPGA(Field Programmable Gate Array,现场可编程门阵列)22实现,其实现过程是1、用VHDL(Very High Speed Integrated Circuit Hardware DescriptionLanguage,超高速集成电路的硬件描述语言)对系统电路进行描述;2、用Synplicity公司的集成电路设计综合软件Synplify对VHDL描述的硬件电路进行综合,得到与Altera公司的型号为EPlC20F400C7的FPGA相应的网表文件;3、用Altera公司的FPGA设计实现软件QuartusII对得到的网表进行布局布线及提取延时信息;4、用Cadence公司的集成电路设计仿真软件NC-SIM进行时序仿真;5、用Altera公司的FPGA设计实现软件QuartusII把硬件配置信息下载到上述FPGA(型号EPlC20F400C7)上。
如上所述,便可较好地实现本发明。
权利要求
1.一种语音识别装置,包括嵌入式处理器、动态时间归正算法模块,所述动态时间归正算法模块通过控制总线与嵌入式处理器相连接,所述嵌入式处理器分别连接有程序存储器、数据存储器、显示器,同时通过模/数转换模块与麦克风连接,所述嵌入式处理器设置有按键、RS232接口。其特征在于所述动态时间归正算法模块包括计算控制模块、处理单元阵列、模板缓冲区,且设置有系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、特征数据端口、系统忙标志端口、输出数据有效端口、匹配结果输出端口;所述处理单元阵列是一维线性阵列,各处理单元依次连接,所述系统时钟端口、复位信号端口与各处理单元分别连接,所述最后一个处理单元连接有匹配结果输出端口;所述计算控制模块与第一个、最后一个处理单元以及所述模板缓冲区、系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、系统忙标志端口、输出数据有效端口分别连接;所述模板缓冲区与第一个、最后一个处理单元以及所述系统时钟端口、复位信号端口、特征数据端口分别连接。
2.按权利要求1所述语音识别装置,其特征在于所述模板缓冲区包括测试模板缓冲区、参考模板缓冲区。
3.按权利要求1所述语音识别装置,其特征在于所述控制总线分别与系统时钟端口、复位信号端口、控制信号端口、参考模板有效端口、测试模块有效端口、特征数据端口、系统忙标志端口、输出数据有效端口、匹配结果输出端口连接,所述控制信号端口与控制总线的三条控制信号线连接。
4.按权利要求1所述语音识别装置,其特征在于所述处理单元阵列是一维心动阵列。
5.权利要求1所述语音识别装置的集成电路实现方法,其特征在于包括如下步骤第一,所述计算控制模块检测到控制总线上有模板缓冲区复位信号后,对所述模板缓冲区进行复位,等待数据的输入;第二,所述计算控制模块检测到所述测试模板有效或参考模板有效时,输出相应的地址和控制信号,把所述特征数据端口上的测试模板特征参数和参考模板特征参数保存到所述模板缓冲区中,完成数据的输入;第三,所述计算控制模块检测到控制总线上有开始匹配命令后,向所述模板缓冲区输出相应的地址和控制信号,把参考模板特征参数和测试模板特征参数读出,分别送到所述第一个处理单元和最后一个处理单元,同时所述计算控制模块计算出下一个时刻的运动方向,并将其送到所述第一个处理单元,同时使所述系统忙标志端口输出高电平,说明系统正在工作;第四,所述计算控制模块根据运动方向依次把需要的参考模板和测试模板从所述模板缓冲区中读取出来,送到所述各处理单元中进行处理;第五,数据处理完成后,所述最后一个处理单元通过所述匹配结果输出端口输出测试模板和参考模板的匹配加权距离,此时所述计算控制模块使所述输出数据有效端口输出一个正脉冲,同时使所述系统忙标志端口输出低电平;第六,嵌入式处理器收到输出数据有效端口输出的正脉冲后,把匹配结果读到数据存储器中缓存起来,然后重复上述第二~五步骤,进行下一次匹配,如此循环,直到所有参考模板匹配完成。
6.按权利要求5所述语音识别装置的集成电路实现方法,其特征在于,所述运动方向是由所述计算控制模块确定下一个匹配时刻第一个处理单元的搜索方向,同时利用多处理单元的搜索路径的平行性,使运动方向信号和参考模板特征一起在心动阵列中流动,完成不等长模板的匹配。
7.按权利要求5所述语音识别装置的集成电路实现方法,其特征在于,所述第三步中,参考模板特征参数由第一个处理单元开始依次向下传递,测试模板特征参数从最后一个处理单元输入,并使之沿参考模板参数流向相反的方向流动,形成参考模板参数和测试模板参数由两个相反的方向相向运动。
全文摘要
本发明提供一种语音识别装置,包括嵌入式处理器、动态时间归正算法模块,动态时间归正算法模块通过控制总线与嵌入式处理器相连接,嵌入式处理器分别连接有程序存储器、数据存储器、显示器,同时通过模/数转换模块与麦克风连接,嵌入式处理器设置有按键、RS232接口,动态时间归正算法模块包括计算控制模块、处理单元阵列、模板缓冲区。本发明通过计算控制模块产生“运动方向”,把参考模板特征和测试模板特征参数由两个相反的方向输入处理单元阵列,使各处理单元在参考模板和测试模板长度变化情况下仍然能够正确地进行两个模板的匹配过程,同时大大减小了硬件资源和输入接口控制逻辑的复杂度。
文档编号G10L15/28GK1664926SQ20051003376
公开日2005年9月7日 申请日期2005年3月28日 优先权日2005年3月28日
发明者贺前华, 李韬 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1