首页> 中国专利> 一种快速语音孤立词识别算法及其用途、语音识别系统

一种快速语音孤立词识别算法及其用途、语音识别系统

摘要

本发明的快速语音孤立词识别算法主要包括步骤:S1、对语音信号x(n)进行连续频谱分析以获得二维图像语谱图,其中纵坐标为频率,横坐标为时间,像素灰度值大小反应相应时刻和相应频率的信号能量密度;S2、将语谱图等效为时频函数;S3、将时频函数与语谱图相结合为特征参数并提取。上述算法应用于STM32低速嵌入式处理器实现语音开关功能。有益效果:本发明的快速语音孤立词识别算法、用途及语音识别系统可以实现在低速嵌入式系统上的语音开关识别系统,从而降低语音开关芯片的价格,且方便携带,因此可以应用到不同的场合。

著录项

  • 公开/公告号CN103971676A

    专利类型发明专利

  • 公开/公告日2014-08-06

    原文格式PDF

  • 申请/专利权人 上海师范大学;

    申请/专利号CN201410164154.4

  • 发明设计人 殷业;李丽;刘传勇;刘芳萍;

    申请日2014-04-23

  • 分类号G10L15/02;G10L15/06;

  • 代理机构北京科亿知识产权代理事务所(普通合伙);

  • 代理人汤东凤

  • 地址 200234 上海市徐汇区桂林路100

  • 入库时间 2023-12-17 01:00:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-04-09

    未缴年费专利权终止 IPC(主分类):G10L15/02 授权公告日:20170714 终止日期:20180423 申请日:20140423

    专利权的终止

  • 2017-07-14

    授权

    授权

  • 2014-09-03

    实质审查的生效 IPC(主分类):G10L15/02 申请日:20140423

    实质审查的生效

  • 2014-08-06

    公开

    公开

说明书

技术领域

本发明属于语音识别技术领域,涉及用于例如STM32等低速嵌入式系统的快速语音识别算法以及应用这种算法的采用低速嵌入式系统芯片的语音识别系统,特别涉及一种适用于上述系统的快速语音孤立词识别算法及其语音识别系统。>

背景技术

经过近五十年的发展,语音识别技术在许多应用领域显示出巨大的应用前景。在手机、呼叫中心、车载、互联网电视、智能家电、语言翻译等各领域得到创新应用。语音可以帮助客户做本地化的应用,包括打电话、发短信、查询目的歌曲,也可以聊天。短短两年时间内,科大讯飞、Apple、百度、盛大、云之声、腾讯、中科院自动化所等公司或单位相继推出了在线语音识别引擎和应用软件。近年来,科大讯飞、云之声、中科院自动化所又相继推出了适合手机平台使用的离线语音识别引擎。短短数年,互联网搜索巨头、网游巨头、通讯巨头和学术带头单位纷纷进军语音识别的产业化应用,掀起语音识别的应用热潮。但是,目前大多数语音识别系统的关键技术都是基于HMM模型而开发的,HMM是一种统计模型,模型参数的估计需要大量的训练数据,而且训练过程计算量大,耗时长,运算起来极为复杂,在一般的硬件下根本不可能运行。上述HMM模型除了PC机、DSP和FPGA等一些专门用于处理数字信号的芯片及各种语音芯片外几乎不能在一般的硬件上实现,导致基于上述模型开发的语音系统昂贵。目前也有部分语音系统使用非数字信号芯片作为语音识别芯片,虽在成本上比起语音专用芯片便宜很多,但在硬件上大部分是在PC系统完成码本训练和语音模板的训练,嵌入式系统只完成语音识别部分;或者直接使用语音芯片,嵌入式系统仅仅做控制使用。>

发明内容

本发明的目的是为了解决现有的语音识别系统或者采用的专用语音芯片价格昂贵或者需要在PC系统中完成码本训练集语音模板训练等不足,提出了一种快速语音孤立词识别算法及语音识别系统。>

本发明的技术方案为:一种快速语音孤立词识别算法,其特征在于,包括以下步骤:>

S1、对语音信号x(n)进行连续频谱分析以获得二维图像语谱图,其中纵坐标为频率,横坐标为时间,像素灰度值大小反应相应时刻和相应频率的信号能量密度;>

S2、将语谱图等效为时频函数;>

S3、将时频函数与语谱图相结合为特征参数并提取。>

进一步的,上述步骤S1包括步骤:>

S11、STFT:>

xn(w)=Σm=-x(m)w(n-m)e-jwm;

S12、x(n)做DTFT变换:>

x(n,w)=Σm=0N-1xn(m)e-jwm;

其中w为变换角频率;>

S13、DFT:>

x(n,k)=ΣM=0N-1xn(m)e-j2πkmN,0kN-1

其中|x(n,k)|为x(n)的短时幅度谱估计,N表示做N点离散傅立叶变换,时间m处的频率能量密度函数p(n,k)为:>

p(n,k)=|x(n,k)|2=x(n,k)·x'(n,k)>

p(n,k)为x(n)的短时自相关函数的傅里叶变换,k为纵坐标频率,t为横坐标时间,p(n,k)的值表示灰度级所构成的二维图像语谱图。>

进一步的,上述步骤S2包括步骤:>

S21、通过过零率寻找过零点的位置,并记录:>

定义信号{x(n)}的短时平均过零率Zn:>

Zn=12Σm=-+|sgn[x(m)]-sgn[x(m-1)]|w(n-m)

式中,sgn为符号函数:>

sgn[x(n)]={1,x(n)>0-1,x(n)<0

其中w(n)为窗函数;确定若|agn|[x(m)]-agn[x(m-1)]>C,其中m∈(-∞,+∞),记下m值,此m值即为过零点所在的位置,位置函数为:>

f(m)=m2sgn[|sgn[x(m)]-sgn[x(m-1)]|],m(-,+)

过零点所在的位置为时间;>

S22、将语谱图等效为时频函数。>

上述快速语音孤立词识别算法应用于STM32低速嵌入式处理器实现语音开关功能。>

一种语音识别系统,其特征在于,包括低速嵌入式处理单元,与处理单元连接的语音输入单元和信号输出单元,所述低速嵌入式处理单元内包含实现快速语音孤立词识别算法的软件程序。>

进一步的,上述低速嵌入式处理单元芯片型号为STM32F103ZET6。>

进一步的,上述语音识别系统还包括SD卡槽,用于连接外部SD卡用于存储数据。>

进一步的,上述语音识别系统还包括设置用得功能按键,用于更改软件系统设置。>

进一步的,上述语音识别系统还包括显示单元,用于显示设置结果。>

进一步的,上述语音识别系统的软件程序包含“开”和“关”读音的模型,并存储于软件模型库,用于制作语音开关。>

发明的有益效果:本发明的快速语音孤立词识别算法、用途及语音识别系统可以实现在低速嵌入式系统上的语音开关识别系统,从而降低语音开关芯片的价格,且方便携带,因此可以应用到不同的场合。具体通过改进时频参数,提取出一种新的特征参数,从而无需用PC机、数字信号处理芯片或者语音芯片来实现语音识别,只需利用STM32这种低速嵌入式系统,即可完成语音识别的整个过程,并且降低语音芯片的价格。由于考虑到上述系统数据处理能力的局限性,优选适用于用作语音开关等语音识别要求较为单一的场合。>

附图说明

图1为本发明中过零谱算法与现有的LPCC及MFCC的算法复杂度比较示意图;>

图2为本发明的快速语音孤立词识别算法应用于STM32低速嵌入式处理器实现语音开关功能的软件实现流程图;>

图3为本发明的语音识别系统结构示意图。>

图4为LPCC过程图示;>

图5为MFCC过程图示。>

具体实施方式

本发明的以下实施例是依据本发明的原理而设计,下面结合附图和具体的实施例对本发明作进一步的阐述。>

本实施例的快速语音孤立词识别算法,包括以下步骤:S1、对语音信号x(n)进行连续频谱分析以获得二维图像语谱图,其中纵坐标为频率,横坐标为时间,像素灰度值大小反应相应时刻和相应频率的信号能量密度;S2、将语谱图等效为时频函数;S3、将时频函数与语谱图相结合为特征参数并提取。具体的,将语谱图等效为时频函数,其中时频函数即为通过实验得出的特征过零谱,将时频函数与语谱图相结合,也就是对比分析可以知道,过零谱就是一种简化的语谱图的时频函数,提取的特征就是过零谱即过零点位置。由于本发明的创新点在于采用过零点获取的方式实现语谱图到时频函数(及过零谱函数)的等效,而获取时频函数后进而与语谱图相结合为特征函数并提取属于本领域的公知常识,故在此 不做详述。>

对于上述步骤,具体实现方式为:>

步骤S1包括步骤:>

S11、STFT:>

xn(w)=Σm=-x(m)w(n-m)e-jwm;

S12、x(n)做DTFT变换:>

x(n,w)=Σm=0N-1xn(m)e-jwm;

S13、DFT:>

x(n,k)=ΣM=0N-1xn(m)e-j2πkmN,0kN-1

其中|x(n,k)|为x(n)的短时幅度谱估计,时间m处的频率能量密度函数p(n,k)为:>

p(n,k)-|x(n,k)|2-x(n,k)·x'(n,k)>

p(n,k)为x(n)的短时自相关函数的傅里叶变换,k为纵坐标频率,t为横坐标时间,p(n,k)的值表示灰度级所构成的二维图像语谱图。>

进一步的,上述步骤S2包括步骤:>

S21、通过过零率寻找过零点的位置,并记录:>

定义信号{x(n)}的短时平均过零率Zn:>

Zn=12Σm=-+|sgn[x(m)]-sgn[x(m-1)]|w(n-m)

式中,sgn为符号函数:>

sgn[x(n)]={1,x(n)>0-1,x(n)<0

其中w(n)为窗函数;确定若|agn|[x(m)]-agn[x(m-1)]>C,其中m∈(-∞,+∞),记下m值,此m值即为过零点所在的位置,位置函数为:>

f(m)=m2sgn[|sgn[x(m)]-sgn[x(m-1)]|],m(-,+)

过零点所在的位置为时间;>

S22、将语谱图等效为时频函数。>

上述快速语音孤立词识别算法应用于STM32低速嵌入式处理器实现语音开关功能。由 于STM32系统本身与专用语音芯片相比,处理能力存在局限性,并且本发明的算法主要正对孤立词识别,故上述系统在考虑系统稳定性、经济性等前提下,主要应用于语音开关。>

如图3所示,本实施例进一步提出一种语音识别系统方案,包括低速嵌入式处理单元,与处理单元连接的语音输入单元和信号输出单元,所述低速嵌入式处理单元内包含实现快速语音孤立词识别算法的软件程序。软件程序流程如图2所示,上述算法运用操作系统μc/osⅡ和程序实现语音的孤立词识别。在本实施例中使用的低速嵌入式处理单元芯片型号优选为STM32F103ZET6。该芯片具有完成上述数据处理的能力,并且价格低廉,特别适用于利用上述算法实现语音开关功能。上述语音识别系统包括SD卡槽,用于连接外部SD卡用于存储数据。语音识别系统还包括设置用得功能按键和显示单元,分别用于更改软件系统设置和显示设置结果。上述语音识别系统的软件程序包含“开”和“关”读音的模型,上述模型存储与模型库,用于制作语音开关。>

以下为本发明的具体原理及性能说明,用于辅助理解本发明的原理:>

特征参数的提取:>

单独对语音信号的时域分析和频域分析有局限性:时域分析的语音特征不能直观反映语音信号的频率特性;频域分析没有反应出语音信号时变性的特征参数。然而我们在语谱图中却可以观察语音不同频段的信号强度随时间的变化情况,还可以看到明显的一条条横方向的条纹,称为“声纹”。对语音进行连续地进行频谱分析可以得到二维图像,纵坐标为频率,横坐标为时间,而每个像素的灰度值大小反应相应时刻和相应频率的信号能量密度。短时傅里叶变换(STFT,short-time Fourier transform,或short-term Fourier transform)>

xn(w)=Σm=-x(m)w(n-m)e-jwm

x(n)做DTFT变换>

x(n,w)=Σm=0N-1xn(m)e-jwm

DFT>

x(n,k)=ΣM=0N-1xn(m)e-j2πkmN,0kN-1

|x(n,k)|就是x(n)的短时幅度谱估计,其中0≤k≤N-1而时间m处的频率能量密度函数p(n,k)为>

P(n,k)=|x(n,k)|2=x(n,k)·x’(n,k)>

P(n,k)即为x(n)的短时自相关函数的傅里叶变换,k为纵坐标,t为横坐标,则p(n,k)的值表示为灰度级所构成的二维图像就是语谱图。>

语谱图其实就是一种时频谱,现在用时频函数来等效。通过实验研究人耳对语音识别的哪些参数有关,分析各个实验数据,最后得出语谱图的等效时频函数。>

实验1:调幅,帧长zc,帧移zy,将语音分成m行,n列,其中n=zc。取其中一行,将该行的每一列数相加取平均值,再将该平均值赋给该行的每一列。将修改后的语音数据再通过Audition播放,观察在不同帧长帧移情况下,“白日依山尽”的人耳可辨度。>

实验结果发现在帧长为4帧移为4时语音开始出现杂音。帧长帧移均在4之前的语音清晰可辨,但是在分帧在5ms~50ms的情况来看,对于8K的采样率,一帧的点数在40~400个点,4个点的采样率明显不符合分帧规律,因此,可以说幅度在语音识别中起着很小的作用,不是语音识别中的主要特征参数。>

实验2调频调相,先分帧,对每一帧的数据,找出频率变化的规律,用最小二乘法去拟合频变,然后调整相位。实验结果表明,在帧长16帧移16以后,语音清晰度很差,因此,原因同实验1,频率与相位也不是语音识别的主要特征参数,但是可以得出,在语音识别中,频率相位占的比重要大于幅度占的比重。>

又因为上述实验我们得出单独的时域与频域均不是识别的关键,时频参数才是识别关键。而过零率就是一种时频参数。>

实验3通过过零率寻找过零点的位置,并记录。实验表明,每个字的过零点的相对位置几乎不变,并且不同字的过零点的位置在二维空间内有差异,实验选取“开”“关”两个字的过零点位置,从实验得出,两个字的过零点相对位置相差很大,可通过肉眼即可从图像中判断和区分两个汉字。>

实验结果可描述为:通过上述实验得出结论过零点的位置即过零谱为语音识别的关键。>

信号{x(n)}的短时平均过零率定义为:>

Zn=12Σm=-+|sgn[x(m)]-sgn[x(m-1)]|w(n-m)

式中,sgn为符号函数,即:>

sgn[x(n)]={1,x(n)>0-1,x(n)<0

其中w(n)为窗函数。>

若|agn|[x(m)]-agn[x(m-1)]>C,,其中m∈(-∞,+∞),记下m值,此m值即为过零点所在的位置。位置函数为:>

f(m)=m2sgn[|sgn[x(m)]-sgn[x(m-1)]|],m(-,+)

根据实验证明,其中过零率代表频率,过零点所在的位置为时间,从而可以将语谱图等效为时频函数——过零谱函数。本发明将过零谱与语谱图相结合,作为一种新的特征参数来提取。对其他参数进行比较,过零谱有一个非常大的优势,即算法简便,相比较于需要做FFT复杂算法的频域参数;与时域参数比较,识别效果远远大于时域特征参数。>

如图1所示,以下为本发明的算法与现有算法的复杂度对比分析:>

特征参数复杂度分析>

语音特征参数的提取是研究语音识别的基础,语音特征参数分为时域参数和频域参数。如时域的基音周期、自相关等,频域内的线性预测倒谱参数(LPCC),梅尔频标倒谱参数(MFCC)等。由于实验语音学的研究从语音信号本质上给出的特征参数是科学的、合理的,但是不完全。从研究语音是识别到底与什么有关,经过多次实验,最后提取到一种新的语音特征参数——过零谱,所谓过零谱,即过零点的位置。下面简要介绍LPCC、MFCC及过零谱,并比较过零谱与常用的特征参数相比有何优缺点,并阐述在语音识别中选取过零谱作为特征参数提取的原因。>

1、LPCC>

整个过程用公式图来表示如图4所示,对N个输入信号进行线性组合,则运行该语句执行次数为pN,其中每个信号进行线性变换执行次数为p,循环N次,则执行p阶线性预测,需执行次数为pN。>

对每个输入的线性预测进行Z变换,估计算法执行次数为1+1+p,其中除法一次,减法一次,求和执行p次。,对N个p阶线性预测进行Z变换,则需执行次数为(2+p)*N。>

通过公式图分析,若要得到LPCC的特征参数,需要执行次数为PN+(2+p)N>

2、MFCC>

过程如图5所示,若分帧后一帧数据有n个点,将语音分为L帧,如果直接进行DFT变换,一帧内所求得算法复杂度为o(n)2,用FFT则为o(nlog2n)+o(n)。对谱系数的幅值取log。>

若用分治算法取对数,则是以O(nlog2n)的时间运行,DCT即为离散余弦变换,它将一组数据转换成频率数据,此过程算法复杂度为O(nlog2n)+O(n)。>

3、语谱图>

本发明将语谱图等效为一种简单的时频关系,即上文中求得的过零谱,计算语谱图的复杂度即可转换为计算过零谱的复杂度。过零谱即为过零点的位置,是一种时频关系。>

过零谱的提过过程可以分为以下几步:第一步:端点检测;第二步:寻找过零点,并记录过零点的位置。在整个计算过程中,只计算了过零点,因此算法复杂度为O(n)。>

实验结果正确率为99.5%,与传统的识别系统的特征提取的复杂度相比,过零谱的复杂度只有O(N),在特征提取上复杂度大大降低,进而将该算法移植ZET6,运用操作系统μc/osⅡ,实现语音的孤立词识别。>

本发明的系统优选使用锂电池作为电源,使得语音开关系统可便携。本发明的系统可以直接在语音开关系统上进行注册,训练,无需借助大型计算机。>

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。>

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号