一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于GFCC的改进特征参数的语种识别方法与流程

2021-08-13 19:22:00 来源:中国专利 TAG:语种 识别 特征 改进 语音识别
一种基于GFCC的改进特征参数的语种识别方法与流程

本发明涉及一种基于gfcc的改进特征参数的语种识别方法,属于语音识别技术领域。



背景技术:

世界上与中国接壤的国家众多,交流也是必不可少的。而语言的障碍阻碍了我们与周边国家的交流。为了方便交流,需要将周边国家的语言翻译成我们能够听懂的语言。为了将别国语言翻译出来,首先要将当前语言是哪个国家的语言识别出来,进而放入对应的翻译器进行翻译。为了了解邻国的实时新闻等,我们经常会收听周边国家的广播。收听广播音频也是其中一种交流方式。随着我国与周边国家交流的增加,语种识别的重要性也逐渐显现出来。在收听国外广播时,亟待解决的问题是如何准确高效的识别周边国家的语种,从而及时将实时语音转入相应的翻译器进行翻译,转为我们能听懂的语言。而广播音频复杂的环境,包括背景音乐,噪声,男生女生说话声音频率的不同等加剧了语种识别的难度。如何提取语种特有的特征,而去除一些不必要的噪声,背景音乐,采访等的干扰,提高语种识别的准确率,成为一大技术难点。语种识别这一领域一直以来都是备受关注且具有挑战性的研究课题。目前很多研究者使用比较流行的方法包括神经网络,机器学习等提取与语种相关的特征进行学习建模,从而提高语种识别的准确率。



技术实现要素:

本发明要解决的技术问题是提供一种基于gfcc的改进特征参数的语种识别方法,可以在复杂的国内外广播音频信号环境中,尽量提取语种的特征,尽减少男生女生说话的不同导致的识别错误,以及减少背景音乐,噪声等的干扰,识别出广播音频所播放的语种,提高语种识别的准确率。

本发明的技术方案是:一种基于gfcc(gammafrequencycepstrumcoefficient,gamma频率倒谱系数)的改进特征参数的语种识别方法,首先提取广播音频的gfcc特征参数,然后将gfcc参数的后面若干维数据置为零,但仍保持原来的数据维度,将置零后的gfcc参数进行idct变换,得到新的特征参数。将新的特征参数(命名为g-fbank)放入模型中进行训练,得到不同的语种识别模型。再将测试语种语音提取同样的特征参数放入模型中查找与之最相似的语种,得到语种识别结果。

具体步骤为:

step1:不同语种的语音数据的gfcc特征提取,包括对语音的预处理(归一化,分帧,加窗)、傅里叶变换、计算谱线能量、计算通过gammatone滤波器滤波后的能量、计算dct倒谱等。

step1.1:预处理;

预处理首先进行归一化,以免语音的音量大小影响语种识别结果。语音进行归一化的公式为:

式中,xi为输入的语音序列,x为进行归一化后的语音序列。

接着对语音进行分帧(分帧的帧长是可变的)。分帧的帧移取帧长的一半,再对每帧信号加窗。分帧后的信号为x(m)(n),则y(m)(n)为加窗后的信号,w(n)为窗函数。表达式如下:

y(m)(n)=x(m)(n).w(n)(2)

再对分帧加窗后的语音序列进行fft变换,将数据从时域变为频域。频域信号记为y(m)(k),其中m为语音帧数。

step1.2:计算通过gammatone滤波器滤波后的能量;

gammatone滤波器频域表达式:

式中,y(f)是指数和阶跃函数的傅里叶变换,s(f)是频率为f0的余弦函数的傅里叶变换,h(f)是滤波器的频域表达。

经过滤波器后的频域表达式为:

式中,m代表第m帧,i代表第i个gammatone滤波器。y(m,i)代表第m帧通过第i个滤波器后的频域信号。

step1.3:dct变换,得到gfcc特征参数;

对通过gammatone滤波器后的信号取对数后再进行离散余弦变换,得到gfcc特征参数。它的表达式如下:

式中,m代表第m帧,i代表第i个gammatone滤波器(一共有n个)。n是dct后的谱线。

step2:对任意维度的gfcc参数,将其后面若干维数数据置零,但参数总体维度不变,然后进行idct变换。

step2.1:gfcc参数把后面的若干维参数置零;

gfcc特征参数由语音信号经过预处理,fft变换,滤波,dct变换得到。它的维数由gammatone滤波器的个数来决定,而gammatone滤波器的个数是可变的,所以gfcc特征参数的维数也是可变的。

得到gfcc特征参数后,将后面的若干维的参数置零,但置零的维数不能大于gfcc参数维数减1。假设gfcc参数为n维,那么置零的维数应小于n-1。

每一帧的原始gfcc参数表达式为:

gfcc(m)=[x1,x2,x3,x4,...,xn-2,xn-1,xn](6)

式中,x1到xn为一帧的gfcc参数,m代表第m帧。将后面若干维置零后为:

gfcc'(m)=[x1,x2,x3,x4,...,0,0,0](7)

step2.2:置零后的gfcc参数进行idct变换;

置零后的gfcc参数维数仍然和原来的gfcc参数维数一样。此时再进行离散余弦逆变换(idct),即得到最终的改进的gfcc参数(命名为g-fbank)。

对置零后的gfcc参数进行idct:

式中,y(i)代表进行离散余弦逆变换后的信号,i代表第i个gammatone滤波器,u代表dct的谱线,y(u)为进行idct之前的信号,n为gammatone滤波器总个数。

其中,

step3:训练语种的特征模型;

将每个语种按如上步骤提取g-fbank特征参数,将特征参数放入模型中进行训练,得到每个语种对应的特征模型。

step4:语种识别;

对识别的语种语音数据提取同样的g-fbank参数,再放入语种识别模型中进行识别,得到语种识别结果。

本发明的有益效果是:在语种识别方向,提取与语种相关的主要特征,去除细节特征可以有效地提高语种识别的准确率。可以提高广播音频的语种识别准确率,且识别速率较快。

附图说明

图1是本发明语种提取参数训练识别图;

图2是本发明语种提取参数训练识别的流程图;

图3是本发明实施例中gfcc数据画出的图和gfcc后面14维置零的数据进行idct画出的图;

图4是本发明实施例中gfcc数据直接进行idct画出的图和gfcc数据后面14维置零进行idct画出的图;

图5是本发明实施例中语种识别结果画出的混淆矩阵图;

图6是本发明实施例中gfcc数据后面14维置零进行idct的参数得到的语种识别结果图。

具体实施方式

下面结合附图和具体实施方式,对本发明作进一步说明。

实施例1:如图1所示,一种基于gfcc的改进特征参数的语种识别方法:

step1:对每条语音数据提取不同维度的gfcc参数,gfcc参数维度可变。

step2:对任意维度的gfcc参数,将其后面若干维数数据置零,但参数总体维度不变,然后进行idct变换。

step3:对后面若干维gfcc参数置零后进行idct变换,得到改进的gfcc参数,命名为g-fbank。

step4:g-fbank参数输入到语种训练模型中进行训练,得到不同语种的识别模型。

step5:对识别语音提取g-fbank参数,放入训练好的模型中进行识别,得到最终识别结果。

下面通过具体的例子对本发明进行详细的说明。

step1:训练和测试的广播语音数据来源:

语料来自中国国际广播电台,主要包括老挝语,柬埔寨语,印地语,藏语,孟加拉语,越南语六种语言。六种语种的语音数据采集好后通过音频转换软件转为单声道数据,采样频率为16000hz,语音长度剪为3秒。

step2:总体实施流程:

如图2所示,本发明的具体实施流程是先对语音进行预处理,接着进行fft、gammatone滤波器滤波和dct变换得到gfcc参数,对gfcc参数的若干维置零后,再进行idct变换,得到g-fbank参数。将得到的语音特征参数放入隐马尔科夫模型(hmm)中进行训练,得到每个语种的对应的语种特征模型。再对测试语种语音数据进行同样的处理,将得到的g-fbank参数放入模型中进行识别,得到语种识别结果。

step3:语音数据的gfcc特征参数提取:

如图2所示,本发明实例部分其步骤包括预处理、fft、gammatone滤波器滤波、dct、gfcc参数若干维置零、idct。

step3.1:预处理

首先对语音数据进行能量归一化,排除不同语种的音量大小对语种识别结果的影响。归一化公式如下:

归一化后对语音数据进行分帧,将语音分成固定长度的数据,实例中帧长取1024,帧移取512。接着对每一帧数据加窗,窗函数为hamming窗,窗长和帧长一样。

step3.2:gammatone滤波器滤波

对进行分帧加窗后的信号y(m)(n)进行fft变换(fft点数和帧长一样),得到频域信号。再将信号取平方后通过gammatone滤波器进行滤波:

式中,m代表第m帧,i代表第i个gammatone滤波器。y(m,i)代表第m帧通过第i个滤波器后的频域信号。本实例gammatone滤波器个数取20个。

step3.3:进行dct变换,得到gfcc特征参数

对通过gammatone滤波器后的信号取对数后再进行离散余弦变换,得到gfcc特征参数。它的表达式如下:

式中,m代表第m帧,i代表第i个gammatone滤波器(一共有n个)。n是dct后的谱线。

最后得到gfcc特征参数。得到的gfcc特征参数前面几维数值比较大,后面维数的数值较小。

step4:gfcc参数将后面的若干维度置零,进行idct变换。

step4.1:gfcc参数把后面的若干维参数置零:

gfcc特征参数由语音信号经过预处理,fft变换,滤波,dct变换得到。它的维数由gammatone滤波器的个数来决定,而gammatone滤波器的个数是可变的,所以gfcc特征参数的维数也是可变的。本实例gammatone滤波器个数取20维,所以gfcc特征参数维数也为20维。

得到gfcc特征参数后,将后面的若干维的参数置零,但置零的维数不能大于gfcc参数维数减1。假设gfcc参数为n维,那么置零的维数应小于n-1。

每一帧的原始gfcc参数表达式为:

gfcc(m)=[x1,x2,x3,x4,...,xn-2,xn-1,xn](4)

式中,x1到xn为一帧的gfcc参数,m代表第m帧。

将后面若干维置零后为:

gfcc'(m)=[x1,x2,x3,x4,...,0,0,0](5)

本实例中分别对gfcc参数的后面7维、10维、14维参数置零。

step4.2:置零后的gfcc参数进行idct变换:

置零后的gfcc参数维数仍然和原来的gfcc参数维数一样。此时再进行离散余弦逆变换(idct),即得到最终的改进的gfcc参数(命名为g-fbank)。

置零后的gfcc参数进行idct:

式中,y(i)代表进行离散余弦逆变换后的信号,i代表第i个gammatone滤波器,u代表dct的谱线,y(u)为进行idct之前的信号,n为gammatone滤波器总个数。

其中,

如图3所示,gfcc参数画出的数据图和gfcc参数后14维置零后进行idct画出的图。由图可以看出gfcc参数置零若干维后进行idct得到的数据的值变化比较大,每个数据和周围数据之间有明显的不同。

如图4所示,gfcc参数不置零进行idct变换和gfcc参数后14维置零进行idct变换画出的数据图。由图可以看出gfcc参数不置零进行idct变换画出的图数据的值变化较大,每个数据与周围数据之间的值相差比较明显,而gfcc参数不置零进行idct变换画出的图数据的值相对来说变化较为缓慢,从图上看更为模糊。

step5:训练语种的特征模型:

如图2所示,将每个语种按如上步骤提取g-fbank特征参数,将特征参数放入模型中进行训练,得到每个语种对应的特征模型。本发明采用hmm模型训练不同语种的特征模型,保留了语种的语音数据之间的前后关联性,可以建立每个语种特有的特征模型,从而达到较好的识别效果。训练的语料均来自中国国际广播电台。每个语种510条语音,每条语音长度为3秒,一共6个语种,包括老挝语,柬埔寨语,印地语,藏语,孟加拉语,越南语。将一共3060条语音数据提取特征参数放入hmm模型中进行训练,得到每个语种对应的模型。

step6:不同语种语音数据测试模型识别效果:

对测试的语种语音数据提取同样的g-fbank参数,再放入语种识别模型中进行识别,得到语种识别结果。本实例用于测试的的语料不包含在训练的语料之中。每个语种语音条数为220条,每条语音长度为3秒,共6个语种。将一共1320条语音数据打上对应语种的标签,提取特征参数放入训练得到的模型中进行打分识别,输出概率最大的语种作为每条语音的识别语种。将识别结果和原语音数据实际的语种标签进行比对,统计结果,得到最终的识别准确率。识别结果如图5所示的混淆矩阵,图中1,2,3,4,5,6数字分别代表老挝语,柬埔寨语,印地语,藏语,孟加拉语,越南语6个语种。最右下角的结果对语种的平均识别准确率和错误率。实际的识别输出结果如图6所示。

对gfcc参数后面的7维、10维、14维置零,分别进行训练,识别。得到不同的识别结果,参见表1。

表1:六种语种不同维数置零后的识别准确率

通过表1可以看出,对gfcc特征参数后面不同的维数置零,对语种的识别准确率也不一样。最好的结果是在gfcc参数取20维,对后面的10维参数置零时,平均识别准确率达到91.4%。对于广播音频,在含有一定背景噪声和背景音乐等的条件下,六个语种已经可以达到较好的识别准确率。

以上结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜