本发明涉及声纹识别技术领域,具体涉及一种声纹模型更新方法及系统。
背景技术:
声纹特征是人体重要生物特征之一,不仅具有特定性,而且有相对稳定性的特点,常用于声纹识别、声纹认证等领域。
通过声纹特征进行身份认证的方法,通常为通过建立声纹模型来表征不同的个体,进而利用该声纹模型识别不同的个体。一般情况下,在声纹模型训练时,获取到的训练数据都非常少,训练得到的声纹模型准确度和适应性较差。因此,为了增加声纹模型的实用性,需要后期不断的更新声纹模型来增加其准确度和适应性。现有的声纹模型更新方法通常为直接将认证成功用户的新录制语音数据加入到原声纹模型的训练数据库中,重新进行声纹模型训练,以完成对声纹模型的更新。
然而,当与目标说话人声纹特征相似的冒认说话人在很短时间内连续冒认时,会连续将大量语音数据录入到原声纹模型的训练数据库中,原声纹模型会被持续更新,从而导致更新后的声纹模型偏离目标说话人的实际声纹模型,最终导致目标说话人无法认证。
技术实现要素:
本发明实施例提供一种声纹模型更新方法及系统,以解决现有技术中与目标说话人声纹特征相似的冒认说话人在很短时间内连续冒认时,导致更新后的声纹模型偏离目标说话人的实际声纹模型的问题。
为此,本发明实施例提供如下技术方案:
一种声纹模型更新方法,包括:
获取目标说话人当前登录时间及目标说话人声纹模型上一次的更新时间;
将目标说话人声纹模型上一次的更新时间至目标说话人当前登录时间的 时间段划分为多个时间聚团;
获取每个时间聚团内所述目标说话人声纹认证成功时的语音数据;
从每个时间聚团内认证成功的语音数据中选择语音数据,并将选择的语音数据作为目标说话人声纹模型更新数据;
利用所述目标说话人声纹模型更新数据及原声纹模型训练数据重新进行声纹模型训练,得到训练后的新声纹模型;
利用所述新声纹模型更新所述目标说话人声纹模型。
优选地,所述从每个时间聚团内认证成功的语音数据中选择语音数据包括:
对于每个时间聚团,获取所述时间聚团内认证成功的语音数据相对目标说话人声纹模型的匹配度;
筛选出大于设定的第一阈值的匹配度对应的语音数据;或者
按照匹配度由大到小的顺序对各条语音数据进行排序,筛选出设定条数的语音数据。
优选地,所述从每个时间聚团内认证成功的语音数据中选择语音数据还包括:
对每个时间聚团内筛选出的语音数据进行采样。
优选地,所述方法还包括:
在对用户进行声纹认证时,获取当前用户的语音数据;
计算所述当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度作为待规整匹配度;
对所述待规整匹配度进行零规整,得到规整后的匹配度;
如果规整后的匹配度大于设定的第二阈值,则确定当前用户为目标说话人。
优选地,所述方法还包括:
预先收集大量来自不同说话人的语音数据作为种子数据,放入种子集合中;
计算所述种子集合中每条语音数据的声纹特征与所述目标说话人声纹模型的匹配度,得到匹配度集合;
计算所述匹配度集合中所有匹配度的均值及标准差,并将计算得到的均值及标准差作为冒认者说话人语音数据的声纹特征与所述目标说话人声纹模型匹配度分布的均值及标准差;
所述对所述待规整匹配度进行零规整,得到规整后的匹配度包括:
利用所述均值及标准差对所述待规整匹配度进行零规整,得到规整后的匹配度。
一种声纹模型更新系统,包括:
更新时段获取模块,用于获取目标说话人当前登录时间及目标说话人声纹模型上一次的更新时间;
划分模块,用于将目标说话人声纹模型上一次的更新时间至目标说话人当前登录时间的时间段划分为多个时间聚团;
语音数据获取模块,用于获取每个时间聚团内所述目标说话人声纹认证成功时的语音数据;
模型更新数据获取模块,用于从每个时间聚团内认证成功的语音数据中选择语音数据,并将选择的语音数据作为目标说话人声纹模型更新数据;
训练模块,用于利用所述目标说话人声纹模型更新数据及原声纹模型训练数据重新进行声纹模型训练,得到训练后的新声纹模型;
模型更新模块,用于利用所述新声纹模型更新所述目标说话人声纹模型。
优选地,所述模型更新数据获取模块包括:
获取单元,用于对于每个时间聚团,获取所述时间聚团内认证成功的语音数据相对目标说话人声纹模型的匹配度;
筛选单元,用于筛选出大于设定的第一阈值的匹配度对应的语音数据;或者按照匹配度由大到小的顺序对各条语音数据进行排序,筛选出设定条数的语音数据。
优选地,所述模型更新数据获取模块还包括:
采样单元,用于对每个时间聚团内所述筛选单元筛选出的语音数据进行采样。
优选地,所述系统还包括:
接收模块,用于在对用户进行声纹认证时,获取当前用户的语音数据;
匹配度计算模块,用于计算所述当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度作为待规整匹配度;
规整模块,用于对所述待规整匹配度进行零规整,得到规整后的匹配度;
判断模块,用于根据所述规整后的匹配度确定当前用户是否为目标说话人,如果规整后的匹配度大于设定的第二阈值,则确定当前用户为目标说话人。
优选地,所述系统还包括:
种子数据获取模块,用于预先收集大量来自不同说话人的语音数据作为种子数据,放入种子集合中;
第一计算模块,用于计算所述种子集合中每条语音数据的声纹特征与所述目标说话人声纹模型的匹配度,得到匹配度集合;
第二计算模块,用于计算所述匹配度集合中所有匹配度的均值及标准差,并将计算得到的均值及标准差作为冒认者说话人语音数据的声纹特征与所述目标说话人声纹模型匹配度分布的均值及标准差;
所述规整模块,具体用于利用所述均值及标准差对所述待规整匹配度进行零规整,得到规整后的匹配度。
本发明实施例提供的声纹模型更新方法及系统,将目标说话人的当前登录时间及目标说话人声纹模型上一次的更新时间划分为多个时间聚团,并获取每个时间聚团内的目标说话人声纹认证成功时的语音数据,然后从不同时间聚团内认证成功的语音数据选择语音数据作为目标说话人声纹模型更新数据,然后利用这些目标说话人声纹模型更新数据及原声纹模型训练数据重新进行声纹模型训练,并利用获取的新声纹模型更新目标说话人声纹模型,可以有效防止冒认者说话人在很短时间内持续更新目标说话人声纹模型,保证目标说话人声纹模型更新的正确性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例声纹模型更新方法的一种流程图;
图2是本发明实施例对用户认证的一种流程图;
图3是本发明实施例声纹模型更新系统的一种结构示意图;
图4是本发明实施例声纹模型更新系统中对用户进行认证的部分结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例的方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
本发明不同于现有技术:将所有认证成功用户的语音数据加入到原声纹模型训练数据中作为模型更新数据,导致更新数据中可能包含有冒认者语音数据,在更新目标说话人声纹模型时,使其偏离目标说话人声纹特征的问题。本发明将目标说话人的当前登录时间及目标说话人声纹模型上一次的更新时间划分为多个时间聚团,通过选择各时间聚团内认证成功的语音数据作为目标说话人声纹模型更新数据,然后利用这些数据及原声纹模型训练数据进行目标说话人声纹模型更新,能有效解决与目标说话人声纹相似的冒认者说话人在很短时间内连续冒认导致不断更新目标说话人声纹模型,使其偏离目标说话人声纹特征的问题,保证目标说话人声纹模型更新的正确性,进而保证后续对用户认证的正确性。
如图1所示,是本发明实施例声纹模型更新方法的一种流程图,包括以下步骤:
步骤101,获取目标说话人当前登录时间及目标说话人声纹模型上一次的更新时间。
在本实施例中,通过获取目标说话人当前登录时间及目标说话人声纹模型上一次的更新时间,将所述时间范围作为采集声纹模型更新数据的时间范围。目标说话人声纹模型更新周期可以根据用户的习惯来设定,例如,如果用户在某一段时间内登录频繁,而平常登录较少,模型更新时间可以设置较长,如一个月更新一次等;如果用户一直登录频繁,模型更新时间可以设置较短,如一周更新一次等。再比如,可以设定用户登录一定次数后对目标说话人声纹模型 进行更新。
步骤102,将目标说话人声纹模型上一次的更新时间至目标说话人当前登录时间的时间段划分为多个时间聚团。
可以根据预先确定的聚团数N,计算各个时间聚团的大小。
假设目标说话人当前登录时间为T1,声纹模型上一次的更新时间为T2,第i个时间聚团大小为ti,具体如式(1)所示:
其中,λi为影响因子,所述影响因子根据实际应用环境而定,具体取值可以人工设定,也可以通过大量数据训练得出。如实际应用环境在某段时间内网络安全性较差,黑客较多,此时需要相应增加影响因子λi,扩大时间聚团大小ti,防止冒认者说话人在较短时间内连续录入大量语音数据持续将目标说话人模型更新。当时,即为平均划分每个时间聚团大小。
步骤103,获取每个时间聚团内所述目标说话人声纹认证成功时的语音数据。
在实际应用中,在对用户进行声纹认证时,对每次认证成功后,可以记录本次认证成功的目标说话人的语音数据,这样,在后续对声纹模型更新时,即可从这些记录中获取相应的语音数据。
步骤104,从每个时间聚团内认证成功的语音数据中选择语音数据,作为目标说话人声纹模型更新数据。
具体地,可以随机选择各时间聚团内认证成功的语音数据,而且,每个时间聚团内选出的语音数据的条数可以相同,也可以不同,对此本发明实施例不做限定。
另外,为了进一步提高选取出的更新数据的有效性,还可以根据匹配度对各时间聚团内的语音数据进行筛选,具体地,可以获取所述时间聚团内认证成功的各语音数据相对目标说话人声纹模型的匹配度,然后按照匹配度得分选择 语音数据的方式进行筛选,比如:
如果所述匹配度大于设定的第一阈值,则筛选出所述匹配度对应的语音数据;或者
按照匹配度由大到小的顺序对各条语音数据进行排序,筛选出设定条数的语音数据。
所述第一阈值可以为实验结果或经验取值。
同样,在对用户进行声纹认证时,对每次认证成功后,可以记录本次认证成功的语音数据相对目标说话人声纹模型的匹配度,这样,在后续对声纹模型更新时,即可从这些记录中获取相应的匹配度。
因为每个时间段内选择的数据越少,冒认者越不容易冒认。因此为了防止冒认者短时间内密集冒认,还可以对每个时间聚团内筛选出的语音数据进行采样,得到目标说话人声纹模型更新数据。如果一个时间聚团内筛选出的语音数据为0条,则不进行采样,如果为1条,则直接使用,如果大于1条,则可以从中选择1条或多条语音数据,具体采样方法可以为随机采样或其它采样方法。
步骤105,利用所述目标说话人声纹模型更新数据及原声纹模型训练数据重新进行声纹模型训练,得到训练后的新声纹模型。
在本实施例中,根据得到的目标说话人声纹模型更新数据及原声纹模型训练数据重新训练声纹模型,得到新声纹模型。
步骤106,利用所述新声纹模型更新所述目标说话人声纹模型。
即利用步骤105得到的新声纹模型对所述目标说话人声纹模型进行更新。
由于本发明方法将更新周期划分为多个时间聚团,然后从各个时间聚团内认证成功的语音数据中选择得到目标说话人声纹模型更新数据,避免了与目标说话人相似的冒认者说话人在很短时间内连续冒认时,最终导致目标说话人无法认证的问题,保证了目标说话人声纹模型更新的正确性,进而保证了后续对用户认证的正确性。
需要说明的是,本发明实施例的声纹模型更新方法可以应用于各种声纹认证方案中,对此本发明不做限定。
由于不同用户使用频率不同,导致声纹模型更新程度不同,对于使用频率 较高的用户模型匹配度往往偏高,而对于使用频率较低的用户,模型匹配度往往会偏低,即不同用户的模型匹配度分布不一致。
考虑到这种情况,在本发明方法另一实施例中,还可通过零规整方式对用户进行身份认证,以解决上述不同用户的声纹模型更新程度不同而导致的模型匹配度分布不一致的问题。该实施例中,对用户认证的流程如图2所示,包括以下步骤:
步骤201,在对用户进行声纹认证时,获取当前用户的语音数据。
步骤202,计算所述当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度作为待规整匹配度。
匹配度的计算如式(2)所示规整:
其中,P(X|SM)为声纹特征X相对说话人声纹模型SM(Speaker Model,SM)的似然度,P(X|UBM)为声纹特征X相对通用背景模型UBM(Universal Background Model,UBM)的似然度。所述声纹模型SM和通用背景模型UBM可以通过收集数据预先进行构建。
步骤203,对所述待规整匹配度进行零规整,得到规整后的匹配度。
在本发明实施例中,可以利用冒认者说话人在目标说话人模型上匹配度分布的均值μ及标准差σ对上述匹配度进行规整,得到规整后的匹配度S'。
规整后的匹配度分布大致可以被规整到均值为0,方差为1的标准正态分布上,具体如式(3)所示:
其中,S为待规整匹配度。
上述均值μ及标准差σ可以按以下方式来计算:
1.预先收集大量来自不同说话人的语音数据作为种子数据,放入种子集合中;
2.计算所述种子集合中每条语音数据的声纹特征与所述目标说话人声纹模型的匹配度QS,得到匹配度集合,如下式(4)所示:
其中,QSi表示第i条语音数据的声纹特征相对目标说话人模型匹配度,Ai表示第i条语音数据的声纹特征。
3.计算所述匹配度集合中所有匹配度的均值及标准差,并将计算得到的均值及标准差作为冒认者说话人语音数据的声纹特征与所述目标说话人声纹模型匹配度分布的均值及标准差。
具体地,需要计算所述种子集合中每条语音特征相对目标发音人模型匹配度的均值及标准差,具体计算方法如式(5)和式(6)所示:
其中,N表示种子集合中语音条数。
步骤204,判断规整后的匹配度是否大于设定的第二阈值;如果是,则执行步骤205;否则,执行步骤206。
步骤205,认证成功,确定当前用户为目标说话人。
步骤206,认证失败。
所述第二阈值一般可以根据实验结果或经验取值。
本发明实施例提供的声纹认证方法,通过计算当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度进行零规整以得到规整后的匹配度,将其与设定的第二阈值进行比较,判断当前用户是否为目标说话人,由于采用了大量非目标说话人语音数据与目标说话人声纹模型匹配度的均值及标准差,对当前用户语音数据匹配度进行零规整,进一步避免了不同用户的声纹模型更新程度不同导致的模型匹配度分布不一致的问题。
相应地,本发明实施例还提供一种声纹模型更新系统,如图3所示,是该系统的一种结构示意图。
在该实施例中,所述该系统包括:
更新时段获取模块300,用于获取目标说话人当前登录时间及目标说话人声纹模型上一次的更新时间;
划分模块301,用于将目标说话人声纹模型上一次的更新时间至目标说话人当前登录时间的时间段划分为多个时间聚团;
语音数据获取模块302,用于获取每个时间聚团内所述目标说话人声纹认证成功时的语音数据;
模型更新数据获取模块303,用于从每个时间聚团内认证成功的语音数据选择语音数据,作为目标说话人声纹模型更新数据;
训练模块304,用于利用所述目标说话人声纹模型更新数据及原声纹模型训练数据重新进行声纹模型训练,得到训练后的新声纹模型;
模型更新模块305,用于利用所述新声纹模型更新所述目标说话人声纹模型。
上述模型更新数据获取模块303具体可以针对每个时间聚团内语音数据的条数确定该时间聚团内选择的语音数据的条数并随机选择该时间聚团内目标说话人声纹认证成功时的语音数据,不同时间聚团内选择的语音数据的条数可以相同,也可以不同,对此本发明实施例不做限定。
另外,为了进一步使选择的语音数据更有效,模型更新数据获取模块303还可以根据匹配度对每个时间聚团内的语音数据进行筛选。相应地,模型更新数据获取模块303的一种具体结构包括:
获取单元,用于对于每个时间聚团,获取所述时间聚团内的各语音数据相对目标说话人声纹模型的匹配度。
筛选单元,用于筛选出大于设定的第一阈值的匹配度对应的语音数据;或者按照匹配度由大到小的顺序对各条语音数据进行排序,筛选出设定条数的语音数据。
为了进一步防止冒认者短时间内密集冒认,在模型更新数据获取模块303另一实施例中,还可包括:
采样单元,用于对每个时间聚团内筛选出的语音数据进行采样,得到目标说话人声纹模型更新数据。
本发明实施例的声纹模型更新系统通过将声纹更新周期划分为多个时间聚团,然后从各时间聚团内认证成功的语音数据中选择得到目标说话人声纹模型更新数据,然后利用其和原声纹模型训练数据重新训练新的声纹模型,对原 声纹模型进行更新,避免了与目标说话人声纹特征相近的冒认说话人在短时间内连续更新目标说话人声纹模型,使其偏离目标说话人声纹特征,导致目标说话人在后续声纹认证中不能认证成功的问题,保证了目标说话人声纹模型更新的正确性,进而保证了后续对用户认证的正确性。
此外,在实际应用中,不同用户使用声纹认证的频率不同,通常使用频率较高的用户模型匹配度偏高,而使用频率较低的用户,则模型匹配度往往会偏低,即不同用户的模型匹配度分布不一致,因此,为了解决这一问题,如图4所示,所述系统还可进一步包括:
接收模块400,用于在对用户进行声纹认证时,获取当前用户的语音数据;
匹配度计算模块401,用于计算所述当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度作为待规整匹配度;
规整模块402,用于对所述待规整匹配度进行零规整,得到规整后的匹配度;
判断模块403,用于根据所述规整后的匹配度确定当前用户是否为目标说话人,如果规整后的匹配度大于设定的第二阈值,则确定当前用户为目标说话人。
当然,在实际应用中,该系统还可进一步包括:存储模块(未图示),用于保存认证成功的用户(即目标说话人)信息,比如:认证时间、认证成功的语音数据、认证成功的语音数据相对目标说话人声纹模型的匹配度等。这样,上述语音数据获取模块302就可以直接从该存储模块中获取每个时间聚团内所述目标说话人声纹认证成功时的语音数据。
其中,所述规整模块402可以利用大量不同说话人语音数据与目标说话人声纹模型匹配度的均值及标准差,对当前用户的匹配度进行零规整,以得到规整后的匹配度,利用所述规整后的匹配度进行声纹认证。
所述大量不同说话人语音数据与目标说话人声纹模型匹配度的均值及标准差可以通过以下几个模块来获取:
种子数据获取模块,用于预先收集大量来自不同说话人的语音数据作为种子数据,放入种子集合中;
第一计算模块,用于计算所述种子集合中每条语音数据的声纹特征与所述目标说话人声纹模型的匹配度,得到匹配度集合;
第二计算模块,用于计算所述匹配度集合中所有匹配度的均值及标准差,并将计算得到的均值及标准差作为冒认者说话人语音数据的声纹特征与所述目标说话人声纹模型匹配度分布的均值及标准差。
本发明实施例提供的声纹认证系统,通过计算当前用户的语音数据的声纹特征与目标说话人声纹模型的匹配度,将所述匹配度进行零规整以得到规整后的匹配度,将其与设定的第二阈值进行比较,判断当前用户是否为目标说话人,由于采用了大量非目标说话人语音数据与目标说话人声纹模型匹配度的均值及标准差,对当前用户语音数据匹配度进行零规整,进一步避免了不同用户的声纹模型更新程度不同导致的模型匹配度分布不一致的问题。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及系统;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。