[0104] 本申请实施例通过提供一种基于基音周期混合特征参数的声纹识别方法,包括以下步骤:语音信号的采集输入、语音信号预处理、语音信号组合特征参数提取:即提取基音周期、LPCC、△LPCC、能量、能量的一阶差分、GFCC特征参数共同组合成多维特征向量、采用离散二进制粒子群优化算法BPSO对语音信号组合特征参数进行筛选、引入通用背景模型UBM训练得到说话人的声音模型、最后利用GMM-UBM模型对测试语音进行识别,以解决现有技术中利用单一语音参数进行声纹识别的识别准确率不高以及声纹识别系统不稳定的技术问题。
[0105] 为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式,对上述技术方案进行详细的说明。
[0106] 实施例
[0107] 一种基于基音周期混合特征参数的声纹识别方法,包括如下步骤:
[0108] S1:语音信号的采集输入;
[0109] S2:语音信号的预处理,主要包括预加重、分帧和加窗处理;
[0110] S3:语音信号组合特征参数提取:提取基音周期、LPCC、△LPCC、能量、能量的一阶差分以及GFCC特征参数共同组合成多维特征向量,其中:LPCC 为线性预测倒谱系数,△LPCC为LPCC的一阶差分,GFCC为Gammatone滤波器倒谱系数;
[0111] S4:利用离散二进制粒子群优化算法对步骤S3中的多维特征向量进行筛选,将GMM-UBM识别过程中等错误率EER作为评价函数,选取使得等错误率EER最小的特征向量作为声纹识别的特征向量,其中所述GMM-UBM为高斯混合模型与通用背景模型相结合的说话人识别模型;
[0112] S5:使用GMM-UBM训练得到说话人的声音模型,即将语音库随机选取相应数量的语音训练得到通用背景模型UBM,然后利用最大后验准则自适应得到不同说话人的声音模型;
[0113] S6:提取经粒子群优化算法筛选后的测试语音的特征参数,利用步骤S5训练得到的GMM-UBM模型,计算出对数概率得分,选择概率得分最大者,即为目标说话人。
[0114] 如图1所示,为本发明的工作流程图。
[0115] 其中步骤S1中利用录音软件Cool Edit录制小语音库,去除静音段,并将噪声衰减10dB,其中采用频率为16KHz,量化比特为16bit的wav文件,语音与文本无关的连续语音。为提高语音质量,用Cool Edit软件去除静音段,并将噪声衰减10dB。
[0116] 步骤S2中的语音信号的预处理,主要包括预加重、分帧和加窗处理。
[0117] 1、预加重:由于语音信号的平均功率谱受声门激励和口鼻辐射的影响,高倍频大约在800Hz以上按6dB/倍频跌落,所以求语音信号频谱,频率越高对应的成分越小,高频部分的频谱也越难求,为此要进行预加重处理。其目的是要提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。预加重一般在语音信号数字化之后,且预加重滤波器是一阶的,其滤波器的实现形式:H(z)=1-u*z-1,其中u一般在(0.9,1)之间。本实施例中u=0.95。截取一段语音信号,其中采样频率为16KHz,量化 比特位为16,随意选取256个采样值。
[0118] 2、分帧、加窗:由于语音信号具有短时平稳性,预处理完成后需对语音信号进行分帧、加窗处理,便于用短时分析技术对语音信号进行处理。通常情况下,每秒钟的帧数约为33~100帧,分帧既可采用连续分段的方法,也可采用交叠分段的方法,但后者可以使帧与帧之间平滑过渡,保持其连续性。前一帧和后一帧的交叠部分称为帧移,帧移和帧长的比值一般取为(0~1/2)。本实施例中帧长为256(32ms),帧移为100。一边将语音信号用可移动有限长度的窗口进行截取即分帧,本例中采用的窗函数为汉明窗。
[0119] 语音信号经过预处理之后,将提取特征参数,特征参数的选择应当满足几个原则:第一,易于从语音信号中提取特征参数;第二,不容易被模仿;第三,不随时间和空间变化,具有相对的稳定性;第四,能够有效识别不同的说话人。目前说话人确认系统主要依靠语音的低层次声学特征来进行识别,这些特征可分为时域特征和变换域特征。在本实施例的步骤S3中,语音信号组合特征参数提取:即提取1维基音周期,12维LPCC,12维△LPCC,1维能量参数,1维一阶差分能量参数,22维GFCC参数,共同组成的49维特征向量。
[0120] 1、基音周期特征参数提取的具体步骤如下:
[0121] (1)令语音信号表示为s(n),语音的归一化自相关函数的表示为
[0122]
[0123] (2)去均值
[0124] 当语音信号在分析窗里有非零均值或有非常低的低频噪声出现时,归一化自相关函数在所要求的所有延迟上都产生高的相关。于是,在计算ρ(τ)时首先减掉均值,减去均值的信号为s'(n)=s(n)-μ (25)
[0125]
[0126] (3)时域基音周期粗估计及基音平滑
[0127] 由于语音信号呈现准周期性,在与该帧波形具有较强相似性的地方,R(τ)会出现峰值,但是这些峰值中还需要进一步判断才能确定基音周期。于是获得的语音帧的点数为m,以m/N为步长对语音帧抽样,同时以生成在[1,2]之间的随机数作为抽样点值的倍数矩阵K相乘,获得新的语音帧,对语音信号的每一帧作相应的处理。
[0128] 由于语音信号的平稳性,基音周期曲线也是平滑的,相邻之间的基音周期也是连续的。由于基音周期一般不会发生突变,在度量转移时,周期的值越接近,转移的概率就越大。两个备选基音周期之间的路径转移权值为
[0129]
[0130] 采用遗传算法,使得两个备选基音周期之间的路径转移权值作为适应度值,通过不断的改变倍数矩阵K的值,使得适应度值最大,然后获得该语音帧信号对应的峰值大小为R(τ),然后获得基音周期T0。
[0131] 2、短时归一化能量特征参数提取的具体步骤如下:
[0132] (1)给定语音段中的长度为N的一帧{Si(n),n=1,2,…,N},计算该帧的短时对数能量的公式为 其中L是语音段的帧数。
[0133] (2)由于不同语音段不同语音帧的能量差别比较大,为了使其能够于前面的倒谱系数一起作为向量计算,需要进行归一化处理。 其中Emax=maxEl,即语音段中最大的对数能量。
[0134] 3、LPCC特征参数提取的具体步骤如下:
[0135] (1)求解线性预测LPC:在线性预测(LPC)分析中,声道模型表示为式(33)的全极点模型,
[0136] 式中p是LPC分析的阶数,ak为线性预测系数(k=1,2,…,p),A(z)为逆滤波器。LPC的分析就是求解线性预测系数ak,本发明采用基于自相关的递推求解公式法(即Durbin算法)。
[0137] (2)求LPC的倒谱系数LPCC:已预处理的语音信号x(n)复倒谱 定义为x(n)的Z变换的对数反Z变换,即为:
[0138]
[0139] 只考虑X(z)的模,忽略它的相位,就得到信号的倒谱c(n)为:
[0140] c(n)=Z-1(log|X(z)|) (30)
[0141] LPCC不是由输入语音信号x(n),而是由LPC系数an得到的。LPCC参数Cn的递推公式:
[0142]
[0143] 4、动态特征参数:△LPCC、一阶差分能量参数提取的具体步骤如下:
[0144] 前面介绍的基音周期、LPCC、能量特征参数只表征了语音谱的及时信息,属于静态参数。实验表明,语音谱的动态信息中也包含有与说话人有关的信息,可以用来提高说话人识别系统的识别率。
[0145] (1)语音倒谱的动态信息是表征语音特征参数随时间变化的规律。语音倒谱随时间的变化可用下式表达:
[0146]
[0147] 公式中,cm表示第m阶倒谱系数,n和k表示倒谱系数在时间轴上的序号。h(k)(k=-K,-K+1,…,K-1,K)为长度是2K+1的窗函数,它通常是对称的。正交多项式的一阶系数Δcm(n)如式(32)所示。
[0148] (2)实际应用中窗函数多采用矩形窗,K通常取2,此时动态参数就称为当前帧的前两帧和后两帧参数的线性组合。所以按照式(32)可以得到基音周期、LPCC、能量的一阶动态参数。
[0149] 5、GFCC特征参数提取的具体步骤如下:
[0150] (1)对预处理后的语音信号进行短时傅里叶变换,得到其频谱。这里采用快速傅里叶变换FFT来对每一帧语音信号进行离散余弦变换DCT。先将每一帧时域信号x(n)后补若干个0以形成长度为N(本发明中取N=256)的序列,然后对其进行快速傅立叶变换,最后得到线性频谱X(k)。X(k)与x(n)之间的转换公式为:
[0151] (2)获得Gammatone滤波器组,Gammatone滤波器是一个标准的耳蜗听觉滤波器,该滤波器的时域脉冲响应为:
[0152] g(t)=Atn-1e-2πbtcos(2πfi+φi)U(t),t≥0,1≤i≤N (34)[0153] 式中,A为滤波器增益,fi是滤波器的中心频率,U(t)是阶跃函数,φi是相位,为了简化模型,令φi为0,n是滤波器的阶数,实验表明n=4时能够很好的模拟人耳耳蜗的滤波特性。
[0154] bi是滤波器的衰减因子,它决定了脉冲响应的衰减速度,并与滤波器的带宽有关,bi=1.019ERB(fi),在听觉心理学中,
[0155]
[0156] 式中,N为滤波器的个数,本发明采用的是N=64,即由64个Gammatone滤波器叠加成的带通滤波器组实现耳蜗模型。各滤波器组的中心频率在ERB域上等间距分布,整个滤波器组的频率覆盖范围为80Hz-8000Hz,每个中心频率的计算公式如下:
[0157]
[0158] 其中fH为滤波器截止频率,vi是滤波器重叠因子,用来指定相邻滤波器之间重叠百分比。每个滤波器中心频率确定后,相应的带宽可由式(35)获得。
[0159] (3)Gammatone滤波器组滤波。对步骤(1)得到的功率谱X(k)取平方得到能量谱,然后用Gammatone滤波组Gm(k)进行滤波处理。得到对数频谱s(m),用来压缩语音谱的动态范围,并将频域中噪声的乘性成分转化成加性成分。
[0160]
[0161] (4)对对数频谱s(m)进行离散余弦变换DCT,得到GFCC参数G(n)。
[0162]
[0163] 进一步地,步骤S3中提取得到的组合特征参数,可能含有说话人个性特征、话语信息特征等较大的冗余量,所以采用离散粒子群优化算法筛选出能够表征说话人语音个性特征的特征参量,同时也减少了特征量的维度,提高了系统运行的效率和识别率。
[0164] 1、离散二进制粒子群优化(BPSO)算法
[0165] 粒子群优化算法(PSO算法)是Kennedy和Eberhart受到鸟群捕食行为的研究结果启发得到。PSO算法具有执行速度快,受维数变化影响小等优点。
[0166] 离散二进制粒子群优化算法更新粒子速度按照以下公式进行:
[0167]
[0168]
[0169] 式中, 表示第n次迭代时第i个粒子第d维的速度, 表示第n+1次迭代时第i个粒子第d维的速度, 表示第n次迭代时第i个粒子第d维的值, 表示第n次迭代时第i个粒子的粒子个体极值第d维的值, 表示第n次迭代时群体全局极值在第d维的值,d=1,2,...,D表示粒子的维度,总共D维,i=1,2,...,m,m为种群规模,w为惯性权重,c1是粒子跟踪自己历史最优值的权重系数,c2是粒子跟踪群体最优值的权重系数,r1、r2是[0,1]之间的随机数。
[0170] 离散二进制粒子群优化算法采用二进制编码的形式,将每一维的xi和pi限制为1或者0,而速度vi不作这种限制。用速度的Sigmoid函数表示位置状态改变的可能性:
[0171] s(v)=1/(1+e-v) (41)
[0172] 更新粒子位置按照以下方法进行:
[0173] 针对第n+1次迭代时第i个粒子第d维的值而言,先按照 计算位置状态改变概率;然后随机产生一个(0,1)之间的随机数rand(),如果 则否则
[0174] 其中 表示第n次迭代时第i个粒子第d维的速度, 表示第n+1次迭代时第i个粒子第d维的值。
[0175] 2、编码模式
[0176] 特征选择的实质就是从M个特征中,选出N个特征构成子集。因此可以把每一个特征定义为粒子的一维离散二进制变量,M个特征构成粒子的M维离散 二进制空间。对于每一个粒子,如果第i位为1,表示第i个特征被选中,反之表示该特征没有被选中。因此,每个粒子代表了一个不同的特征子集,也就是一个候选集。比如,粒子i=100110,那么表明特征1、特征3和特征5被选中,特征子集为{1,3,5}。
[0177] 3、适应度函数
[0178] 在特征选择中,适应度评价函数的选择至关重要。虽然人们提出了距离评测、相关性评测等几种不同的建议,但目前还没有能被一致接纳的度量标准。本发明采用相关性评测方法,其核心思想在于选择一个属性子集,属性各自与类属性有较大关联,但几乎没有内部关联,以此达到消除无关属性,同时也消除重复属性的目的。两属性A和B之间关系可用对称不确定性(symmetric uncertainty)来度量:
[0179]
[0180] 基于相关性的属性选择决定了一个属性集的优良,用公式(43)度量:
[0181]
[0182] 其中,C是类属性,i和j包括属性集里的所有属性。公式(43)也就是粒子群的适应度函数,显然值越大,粒子的适应度越高。
[0183] 因此,在具体实施过程中,步骤A3的每个粒子的适应度的计算公式为: 其中函数:
[0184] Ai表示多维特征向量中的第i维参量,Aj表示多维特征向量中的第j维参量,C是说话人的类别,i和j遍历于多维特征向量中的所有维数,H1(Aj)表示确定C之前Aj的熵, H1(C)表示确定Aj之前C的熵,H1(Aj|C)表示确定C之后Aj的熵,H2(Ai)表示确定Aj之前Ai的熵,H2(Aj)表示确定Ai之前Aj的熵,H2(Ai|Aj)表示确定Aj之后Ai的熵。
[0185] 如图2所示,步骤S4的离散二进制粒子群优化算法具体包括如下步骤:
[0186] A1:装载训练数据集,设置初始化参数;
[0187] A2:随机产生初始群体,并为每个粒子生成随机初始化速度,设置粒子个体极值和群体的全局极值;
[0188] A3:评价每个粒子的适应值;
[0189] A4:对每个粒子,将其适应值与粒子个体极值的适应值进行比较,如果其适应值优于粒子个体极值的适应值,则将当前粒子的位置作为粒子个体极值;
[0190] A5:对每个粒子,将其适应值与群体全局极值的适应值进行比较,如果其适应值优于群体全局极值的适应值,则将当前粒子的位置作为群体全局极值;
[0191] A6:更新粒子速度和位置;
[0192] A7:判断迭代次数是否达到最大值,如果达到,则进入步骤A8,否则跳转到步骤A3;
[0193] A8:把最终的群体全局极值转换为对应的特征子集。
[0194] 进一步地,在训练语音不足时,基于GMM的声纹识别系统的识别率急剧下降。为了克服因训练语音不够的而不能够很好的刻画说话人的语音特征的缺陷,而引入了通用背景模型(UBM),从而产生了基于GMM-UBM的说话人识别。用GMM-UBM模型对测试语音进行识别。步骤S5中具体包括:
[0195] 高斯组合模型GMM是单一的高斯密度函数的扩展,设有M个单一高斯概率分布函数,一个高斯组合概率分布的定义为:
[0196] 单一的高斯概率密度函数表示为:
[0197]
[0198] 首先根据每个说话人的语音进行训练得到一组参数:权值,均值,协方差矩阵用来表征说话人的身份,这就需要对各个参数进行估计,也称为模型训练;
[0199] UBM训练过程:只用一个UBM代表所以说话人统计的平均语音特征,UBM训练过程是一个自适应的阶段,实际的应用中可以不断的扩充语音库,用不断增加的语音库来训练得到UBM,似然率计算如下式:
[0200]
[0201] 其中 和 为高斯对角矩阵的均值和方差参数;
[0202] UBM自适应过程:使用最大后验概率MAP对UBM模型的均值μi进行自适应:给定一个UBM模型和说话人X={x1,x2,....xt},得到
[0203]
[0204]
[0205]
[0206] 由上式得高斯模型均值自适应公式为:μi=αEi(x)+(1-α)μi,每个说话人的模型是在UBM上根据说话人的训练语音自适应得到的。
[0207] 进一步地,说话人的识别过程可看作一个假设检验问题,步骤S6具体包括:通过测试说话人的语音,与语音库中建立的语音模板进行匹配,来获得测 试语音的身份,假设H0为输入语音,X为目标说话人,H1为冒充者语音,一个对数似然比分数定义为:
[0208] S(X)=log{p(H0)/p(H1)} (48)
[0209] 通过计算似然得分,最大似然得分即为目标说话人。
[0210] 本申请的上述实施例中,通过提供一种基于基音周期混合特征参数的声纹识别方法,包括以下步骤:语音信号的采集输入、语音信号预处理、语音信号组合特征参数提取:即提取基音周期、LPCC、△LPCC、能量、能量的一阶差分、GFCC特征参数共同组合成多维特征向量、采用离散二进制粒子群优化算法BPSO对语音信号组合特征参数进行筛选、引入通用背景模型UBM训练得到说话人的声音模型、最后利用GMM-UBM模型对测试语音进行识别。与单一的语音信号特征参数进行声纹识别相比,采用组合特征参数并使用GMM-UBM模型的声纹识别系统,有效地提高了声纹识别的识别准确率和系统稳定性。
[0211] 应当指出的是,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改性、添加或替换,也应属于本发明的保护范围。