基于MFCC和BP神经网络的说话人识别系统及方法与流程

文档序号:25660178发布日期:2021-06-29 23:06阅读:331来源:国知局
基于MFCC和BP神经网络的说话人识别系统及方法与流程
基于mfcc和bp神经网络的说话人识别系统及方法
技术领域
1.本发明涉及语音识别技术领域,具体地指一种基于mfcc和bp 神经网络的说话人识别系统及方法。


背景技术:

2.说话人识别,又称声纹识别,区别于语音识别。语音识别是要 确定语音的语义信息,而说话人识别是利用说话人的语音特征对说话 人的身份进行辨认或确认。
3.按照不同的应用目的,说话人识别可以分为说话人辨识和说话 人确认两种。说话人辨认用来确定待识别的语音是哪一位注册过的说 话人说的,而说话人确认用来确定待识别的语音是不是说话人所宣称 的那个人说的。本专利属于说话人辨认一类。
4.根据识别方式,说话人识别分为与文本有关和与文本无关两种 方式。前者要求在识别时,说话人提供与训练语音文本相同的关键词 串或者语句,而后者则没有这样的要求,说话人说话内容是任意的。 本专利属于与文本无关的说话人识别。
5.日常生活中,人们能根据语音判定出是哪个人在说话,这说明 每个人的语音有区别于其他人的特征。mfcc参数可以很好的描述这 个特征。mfcc(mel frequency cepstrum coefficient,美尔频率倒谱 系数),mel(美尔)是主观音高的单位,而hz(赫兹)则是客观音 高的单位。mel频率是基于人耳听觉特性提出来的,它与赫兹频率是 非线性关系。美尔频率倒谱系数是利用它们之间的这种关系,计算得 到的倒谱特征。
6.专利《基于情感补偿的声纹识别方法》(专利号:cn101226742a) 公开了一种基于情感补偿的声纹识别方法,所提出的情感补偿包括情 感检测、特征补偿、情感拓展三块,拟依据情感检测技术计算语音情 感因子,分别从特征与模型两个层面对情感变化所引起的语音变化进 行补偿,最终提高声纹识别技术对情感变化的鲁棒性。
7.该专利未通过分析语音发生机理和语音特征,对语音信号进行 选帧处理,从而减少训练样本量。该专利未建立识别结果的可靠性指 标。


技术实现要素:

8.本发明的目的就是要提供一种基于mfcc和bp神经网络的说话 人识别系统及方法,本发明通过分析语音发生机理和语音特征,提取 了更有效的能反映个体声道差异的训练样本,避免了训练样本量过大 导致的bp神经网络训练时间过长乃至无法进行进行训练的弊端。
9.为实现此目的,本发明所设计的基于mfcc和bp神经网络的说 话人识别系统,它包括语音信号预处理模块、语音信号加窗处理模块、 频谱分析模块、滤波模块、离散余弦变换模块、bp神经网络模块和 实际场景说话人识别模块,所述语音信号预处理模块用于依次对语音 信号进行分帧、选帧和预加重的信号预处理,语音信号加窗处理模块 用于对预处理后的语音信号进行加窗处理,频谱分析模块用于对加窗 处理后的语音信号进行频谱分析得到语音信号各帧的频谱,滤波模块 用于对语音信号各帧频谱的谱线能量进行美尔滤波
处理,离散余弦变 换模块用于对美尔滤波后的语音信号各帧频谱进行离散余弦变换得 到语音信号的美尔频率倒谱系数;
10.bp神经网络模块用于将所有需要身份识别的说话人语音数据分 为训练集和测试集,利用训练集中说话人语音数据的美尔频率倒谱系 数生成bp神经网络训练数据集,并为每个说话人分别建立对应的bp 神经网络,利用bp神经网络训练集对各个bp神经网络进行训练;
11.实际场景说话人识别模块用于将实际场景中采集到的语音信号 的美尔频率倒谱系数输入到已完成训练的各个对应bp神经网络中进 行实际场景说话人识别。
12.本发明的有益效果:
13.本发明通过分析语音发生机理和语音特征,提取了更有效的能反 映个体声道差异的训练样本,避免了训练样本量过大导致的bp神经 网络训练时间过长乃至无法进行进行训练的弊端,同时提升了说话人 识别系统的识别率。另一方面,该方法通过分别为每个说话人建立独 立的bp神经网络训练系统,对所有训练样本进行了更简洁有效、更 有针对性的训练,缩短了训练时间,提升了说话人识别系统的识别率。 最后,该方法建立了说话人识别系统可靠性指标,使说话人识别系统 的可靠性得以量化,为说话人识别系统识别率的进一步提升和优化奠 定了基础。
附图说明
14.图1为本发明的结构示意图;
15.图2为本发明的流程示意图;
16.图3为清音信号和浊音信号的频谱图;
17.图4为mel三角滤波器组图形;
18.图5为bp神经网络结构简图。
19.其中,1—语音信号预处理模块、2—语音信号加窗处理模块、3 —频谱分析模块、4—滤波模块、5—离散余弦变换模块、6—bp神经 网络模块、7—说话人识别测试模块、8—实际场景说话人识别模块。
具体实施方式
20.以下结合附图和具体实施例对本发明作进一步的详细说明:
21.如图1所示基于mfcc和bp神经网络的说话人识别系统,它包 括语音信号预处理模块1、语音信号加窗处理模块2、频谱分析模块3、滤波模块4、离散余弦变换模块5、bp神经网络模块6和实际场 景说话人识别模块8,所述语音信号预处理模块1用于依次对语音信 号进行分帧、选帧和预加重的信号预处理,语音信号加窗处理模块2 用于对预处理后的语音信号进行加窗处理,频谱分析模块3用于对加 窗处理后的语音信号进行频谱分析得到语音信号各帧的频谱,滤波模 块4用于对语音信号各帧频谱的谱线能量进行美尔滤波处理,离散余 弦变换模块5用于对美尔滤波后的语音信号各帧频谱进行离散余弦 变换得到语音信号的美尔频率倒谱系数;
22.bp神经网络模块6用于将所有需要身份识别的说话人语音数据 分为训练集和测试集,利用训练集中说话人语音数据的美尔频率倒谱 系数生成bp神经网络训练数据集,并
为每个说话人分别建立对应的 bp神经网络,利用bp神经网络训练集对各个bp神经网络进行训练;
23.实际场景说话人识别模块8用于将实际场景中采集到的语音信 号的美尔频率倒谱系数输入到已完成训练的各个对应bp神经网络中 进行实际场景说话人识别。
24.上述技术方案中,它还包括说话人识别测试模块7,所述说话人 识别测试模块7用于将测试集中说话人语音数据的美尔频率倒谱系 数输入到已完成训练的各个对应bp神经网络中进行bp神经网络识 别率和可靠性测试。
25.上述技术方案中,语音信号预处理模块1对语音信号进行分帧处 理的具体过程为:将经过重采样和语音端点检测后的语音信号记为 {s0(i)},i=1,2
……
,l,其中,l为语音信号长度,s0(i)为语音信号 的第i个数据;
26.分帧前,先对语音信号进行归一化处理;
27.将语音信号{s0(i)}做如下处理:
28.{s1(i)}={s0(i)}/max(abs({s0(i)}))i=1,2
……
,l,其中,max(abs({s0(i)}))表示先对语音信号{s0(i)}取绝对值,再对数据序列取 最大值;
29.分帧时,以n为数据长度对语音信号{s1(i)}进行截取,第j帧数 据为x0(j)={s1((j

1)*n+1)~s1(j*n)},n为帧长;分帧的目的是保证 语音信号分析有足够高的时间分辨率,将n个连续采样点集合成一个 数据分析单位,称为帧,n即为帧长;
30.所述语音信号预处理模块(1)对语音信号进行选帧处理的过程 为:
31.选帧前,先求出各数据帧短时幅度(各帧语音信号幅值绝对值之 和),计算公式如下:
[0032][0033]
其中,frame_l为帧的数量,amp(j)为第j帧短时幅度,s1j(m0)为 第j帧数据x0(j)={s1((j

1)*n+1)~s1(j*n)}中的第m0个数据,||表示 取绝对值;
[0034]
对{amp(j)}取最大值(max({amp(j)})),记为amp_max;
[0035]
采用如下方式对语音信号进行选帧:
[0036]
valid_frame_no={j|amp(j)>δ*amp_max,j=1,2
……
,frame_l}
[0037]
其中,valid_frame_no为被选中帧序号的集合,δ的取值为0<δ<1, δ可根据实际情况进行调整,当bp神经网络训练样本过多时,为避 免bp神经网络训练时间过长甚至无法进行进行训练,提升说话人识 别率,可适当增大δ;当训练样本太少时,为提升说话人识别率,可 适当减小δ。
[0038]
选帧的目的是挑选出更有效的能反映说话人语音个体差异的数 据帧,减小bp神经网络训练样本数量,提升说话人识别率;
[0039]
下面说明对语音信号进行选帧处理,为何能挑选出更有效的能反 映说话人语音个体差异的数据帧,从而减小bp神经网络训练样本数 量,提升说话人识别率:
[0040]
每个人的语音有区别于其他人的特征,这个特征与语音发声机理 密切相关。大体上,语音的产生有两种情况,经声带振动和不经声带 振动。经声带振动产生的语音统称为浊音,不经声带振动产生的语音 统称为清音。浊音比清音的幅值大得多。
[0041]
声音产生后,便沿着声道进行传播。声道是声带至嘴唇的所有器 官,由咽、口腔和
鼻腔组成。它是一根从声带延伸至口唇的声管,其 形状是时间的函数,发不同音时其形状是不同的。声道可以看成一根 具有非均匀截面的声管,在发声时起着共鸣器的作用,它有一组共振 频率,称为共振峰频率,简称共振峰,是声道的重要声学特性。共振 峰及其带宽取决于声道的形状和尺寸,一种形状和尺寸对应着一组共 振峰。不同的语音有着不同的共振峰,不同的人对应不同的共振峰。 即使是语音相同,但因说话者不同,共振峰也不同。
[0042]
声音进入声道后,其频谱会受到声道的共振特性的影响,在某些 频率处形成谐振。图3为清音信号和浊音信号的频谱,从图中看出, 浊音信号的频谱在谐振频率处其谱线包络产生峰值,即为共振峰;而 清音信号的共振峰特性不明显。
[0043]
语音信号频谱的包络与声道特性(共振峰)密切相关。浊音信号 的共振峰明显,清音不明显。因此,挑选出只包含浊音信号的帧,便 可准确、有效地提取说话人特有的声道特征。而浊音比清音的幅值大 得多,因此,只需挑选出幅值较大的帧,这便是选帧的目的和意义。
[0044]
以往的说话人识别系统,是没有选帧这一步骤的。本专利中通过 分析语音发生机理和语音特征,新增了选帧这一步骤,大幅缩减了训 练样本数量,避免了同类型说话人识别系统均存在的训练样本量过大 导致的训练时间过长乃至无法进行进行训练的弊端;同时,提取了更 有效的能反映个体声道差异的训练样本,剔除了无用的、带有噪声的 训练样本,提升了说话人识别系统的识别率。
[0045]
所述语音信号预处理模块1对语音信号进行预加重处理的过程 为:
[0046]
预加重用数字滤波器实现:
[0047]
s2(q1)=s1(q1+1)

μ*s1(q1)q1=1,2
……
,l

1,其中,l 为语音信号{s1(i)}长度,μ为常数,μ的取值介于0.9~1.0之间,通常 取0.97,s1(q1)为语音信号{s1(i)}的第q1个数据,{s2(q1)}为预加重 后得到的信号;
[0048]
预加重的目的是提升高频部分,使信号的频谱变得平坦,以便于 进行频谱分析及声道参数分析。
[0049]
上述技术方案中,语音信号加窗处理模块2对预处理后的语音信 号进行加窗处理的过程为:
[0050]
对预处理后的语音信号施加汉明窗(hamming)函数,汉明窗函 数表达式为:
[0051]
w=0.54

0.46*cos(2*π*p/p)0≤p≤p
[0052]
其中,p和p为整数,p为自变量,w为因变量,为窗函数的幅 度,p为常数,窗函数的总长度lw=p+1,lw等于帧长n;
[0053]
对信号{s2(q1)}以n为数据长度进行分帧处理,得到语音帧序列 {x1(j)};
[0054]
对{x1(j)}进行如下处理:
[0055]
x={x1(j).*w|j∈valid_frame_no,j=1,2
……
,frame_l}
[0056]
其中,.*为数量乘积,即x1(j)与w各对应元素相乘,x为经过加 窗处理后的语音帧序列,上式的含义是为减少数据处理量,只对选帧 中挑选出的帧进行加窗处理,加窗(施加窗函数)的目的是减少频谱 泄露。
[0057]
上述技术方案中,频谱分析模块3对加窗处理后的语音信号进行 频谱分析的具体方法为:
[0058]
对各帧数据进行fft变换(快速傅立叶变换),得到各帧的频谱:
[0059]
x(i1,k)=fft[x(i1)]
[0060]
其中,x(i1)表示经过加窗处理后的语音序列{x(r)}(r=1,2
……
, valid_frame_l)第i1帧数据,valid_frame_l为经选帧处理后帧的数量, 即集合valid_frame_no中的元素个数,x(i1,k)表示第i1帧频谱数据中 第k条谱线的频谱;
[0061]
频谱为复数,对其取模,得到幅值谱:
[0062]
a(i1,k)=|x(i1,k)|
[0063]
a(i1,k)表示第i1帧频谱数据中第k条谱线的幅值;
[0064]
对a(i1,k)取平方,得到数据的能量谱:
[0065]
e(i1,k)=|x(i1,k)|2[0066]
e(i1,k)表示第i1帧频谱数据中第k条谱线的能量。
[0067]
上述技术方案中,滤波模块(4)对语音信号各帧频谱的谱线能 量进行美尔滤波处理的过程为:
[0068]
首先,计算mel三角滤波器组数据;
[0069]
mel(美尔)是主观音高的单位,而hz(赫兹)则是客观音高的 单位,人耳对声音的感知程度,与赫兹(hz)频率不成线性关系,但在 mel频率上,人对音调的主观感知与mel刻度则为线性关系,mel频 率是基于人耳听觉特性提出来的,美尔与赫兹频率的非线性关系,如 下式所示:
[0070]
mel=2595*log
10
(1+f0/700)
[0071]
其中,f0为频率hz,mel为美尔频率,由上式看出,mel刻度在 低频(hz)部分的分辨率高,在高频(hz)的分辨率低,与人耳的 听觉特性是相符的,同时,结合人耳的掩蔽效应,人们设计了mel 三角滤波器组,这些滤波器在低频段较密集,在高频段较稀疏;
[0072]
第m个三角滤波器的传递函数为:
[0073][0074]
其中,1≤m≤m,m为滤波器个数;h
m
(k)为第m个三角滤波器第 k条谱线的幅值;f(m)为第m个滤波器的中心频率所对应的谱线序号, f(m

1)为第m

1个滤波器的中心频率所对应的谱线序号,f(m+1)为第 m+1个滤波器的中心频率所对应的谱线序号,k表示谱线序号
[0075]
mel三角滤波器组各滤波器的端点频率及中心频率所对应的谱 线序号f(m)依照如下方式计算:
[0076]
依据香农采样定理得到分析频率上限(语音信号采样频率为 8000hz,依据香农采样定理,其分析频率上限为8000/2=4000hz), 并求出其mel值,记为mel_max;
[0077]
选定所关注语音信号的频率下限,如0hz,求出其mel值,记为 mel_min;
[0078]
在mel刻度上,将区间[mel_min,mel_max]均匀分成m+1段,段 长mel_step为:
[0079]
mel_step=(mel_max

mel_min)/(m+1)
[0080]
m1(u)=mel_min+u*mel_step 0≤u≤(m+1)
[0081]
其中,m1(u)为mel刻度上mel三角滤波器组的第u个端点频率;
[0082]
f0与mel的关系式为:
[0083][0084]
将m1(u)(0≤u≤(m+1))代入上式中的mel,得到f1(u),0≤u≤(m+1);
[0085]
将f1(u)乘以n/fs,得f(u),即:
[0086]
f(u)=f1(u)*n/fs,0≤u≤(m+1)
[0087]
其中,n为帧长,fs为语音信号采样频率;
[0088]
则第u个滤波器的中心频率所对应的谱线序号为f(u),左端点频率 所对应的谱线序号为f(u

1),右端点频率所对应的谱线序号为f(u+1);
[0089]
图4为频率范围为[0,4000](hz),m=24的mel三角滤波器组图形;
[0090]
然后,对能量谱进行mel滤波处理;
[0091]
通过mel三角滤波器组后的频谱数据为能量谱e(k)与mel三角 滤波器组传递函数hm(k)的乘积和:
[0092]
f(m)=∑
k
e(k)*h
m
(k),1≤m≤m
[0093]
其中,m为滤波器个数,k表示谱线序号;
[0094]
离散余弦变换模块(5)对美尔滤波后的语音信号各帧频谱进行 离散余弦变换得到语音信号的美尔频率倒谱系数的具体过程为:
[0095]
对滤波后的数据求对数,进行离散余弦变换;
[0096][0097]
t=1,2
……
m
[0098]
其中,m为滤波器个数;c为美尔 频率倒谱系数,c(t)为第t个美尔频率倒谱系数(t为整数,为离散余 弦变换变量,作用如同fft中的谱线数k),f(m)为能量谱e(k)进行 mel滤波处理后的数据,t为整数,为离散余弦变换变量,m为mel 滤波器序号,即第m个mel滤波器。对于语音信号来说,通常取c 的前14个系数作为语音信号的mfcc,代表说话人的声道特征参数。
[0099]
上述技术方案中,bp神经网络模块6生成bp神经网络训练数 据集的具体过程为:
[0100]
获取所有需要进行身份识别的说话人的语音数据,每个说话人的 语音数据分为两部分,一部分为训练集,一部分为测试集,一般来说, 训练集中的语音数据时长要远大于测试集中的语音数据时长,典型的, 训练集语音数据时长/测试集语音数据时长>8,测试集语音数据时 长>3s;
[0101]
设所有需要进行身份识别的说话人的数量为r,按照说话人顺序 获取r份语音训练集,对这r份语音训练集分别提取美尔频率倒谱 系数,得a(14)行s列矩阵,该矩阵为bp神经网络的训练样本输 入数据train_input_mat,每一列代表某帧语音信号的a个mel倒谱系 数,s为r份语音训练集的帧数之和;
[0102]
为每个说话人都建立一个bp神经网络模型,每个说话人的bp 神经网络的训练样
本输入数据都是相同的,均为train_input_mat;每 个说话人的bp神经网络的训练样本输出数据都是不同的,需要分别 构造,具体来说,构造第i2个说话人训练样本输出数据 train_output_mat(i2)(一个矩阵),针对train_input_mat的每一列, 若当列对应的帧属于第i2个说话人,则train_output_mat(i2)该列 赋值为1,否则为0,train_output_mat(i2)的维数为1行s列;
[0103]
train_input_mat为第i2个说话人的bp神经网络的训练样本输入 数据,train_output_mat(i2)为其训练样本输出数据;
[0104]
bp神经网络模块(6)建立对应的bp神经网络的具体过程为:
[0105]
每个说话人的bp神经网络模型结构都是相同的,由三层组成, 第一层为输入层,共n1个节点,对应了表示n1个输入参数,第二层 为隐含层,共n2个节点,第三层为输出层,共n3个节点,由bp神 经网络系统实际需要输出的响应确定;
[0106]
该网络的数学模型为:
[0107]
输入向量net_x=(net_x1,net_x2,...,net_x
n1
)
t
[0108]
中间层向量net_y=(net_y1,net_y2,...,net_y
n2
)
t
[0109]
输出向量net_o=(net_o1,net_o2,...,net_o
n3
)
t
[0110]
输入向量与输出向量的函数关系为:
[0111]
net_o=f2(h1*f1(w1*net_x+b1)+b2)
[0112]
其中,net_x,net_o即为输入向量和输出向量,中间层向量net_y 的表达式为:
[0113]
net_y=w1*net_x+b1
[0114]
其中,w1,h1分别为输入层与中间层(隐藏层)、中间层与输 出层之间的权重系数矩阵;b1,b2分别为输入层与中间层(隐藏层)、 中间层与输出层之间的偏置矩阵。
[0115]
f1()为bp神经网络中间层激活函数,f2()为bp神经网络输 出层激活函数,一般采用sigmoid函数;
[0116]
输入层节点数n1等于语音信号mfcc的参数个数,本实施例为 14;
[0117]
输出层节点数n3=1(若第i2个说话人的bp神经网络的美尔频率 倒谱系数输入属于第i2个说话人,则bp神经网络的输出为1,否则 为0).。
[0118]
隐藏层节点数n2在bp神经网络进行训练时确定;
[0119]
图5为bp神经网络结构简图;
[0120]
第i2个说话人的bp神经网络输入信号为训练数据集的输入矩阵 train_input_mat;
[0121]
第i2个说话人的bp神经网络输出信号为训练数据集的输出矩阵 train_output_mat(i2);
[0122]
以往的基于bp神经网络的说话人识别系统,其bp神经网络模 型有两种。第一种,为所有的说话人建立一个bp神经网络,其输出 节点有多个,输出节点值的组合代表不同的说话人。这种模型结构复 杂,系统难于训练,识别效果比较差。第二种,为每个说话人均建立 一个bp神经网络,但每个说话人的bp神经网络的训练集只包含自 己的语音训练集,不包含其他说话人的。很显然,这种识别模型对其 他说话人的语音训练集训练不充分,其识别效果必定不理想。本专利 的bp神经网络模型与上述两种均不同,它为每个说话人均建立一个 bp神经网络,其训练数据集的输入数据均是相同的,包含了所有的 说话人的语音训
练集;其输出节点只有一个,每个网络只是完成一个 二元分类任务,其结构简单,系统训练时间短,识别效果好;
[0123]
bp神经网络模块6对各个bp神经网络进行训练的具体过程为:
[0124]
针对第i2个说话人的bp神经网络,设定输入节点i3和隐含层 节点j3之间的连接权值w1
i3j3
,隐层节点j3和输出层节点k3之间的 连接权值h1
j3k3
,隐层节点j3的偏置值b1
j3
,输出层节点k3的偏置值 b2
k3
这4个矩阵的初始值,其均为

1~1之间的随机数;
[0125]
根据输入向量net_x,连接权值w1
i3j3
,偏置值b1
j3
,计算得到中 间层向量net_y;
[0126]
根据中间层向量net_y,连接权值h1
j3k3
,偏置值b2
k3
,计算得到 输出向量net_o;
[0127]
计算输出向量net_o与输出矩阵train_output_mat(i2)相应值之 间的偏差,根据这个偏差,运用误差反向传播算法(bp算法),不断 修正w1
i3j3
和h1
j3k3
的值,直至bp神经网络系统误差小于等于设定 的输出误差限值时,保存w1
i3j3
,h1
j3k3
,b1
j3
,b2
k3
四个参数的值, 完成bp神经网络的训练过程,每个说话人的bp神经网络的w1
i3j3
, h1
j3k3
,b1
j3
,b2
k3
四个参数均是不同的。
[0128]
上述技术方案中,所述实际场景说话人识别模块8将实际场景中 采集到的语音信号的美尔频率倒谱系数输入到已完成训练的各个对 应bp神经网络中进行实际场景说话人识别的具体过程为:
[0129]
将实际场景中采集到的语音信号的美尔频率倒谱系数输入到已 完成训练的各个对应bp神经网络中,设第i2个bp神经网络输出数 据为net_output(i2)(一个1行q列的矩阵,q为待识别语音的帧数), 其第k4个数值为net_output(i2,k4),按下式计算方差和se1(i2):
[0130][0131]
各bp神经网络输出数据的个数都是相同的,均为q,q为待识 别语音的帧数;
[0132]
对se1(i2)(i2=1,2
……
,r)取最小值,最小值对应的序号为识别结 果。表达式如下:
[0133]
result={k5|se1(k5)=min(se1(i2)),i2=1,2
……
,r}
[0134]
其中,result为识别结果,k5为表示识别结果,即se1(i2)的最小 值所对应的序号,r为身份识别的说话人的数量。
[0135]
上述技术方案中,所述说话人识别测试模块(7)用于将测试集 中说话人语音数据的美尔频率倒谱系数输入到已完成训练的各个对 应bp神经网络中进行bp神经网络识别率和可靠性测试的具体方法 为:针对第i2个说话人的测试矩阵test_sample_individual(i2), (test_sample_individual(i2)是test_sample的子矩阵),设其语音帧数 为u(i2),则test_sample_individual(i2)的维数为14行u(i2)列,将 test_sample_individual(i2)分别输入到已完成训练的所有bp神经网络 中,设第j4个bp神经网络的输出为output_for_test(j4),其第k6个 元素记为output_for_test(j4,k6),计算output_for_test(j4)与1的方差和 se(i2,j4),公式如下:
[0136][0137]
将所有说话人测试矩阵的输出数据得方差和组合起来,即形成方 差和矩阵se,它是一个方阵,行数和列数均为r(说话人的数量r), se(i2,j4)表示第i2个说话人测试矩阵
输入到第j4个说话人bp神经网 络所产生的输出数据的方差和;
[0138]
针对第i2个说话人,取se(i2,j4)(i2固定,j4=1,2,
……
r)的最 小值(即取矩阵se第i2行的最小值),设其对应的序号(矩阵的列序 号)为min_no,若min_no=i2,表示第i2个说话人识别正确,否则 识别错误;
[0139]
依据上述说话人识别判定流程,可得到说话人识别系统的识别率, 公式如下:
[0140]
识别率=说话人识别正确的数量/说话人的数量r
[0141]
说话人识别系统可靠性(即判断某段语音属于某个说话人的可信 程度),计算流程如下:
[0142]
针对矩阵se的第i2行数据,求解如下方程中的变量v:
[0143][0144]
得到v后,按照下式计算可靠性:
[0145]
rety(i2)=v

se(i2,i2)
,se是一个方阵,行数和列数均为r(说 话人的数量),se(i2,j4)表示第i2个说话人测试矩阵输入到第j4个说 话人bp神经网络所产生的输出数据的方差和,se(i2,i2)为方阵上主 对角线的值,即第i2个说话人测试矩阵输入到第i2个说话人bp神 经网络所产生的输出数据的方差和,rety(i2)为测试流程中第i2个说 话人的识别可靠性。
[0146]
更一般的,可直接从典型值范围[1.1,3]内取一v值,按照下式计 算可靠性:
[0147][0148]
可靠性的另一种计算方式为:
[0149][0150]
以往的说话人识别系统,是没有可靠性这一指标的。本专利在分 析说话人识别系统匹配法则的基础上,建立了说话人识别系统可靠性 指标,并对其进行量化,为说话人识别系统识别率的进一步提升和优 化奠定了基础(即说话人识别系统不但要追求高识别率,还要求有高 可靠性)。
[0151]
一种基于mfcc和bp神经网络的说话人识别方法,它包括如下 步骤:
[0152]
步骤1:对语音信号依次进行分帧、选帧和预加重的信号预处理;
[0153]
步骤2:预处理后的语音信号进行加窗处理;
[0154]
步骤3:对加窗处理后的语音信号进行频谱分析得到语音信号各 帧的频谱;
[0155]
步骤4:对语音信号各帧频谱的谱线能量进行美尔滤波处理;
[0156]
步骤5:对美尔滤波后的语音信号各帧频谱进行离散余弦变换得 到语音信号的美尔频率倒谱系数;
[0157]
步骤6:将所有需要身份识别的说话人语音数据分为训练集和测 试集,利用训练集中说话人语音数据的美尔频率倒谱系数生成bp神 经网络训练数据集,并为每个说话人分别建立对应的bp神经网络, 利用bp神经网络训练集对各个bp神经网络进行训练;
[0158]
将测试集中说话人语音数据的美尔频率倒谱系数输入到已完成 训练的各个对应bp神经网络中进行bp神经网络识别率和可靠性测 试
[0159]
步骤7:将实际场景中采集到的语音信号的美尔频率倒谱系数输 入到已完成训练
的各个对应bp神经网络中进行实际场景说话人识别。
[0160]
本说明书未作详细描述的内容属于本领域专业技术人员公知的 现有技术。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1