技术领域
本发明涉及声纹识别技术领域,更具体地,涉及一种基于分组统计的HMM 声纹识别签到方法及系统。
背景技术
在嵌入式操作系统中实现声纹识别签到,通常需要对输入的声纹进行预处理, 将数据传输到服务器,进而生成声纹模型,模式匹配,最后输出并记录结果。其 中,声纹模型引用了隐马尔可夫模型(HMM)的两个参数(B,π),该模型的 训练采用了Baum_Welch算法。一般可以用λ=(A,B,π)三元组来简洁的表示 一个隐马尔可夫模型。隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加 了可观测状态集合和这些状态与隐含状态之间的概率关系。模式匹配通常采取 Viterbi算法进行模式匹配。张卫清的《语音识别算法的研究》提供了详细的Viterbi 算法及隐马尔科夫模型的描述。传统模式匹配算法,需要对所有模板进行匹配, 当模板数量增加时,匹配过程所消耗的时间而随之增加,也即当要识别的声纹数 量较大时,识别效率和实时性较差,进而导致签到效率低下。
发明内容
本发明旨在至少在一定程度上解决上述技术问题。
本发明的首要目的是克服上述现有技术所述的识别效率和实时性较差缺陷, 提供一种识别效率和实时性高的基于分组统计的HMM声纹识别签到方法。
本发明的进一步目的是提供一种识别效率和实时性高的基于分组统计的 HMM声纹识别签到系统。
为解决上述技术问题,本发明的技术方案如下:
一种基于分组统计的HMM声纹识别签到方法,通过签到客户端采集声纹信 号,并通过网络传输至签到服务器进行签到,所述方法包括以下步骤:
S1:采集签到者的声纹信号;
S2:对声纹信号进行预处理,其预处理过程依次包括预加重、分帧、加窗和 端点检测,将预处理后的声纹信号通过网络传输至服务器;
S3:对声纹信号进行声纹特征参数提取;
S4:生成分组特征参数,包括生成签到者分组特征参数以及生成分组模型的 分组特征参数;
S5:根据分组模型的每个分组的分组特征参数与签到者声纹的分组特征参数, 判断签到者是否为某个分组的成员;
S6:对签到者的声纹进行判定。
在一种优选的方案中,步骤S2中,对声纹信号进行预处理具体包括以下步 骤:
S2.1:预加重,在预加重过程中,
传递函数为:H(z)=1-0.9375z-1,
得到的信号为: S ~ ( n ) = S ( n ) - 0.9375 S ( n - 1 ) ;
S2.2:分帧,以10~20ms为间隔将声纹信号分为若干帧,一帧为一个基本单 位;
S2.3:加窗,采用了汉明窗函数来进行窗化,即:0≤n≤N-1,其中:0≤n≤N-1;
S2.4:端点检测,通过信号的短时过零率和短时能量两个系数来检测声纹信 号的端点的,两个系数的公式如下:
短时能量: e ( i ) = Σ n = 1 N | x i ( n ) | ,
短时过零率: ZCR ( i ) = Σ n = 1 N - 1 | x i ( n ) - x i ( n + 1 ) | .
在一种优选的方案中,步骤S3中,对声纹信号进行声纹特征参数提取,具 体包括以下步骤:
S3.1:对声纹信号进行快速傅里叶变换获取能量频谱;
S3.2:将能量频谱能量乘以一组N个三角带通滤波器,求得每一个滤波器输 出的对数能量(Log Energy)Ek,所述的N个三角带通滤波器在梅尔频率(Mel Frequency)上是平均分布的,梅尔频率mel(f)和一般频率f的关系式为:
mel(f)=2595*log10(1+f/700);
S3.3:将得到的N个对数能量Ek带入离散余弦转换(DCT),求出L阶的 Mel-scale Cepstrum参数,得到L个倒频谱参数,离散余弦转换公式如下:
Cm=Ncos[m*(k-0.5)*p/N]*Ek,m=1,2,...,L;
S3.4:提取声纹信号一个帧的对数能量,一个帧的对数能量定义为一个帧内 讯号的平方和,再取以10为底的对数值,再乘以10;
S3.5:提取声纹信号的差量倒频谱参数,差量倒频谱参数表示倒频谱参数相 对于时间的斜率,公式如下:
▿ C m ( t ) = Σ τ = - M M τ · C m ( t + τ ) Σ τ = - M M τ 2 = Σ τ = 1 M τ · C m ( t + τ ) - C m ( t - τ ) ) 2 · Στ = 1 M τ 2 , m = 1,2 , . . . L
这里M的值取2或3,t代表音框的数目,Cm(t)指第t框的倒频谱参数。
在一种优选的方案中,步骤S4中,生成分组特征参数的方法具体包括以下 步骤:
S4.1:分组集合的生成,包括:
(1)将每个签到人的声纹信号特征参数矩阵MK(P,J)按列求平均值,得到一 维向量,表示为VK(J),其中K为签到人编号,P为声纹信号特征参数的值,J 为声纹特征参数的阶数;
(2)设X={V1(J),V2(J),...,Vn(J)},其中n为签到人的个数,对矩阵 X使用K均值聚类算法进行m次聚类,设VK(J)在第i次聚类时,被分在第GK(i) 组,设GK={GK(1),GK(2),...,GK(m)},其中m为聚类次数,K为签到人 编码;
(3)设GK均值为GMK,方差为GDK,FK=GMK*GDK,对F使用K均值进 行聚类,得出分组集合GNij;
S4.2:分组集合的训练,使用分组统计分析算法生成分组模型,依次对每个 签到人的样本参数用DTW算法匹配其与分组模型的中心距离,距离最小者为目 标分组,然后检验目标分组是否包含输入特征参数所表示的词语,若包含则表示 分类正确,若不包含则将该词加入目标分组;
S4.3:分组特征参数的生成,包括签到者分组特征参数的生成以及分组模型 的分组特征参数的生成;
签到者声纹分组特征参数的生成:设签到者的声纹Sk的特征参数矩阵为:Sk(P,J)。对Sk(P,J)按列求平均值,得到一维向量,可表示为SVk(J),即为Sk的 分组特征参数;
分组模型的分组特征参数的生成:设分组模型i的分组特征参数为GFi,结 合S4.1中生成的VK(J)和GNij则:
GF i = ( V GN i , 1 ( J ) + V GN i , 2 ( J ) + . . . + V GN i , n ( J ) ) / n .
在一种优选的方案中,步骤S5中,判断签到者是否为某个分组的成员的具 体方法为:采用DTW算法计算分组模型的每个分组的分组特征参数与签到者声 纹分组特征参数的欧式距离,选择距离最近的分组特征参数所在的分组作为签到 者的分组判定结果,即签到者属于该分组。
在一种优选的方案中,步骤S6中,对签到者的具体身份进行判定的方法为:
S6.1:签到者的音色、音调特征参数的生成与训练,音色特征参数引用HMM 模型的输出概率矩阵表示,音调特征参数引用HMM模型的状态转移概率矩阵; 通过Baum-Welch(向前向后算法)算法对音色、音调特征参数进行训练;
S6.2:签到者的声纹判定,使用Viterbi算法计算签到者声纹对应的输出概率, 将输出概率最大者判定为匹配结果。
一种基于分组统计的HMM声纹识别签到系统,所述系统包括签到客户端和 签到服务器端,客户端和服务器端通过网络连接;
签到客户端包括:
声纹采集模块:用于采集签到者的声纹信号并输出到预处理模块;
预处理模块:包括顺次连接的预加重单元、分帧处理单元、窗化处理单元和 端点检测单元,用于依次对声纹信号进行预加重、分帧、加窗和端点检测,然后 将声纹信号通过网络传输到服务器端;
签到服务器端包括:
网络服务模块:用于通过网络与签到客户端进行通信;
声纹特征提取模块:用于对声纹信号提取声纹特征参数;
分组统计分析模块:用于用于根据预先生成的分组模型中每个分组的分组特 征参数与签到者语音的声纹特征参数,判断签到者是否为某个分组的成员;
声纹识别模块:对签到者的声纹进行判定。
在一种优选的方案中,所述签到服务器端还包括数据持久化模块和数据库, 数据持久化模块用于将签到者声纹识别结果持久化到数据库中。
在一种优选的方案中,所述签到服务器端还包括控制与反馈模块,所述签到 客户端模块还包括显示面板模块,所述控制与反馈模块用于将签到者声纹识别的 结果反馈给显示面板模块,显示面板模块用于显示签到者声纹识别的结果。
在一种优选的方案中,所述签到客户端采用android移动终端。
与现有技术相比,本发明技术方案的有益效果是:本发明基于分组统计的 HMM声纹识别签到方法,首先签到客户端采集签到者的声纹信号,对声纹信号 依次进行预加重、分帧、加窗和端点检测的预处理并通过网络传输至服务器,然 后签到服务器端对声纹信号进行声纹特征参数提取,生成签到者分组特征参数以 及生成分组模型的分组特征参数;根据分组模型的每个分组的分组特征参数与签 到者声纹的分组特征参数,判断签到者是否为某个分组的成员;最后对签到者的 声纹进行判定。本发明能在签到人数量较大的情况下,实现实时,高效的声纹识 别签到,签到者无需到公用设备排队签到,从而减少公用设备的投入,既方便又 高效;
本发明基于分组统计的HMM声纹识别签到系统,通过签到客户端采集到的 声音信号并进行预处理,使得减少网络传输的数据量,而声纹特征提取及声纹识 别模块放在服务端可降低对签到客户端的硬件要求,签到者可以把客户端装到自 己的手机中,更好的节省了系统的硬件成本。本发明系统和方法的结合实现了高 识别效率、高实时性的声纹识别签到。