一种可用于低端芯片的声纹密码方法
技术领域
本发明涉及面向低端芯片的声纹密码注册和确认方法,特别针对超小存储和运算消耗的低端芯片。
背景技术
目前在一些低端芯片上的声纹密码应用中,主流的方法是采用动态时间规划的模板匹配方法,但是这种方法有着很大的应用限制,比如描述能力有限、对噪声文本敏感、运算量相对较大等等。其中,低端芯片一般是指运算能力在10Mips(每秒百万指令数)、RAM存储8KB以内,ROM存储64以内的嵌入式芯片设备。声纹注册是指根据用户输入的几遍语音经过语音端点检测、噪声和信道干扰消除之后提取到的声纹特征,经过一个声纹注册环节可以得到该用户对应的声纹模型。声纹确认指对用户或者冒认者的一段语音经过同样的处理提取到声纹特征后,经过和注册得到的声纹模型进行声纹匹配处理,获取当前语音来自注册语音的置信度得分,并根据一定的门限阈值判断,获取当前语音是否来自注册用户的确认结果。现今声纹密码确认主要采用GMM-UBM算法,即分别采用了混合高斯(GaussianMixture Model,简称GMM)模型模拟通用密码的背景模型(Universal Background Model,简称UBM)及说话人模型。由于用户密码的单一性,所述通用密码的背景模型及用户声纹密码可预先离线训练得到,并在后续执行声纹密码认证时,通过分别计算声纹信号相对于说话人声纹模型以及背景模型的似然度并比较它们的似然比和预先根据经验设置的阈值大小来确认。但是这种方法训练用户声纹密码,需要大批量人员覆盖的指定文本录音,录音工作量较大,每次换注册密码文本时,都需要重新录音,工作量较大。
发明内容
鉴于上述现有技术所存在的缺陷,本发明实施例提供了一种可以在低端芯片上运行的声纹密码注册和确认方法,从而满足在一些低端芯片上进行声纹密码功能开发的需求(如声纹密码本)。
本发明实施例提供的技术方案如下:
本申请采用HMM建模方式,通过对应平台的大批量标注数据训练得到通用的语音识别的声学模型,再对声学模型里的所有HMM采用LBG算法聚类成50个HMM或者更少(主要考虑平台的运算能力)。用该聚类后的模型作为UBM模型。本方法的优点是不需要大批量数据训练用户声纹模型,可以很方便的切换密码文本,不需要每次切换密码文本时都进行大批量数据录音。
注册策略:
本申请采用二遍语音输入完成特定人声纹模型注册。输入的二遍语音需要是相同文本,否则注册的置信度得分较低,会导致注册失败。
步骤一:对于输入的第一遍语音,通过VAD(Voice Activity Detection)策略等,提取有效语音段的声纹特征。
声纹特征可以选用MFCC(Mel Frequency Cepstrum Coefficient,Mel频率倒谱系数)特征,对窗长25ms帧移10ms的每帧语音数据做短时分析得到MFCC参数及其一阶差分,共计16维。这样,每句语音信号可以量化为一个16维声纹特征序列X,
步骤二:对声纹特征进行识别。针对第一遍注册语音输入,是在UBM模型的所有HMM上进行loop Viterbi解码,示意图请见图1。同步将解码路径信息保存在RAM中,并将声纹特征进行缓存(对于低端芯片,一般可以保存到外设,如SPIFlash中),用于后面训练该声纹模型使用。由于UBM模型只有50个HMM,运算量较少,符合低端芯片的运算量需求。在解码结束后,通过回溯,获取最优路径上的HMM串。以该HMM串作为该用户的声纹模型的初始HMM序列。再利用最优路径上保存的声纹特征FA信息,对该初始HMM序列的所有mean进行重新训练,并将训练后的HMM串作为第一遍语音输入生成的声学模型进行保存。
步骤三:对于输入的第二遍语音,采用相同的策略获取声纹特征,此时采用在第一遍生成的HMM串上进行常规的Viterbi解码来获取输入语音的切分信息,再通过保存的该遍声纹特征对HMM序列的mean进行再次训练,以本次训练了mean的HMM序列作为该用户的声纹模型。
确认策略:
我们限定确认时输入的语音文本需要和注册文本一样,否则确认的置信度得分较低,会导致确认失败。
声纹确认步骤和声纹注册的步骤三类似,采用相同的策略进行声纹特征提取,然后在用户注册的声纹模型上进行Viterbi解码,在VAD检测到结束后,通过判断解码的置信度得分和根据经验设定的置信度得分阀值,决定该语音输入是否是指定用户的声纹模型。
置信度策略:
置信度(confidence measure,以下简称CM)指对声纹确认结果的信心指数,通过设定门限来确定是接受还是拒绝,是对声纹确认结果的一种评价方法。好的CM策略对提升用户声纹确认成功率和降低他人冒认成功率至关重要。本方案采用基于UtteranceVerification的CM策略。
主要思想:
将CM看成一个统计假设检验问题,对于观测矢量X的识别结果W,给出两个完全相反的假设:
–H0假设:X被正确识别成W
–H1假设:X被误识为W
根据LRT(Likelihood Ratio Testing)方法
其中t为门限
该CM方法的的难点在于如何构建H1假设的模型,在密码确认时,本申请将UBM模型里的所有HMM模型去除注册生成的HMM串模型后的其他HMM模型来构建H1模型,根据所述声纹特征序列与说话人声纹模型的似然度、以及所述声纹特征序列与背景模型的似然度,计算似然比。
似然比为:
其中,p(X|U)为所述声纹特征与说话人声纹模型的似然度,p(X|UBM)为所述声纹特征与背景模型的似然度。通过判断所述似然比是否大于设定的阈值,来决定密码确认是成功还是失败。
上述阈值可以由系统预先设定,一般来说,该阈值越大,则系统的灵敏度越高,要求用户在登录时尽可能按照注册时录入的语音信号(即密码)的发音,反之,则系统的灵敏度较低,允许用户登录时录入的语音信号的发音与注册时的发音存在一定的变化。
资源存储策略:
考虑到低端平台RAM和ROM受限,对所有高斯模型的均值和方差进行了量化处理,将均值方差由之前的至少32bit存储精简到只需要11bit存储(其中均值6bit方差5bit),使模型资源存储减少了50%,从而极大的减少了存储空间和提高了运算效率,保证了产品化的可行性。
另外通过对数据进行有效组织,保证在运算时可以顺序访问模型资源数据,减少了特定平台随机访问数据而带来的额外时间开销,从而解决了将资源存储在SPIFlash中的数据访问的瓶颈。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的声纹密码注册和确认的流程图;
图2是本发明实施例提供的注册第一遍语音输入的解码策略流程图;
图3是本发明实施例提供的注册第二遍语音输入的解码策略流程图;
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
如图1所示,本发明方法包括:声纹注册流程和声纹确认流程。本申请采用HMM建模方式,通过对应平台的大批量标注数据训练得到通用的语音识别的声学模型,再对声学模型里的所有HMM采用LBG算法聚类成50个HMM或者更少(主要考虑平台的运算能力)。用该聚类后的模型作为UBM模型。本方法的优点是不需要大批量数据训练用户声纹模型,可以很方便的切换密码文本,不需要每次切换密码文本时都进行大批量数据录音。
如图2及图3所示,本发明的声纹注册方法包括:
步骤一:对于输入的第一遍语音,通过VAD(Voice Activity Detection)策略等,提取有效语音段的声纹特征。
声纹特征可以选用MFCC(Mel Frequency Cepstrum Coefficient,Mel频率倒谱系数)特征,对窗长25ms帧移10ms的每帧语音数据做短时分析得到MFCC参数及其一阶差分,共计16维。这样,每句语音信号可以量化为一个16维声纹特征序列X,
步骤二:对声纹特征进行识别。针对第一遍注册语音输入,是在UBM模型的所有HMM上进行loop Viterbi解码,示意图请见图1。同步将解码路径信息保存在RAM中,并将声纹特征进行缓存(对于低端芯片,一般可以保存到外设,如SPIFlash中),用于后面训练该声纹模型使用。由于UBM模型只有50个HMM,运算量较少,符合低端芯片的运算量需求。在解码结束后,通过回溯,获取最优路径上的HMM串。以该HMM串作为该用户的声纹模型的初始HMM序列。再利用最优路径上保存的声纹特征FA信息,对该初始HMM序列的所有mean进行重新训练,并将训练后的HMM串作为第一遍语音输入生成的声学模型进行保存。
步骤三:对于输入的第二遍语音,采用相同的策略获取声纹特征,此时采用在第一遍生成的HMM串上进行常规的Viterbi解码来获取输入语音的切分信息,再通过保存的该遍声纹特征对HMM序列的mean进行再次训练,以本次训练了mean的HMM序列作为该用户的声纹模型。
如图1所示,本发明的声纹确认方法包括:。
声纹确认步骤和声纹注册的步骤三类似,采用相同的策略进行声纹特征提取,然后在用户注册的声纹模型上进行Viterbi解码,在VAD检测到结束后,通过判断解码的置信度得分和根据经验设定的置信度得分阀值,决定该语音输入是否是指定用户的声纹模型。
本说明书中的各个实施例均采用递进的方式进行描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。