2. 中国建设银行 信息技术管理部, 北京 100000
2. Information Technology Management Department, China Construction Bank, Beijing 100000, China
说话人识别(speaker recognition)根据输入语音中的说话人个性信息自动识别说话人身份。经过数十年的研究,说话人识别又被称为声纹识别(voiceprint recognition), 能够达到相当好的性能。然而,达到这种性能的前提是有足够高质量的登入语音和测试语音,并且登入语音和测试语音的声学条件需相互匹配[1-2]。当登入语音和测试语音失配时,识别系统性能将会严重下降。这里的失配指的是登入语音和测试语音在噪音、信道、语言和说话风格等方面的不同。
在诸多失配中,语速失配是一种特殊的失配情况,将会导致说话人识别性能下降。语速是指说话人说一段语音的快慢程度,会在说话人和句子2个层面发生变化[3]。当一个人处于正常状态,以平常方式说话,其语速为正常语速。当一个说话人用正常语速的语音登入识别系统,而以非正常语速语音进行测试时,即出现语速失配。在实际应用中,非正常语速并不罕见。比如,一个人情绪激动或面对紧急情况时的语速会比平常语速快一些,相反,当人疲惫或生病时语速会比平常语速慢一些。需要说明的是,并非任何语速失配都会影响识别性能,较小程度的语速失配对识别系统的影响并不明显,但较大程度的语速失配会导致说话人识别系统性能的显著下降。这一影响对快速语音和慢速语音是不同的:语速变快将会导致语音信息减少,而语速变慢可能导致语音频谱的畸变。
语速问题在语音识别中已经有若干研究,例如文[3]在特征提取时通过改变帧频和帧宽对不同语速进行归一化处理。然而,语速在说话人识别中的研究仍然处于初期阶段,如观察语速对说话人识别的影响。如文[4]发现当登入和测试之间语速失配时性能会出现下降,文[5]研究了信道和说话风格(包含语速)失配对识别的影响。一些研究提出了对语速进行补偿的方法,如文[6]提出了基于fMLLR(feature space maximum likelihood linear regression)的特征映射方法,将慢速语音声学特征映射到正常语速的声学特征,提高了语速失配时的识别性能。文[7]中将音素时长作为额外的特征进行建模,并通过归一化方法减少了语速失配的影响。
本文提出基于分数归一化方法的语速补偿算法。在分数归一化(score normalization)算法[8]中,一般选择来自不包含在测试集中的说话人语音组成参考集合(cohort set),对测试集中的每个登入说话人估计参考集中句子对该登入说话人打分的分布。在测试时,对测试语音的分数基于预先估计好的分数分布进行归一化。分数归一化方法中,HT-norm (Handset Test normalization)方法针对不同的信道(handset)估计分数分布。受到HT-norm分数归一化方法启发,如果所选择的参考集合中包含不同语速的语音,则能够有效估计说话人在不同语速下的分数分布,进而对得分进行归一化,减少语速变化对说话人识别的影响。
本文借鉴HT-norm方法,提出分数域语速归一化方法。主要思想是选择包含不同语速的语音作为参考集合,对每个说话人估计参考集合中的句子对该说话人模型的分数分布,根据该分布对测试集分数进行归一化,以减少语速变化对说话人识别的影响。
1 声学特征分析为了直观描述语速变化对说话人识别的影响,本文首先分析正常语速和慢语速下语音声学特征的分布情况。这里的正常语速表示说话人以自然舒适的状态,按照平常速度发音时的速度;而慢语速指说话人以正常语速发音完毕后,以相对较慢的速度进行发音,慢速尺度由说话人自己把握。
首先训练一个通用背景模型(universal background model, UBM), 称之为UBMglobal; 用于训练UBMglobal的语音数据不包含任何针对语速变化而录制的数据,可以认为是正常语速的语音。基于该UBMglobal模型,分别使用CSLT-SPRateDGT 2016中的正常语音和慢速语音通过自适应训练算法(maximum a posteriori, MAP)得到2个UBM, 分别称之为UBMnorm和UBMslow。在自适应算法中,本文只更新了UBMglobal的均值,方差未变。在二维空间通过t-SNE[9-10]绘制这2个通用背景模型的均值,如图 1所示。图中每一个点表示某一Gauss混合成分的均值向量,其中圆点表示UBMnorm的均值向量,三角点表示UBMslow的均值向量。从图 1可以看出,UBMnorm和UBMslow的Gauss混合成分明显相互偏离,表明当登入和测试之间出现语速失配时,确实导致说话人模型的不匹配。
为了更加直观地描述语速变化对说话人识别的影响,本文进行了语速与识别等错误率关系实验。该实验采用Gauss混合模型-通用背景模型(Gaussian mixture model-universal background model, GMM-UBM)框架进行说话人识别,具体实验配置请参考节4.2。本文首先选择370条来自15个说话人的语音,这些均为正常语速下的语音。选定正常语速语音后,通过信号处理工具生成不同语速的语音,比例因子选择为0.4~2.6,变化步长设为0.1。比例因子小于1表示生成相对于原始语音慢速的语音,而比例因子大于1表示生成相对于原始语音快速的语音,总共生成22组测试语音(每组370条),与原始语音一起,总共有23组测试语音。这23组测试语音除了语速以外,其余所有因素均相同,因此这23组测试语音的说话人识别等错误率能够较为准确地反应语速对识别的影响。本文进行的相关实验结果如图 2所示。
由图 2可以看出,除了相对语速为0.9和1.9的位置外,其余位置上等错误率与语速之间的关系呈现“V”字形。这表明语速变化确实导致说话人识别性能下降。另外,从图中可以看出慢速语音导致的等错误率下降幅度比快速语音更显著,这表明语速变慢导致的语音频谱扭曲比语速变快导致的语音信息损失对说话人识别影响更大。
值得注意的是,上述语音生成过程中的比例因子是相对值,而非绝对语速。比如比例因子为0.4表示相对于原始语音生成相对语速为0.4的语音。但是实际测试的语音是已经改变了语速的语音,无法得到原始正常情况下的语音语速,因此有必要研究并定义适合于说话人识别的相对语速。
2 相对语速语速快慢因人而异。对于某一个说话人而言的正常语速,对于另一个人可能会是较快或较慢的语速。因此对于说话人识别,单纯以每秒的音素或音节数衡量语速是不合适的。说话人识别中的语速应该以相对语速,而非绝对语速来衡量。鉴于此,本文首先定义语速如下:
$ {\rm{RelSpd(utt)}} = \frac{{{\rm{spd(utt)}}}}{{{\rm{spd(SPK)}}}}, $ | (1) |
$ {\rm{spd}}(x){\rm{ = }}\frac{{有效语音帧数}}{{音节数}}. $ | (2) |
具体计算时,首先根据某一个说话人的登入语音根据公式(2)计算其语速spd(SPK),然后,对一条测试语音计算spd(utt),最终以作为基准spd(SPK),计算一条语音的相对语速。
3 分数域语速归一化方法说话人识别系统中的决策是基于识别器返回的分数进行的,然而当语速改变时该分数也随之发生变化。分数归一化是一种解决信道失配的方法,比如Z-norm(zero normalization)和T-norm(test normalization)等。通过合理组织数据并运用分数归一化方法能够在分数域对语速进行归一化。本文提出全局语速归一化和局部语速归一化2种方法。
全局归一化(global normalization)方法基于各种语速句子组成的参考集合计算分数分布。在登入注册说话人时,估计该参考集合中的句子在该说话人模型上打分的分数分布。注意该分布是说话人相关的,每个说话人i对应一组分布参数{μi, σi},表示参考集合在该说话人模型上打分的均值与标准差。在测试时,对测试语音u的分数用下式进行归一化:
$ {S_{{\rm{global-norm}}}}\left( u \right) = \frac{{S\left( u \right)-{\mu _i}}}{{{\sigma _i}}}. $ | (3) |
其中S(u)为识别系统返回的分数,通常为对数似然比。
局部归一化(local normalization)对于参考集合以语速进行划分,得到若干针对不同语速的参考子集。对一个登录说话人i,在每个参考子集上进行分数分布统计,得到一组分布参数{μik, σik},其中k代表第k个参考子集。基于该组参数,局部归一化的公式为
$ {S_{{\rm{local-norm}}}}\left( u \right) = \frac{{S\left( u \right)-\mu _i^{k\left( u \right)}}}{{\sigma _i^{k\left( u \right)}}}. $ | (4) |
其中k(u)为测试语音u以其相对语速所属的参考子集。实际计算中,首先根据式(1)计算测试语句的相对语速,然后根据语速值选择参考子集,并基于该子集的归一化参数进行分数归一操作。
4 说话人识别系统构建本文实验基于自行录制的语音数据库CSLT-SPRateDGT 2016,因此需要首先对该数据的构造做一简单介绍。
4.1 CSLT-SPRateDGT 2016语音数据库为研究语速变化对说话人识别的影响,需去除语速之外的其他变化因素。只有保证语速的单一因子变化,才能更精确地研究语速对识别的影响。特别是在数据量有限的时候,一个单一因子变化的数据库至关重要。目前已经有一些数据库可用,但都存在一些非语速因素的干扰。例如,CHAINS数据库[11]包含快速语音和正常语速语音,但该数据库语音录制采用不同信道并且录制语音之间有大致4个月的时间间隔,因此存在信道差异和时变效应。为满足实验要求,本文自行录制了CSLT-SPRateDGT 2016语音数据库。
CSLT-SPRateDGT 2016中的语音数据使用智能手机进行录制,采样频率设为16 kHz,采样位数为16位。在整个录音过程保持手机不变,并且所有人录制内容都是相同的。这就保证了在数据库中只有语速在发生变化。
录制内容为汉语数字串,总共录制26个人的语音。每个人录制给定的30条数字,其中5条数字用于登入,其余25条数字用于测试。每个人以慢速、正常语速和快速3种语速录制给定的25条用于测试的数字,总共录制75条测试语音。
CSLT-SPRateDGT 2016数据库分为2个部分:第1部分为开发集,由15个人的语音数据组成,用于估计分数分布参数,即均值和方差;第2部分为测试集,由11个人的语音数据组成,用于测试说话人识别系统的性能。
4.2 实验 4.2.1 基线系统基线系统采用GMM-UBM框架构建。60维Mel频率倒谱系数(Mel-frequency cepstral coefficients, MFCCs)作为声学特征,包括20位静态特征及其40维动态特征(20维△+20维△△)。提取的MFCC特征经过均值、方差和频率弯折归一化以便消除信道效应。基于能量的语音端点检测方法用于去除静音部分。UBM通用背景模型Gauss混合数设为1 024,通过EM(expectation maximization)算法用5 178条语音训练得到。说话人模型采用Gauss混合模型(Gaussian mixture model, GMM),用说话人自己的5条语音从UBM通过MAP自适应算法得到,在自适应时,只更新UBM的均值。
每个人有25条正常语速语音测试、25条慢速语音测试和25条快速语音测试,每个人总共有75条测试语音。在常规做法中,一般首先测试正常语速语音,然后进行对应的快速语音测试和慢速语音测试。在实验中这种测试完全可以做到,但是在实际应用中,很难获得同一内容的3种语速语音,因此本文除了对正常、快速和慢速3种语速语音进行分开测试外,还将3种语速语音混合后进行测试。测试集包含11个说话人,3种语速测试,每组3 025次测试。混合测试总共有9 075条识别测试。基线系统通过Kaldi[12]工具包构建。
表 1给出基线系统等错误率。可以看出登入和测试语速均为正常语速时得到较好等错误率,而当测试语音语速为快速或慢速时,等错误率急剧下降,尤其是慢速语音。语速变慢时导致的EER下降大于语速提高导致的下降,这一结果与图 2中的结论一致。除了3种语速语音单独测试外,不同语速语音混合测试的等错误率较高。由于该混合测试集中包含3 025次慢速语音测试和3 025次快速语音测试,这些测试导致了EER上升。考虑到实际应用场景中不可能有测试语音语速标记,因此本文选取不同语速语音混合测试作为本文的基线系统。
4.2.2 分数域语速归一化方法
在应用全局归一化方法时,由来自CSLT-SPRateDGT 2016数据库开发集15个说话人的1 110条语音组成参考集合,对测试集中的11个说话人,登入时估计其对参考集合中的语音的分数分布,计算均值和方差,与说话人Gauss混合模型一并保存。在测试时,对识别系统返回的分数,无论是何种语速语音,根据当前测试的目标说话人对参考集合的分数分布进行分数归一化,其归一化后的等错误率如表 2所示。
局部归一化方法中,以测试语音的语速选择相应的参考子集,以该子集对应的分数分布参数进行归一化。本文对参考集合中的语音以相对语速分为如下4个子集:(0—0.6; 0.6—1.7; 1.7—2.3; >2.3)。根据该子集划分,对每个说话人估计4种分数分布参数,测试时根据测试语音的相对语速,选择合适语速区间和对应的分数分布参数进行归一化。局部归一化方法的实验结果如表 2所示。
从表 2可以看出,全局归一化方法明显降低了识别等错误率,等错误率相对减少17.77%,而局部归一化方法效果不明显,等错误率相对减少4.58%。理论上,根据测试语音相对语速进行更加细致的归一化应该更为有效,但因为本文所用的数据有限,当对这些有限数据进行子集划分时,相应子集中的数据更少,产生数据稀疏问题,由此估计的分数分布不能准确刻画相应参考语音的分数分布。可以想象,如果每一子集中的语音数据足够充分,则局部归一化方法性能应该好于全局归一化方法。
解决数据稀疏问题的直接途径是采集更多的语音数据,保证不同语速语音有充足的训练数据。然而语音采集工作耗时耗力,不是解决数据稀疏问题的有效方法。本文通过信号处理工具,对原始语音进行速度调整,从而自动生成大量不同语速的语音,由此扩展参考集合。实验中,首先选择开发集中正常语速语音(共计370条),然后设定速度调节比例因子,生成相对于原始正常语速语音较快或较慢的语音。当比例因子小于1时,生成相对于原始语音较慢的语音,大于1时生成相对于原始语音较快的语音。
在设定比例因子时,以0.4作为起点,以0.1作为区间长度,以2.6作为终点,在特定区间中生成服从均匀分布的370个比例因子值,然后根据这些比例因子值生成不同语速的语音,生成语音共计8 140条,与原始1 110条语音一起总共有9 250条参考语音。基于这一扩展的参考集合,采用全局归一化方法和局部归一化方法,得到的识别结果如表 3所示。
参考集合语音数目 | EER/% | ERR /% | |
基线系统 | — | 5.46 | — |
全局归一化 | 1 110 | 4.49 | 17.77 |
局部归一化 | 1 110 | 5.21 | 4.58 |
全局归一化 | 9 250 | 3.88 | 28.94 |
局部归一化 | 9 250 | 3.64 | 33.33 |
从表 3可以看出,对原始参考集进行自动语音生成扩展后,局部归一化方法性能优于全局归一化方法(EER分别为3.64%和3.88%),全局归一化方法性能也比原先参考集合下的归一化效果好很多。2种方法显著提高了识别性能,等错误率相对基线系统分别相对减少28.94%和33.33%。
5 结论本文通过分数域语速归一化方法降低语速变化对说话人识别的影响。首先录制了适合研究语速变化的CSLT-SPRateDGT 2016数据库,该数据库保证除了语速以外其他因素基本保持一致,因此有利于对语速影响的集中研究。本文提出了全局和局部2种分数归一化方法,并针对局部归一化方法中出现的数据稀疏问题,通过人工生成语音的方法解决了对参考集合进行分组估计时出现的数据稀疏问题。实验证明,经过上述归一化方法和数据扩展方法,说话人识别在复杂语速条件下的等错误率可相对减少33.33%。下一步工作将研究如何对不同说话人划分不同的语速区间,以便更加准确地估计说话人对参考集合的分数分布特性。
[1] | CAMPBELL W M, CAMPBELL J P, REYNOLDS D A, et al. Support vector machines for speaker and language recognition[J]. Computer Speech & Language, 2006, 20(2): 210–229. |
[2] | BIMBOT F, BONASTRE J F, FREDOUILLE C. A tutorial on text-independent speaker verification[J]. EURASIP Journal on Applied Signal Processing, 2004(1): 430–451. |
[3] | CHU M S, POVEY D. Speaking rate adaptation using continuous frame rate normalization[C]//Proceedings of the International Conference on Acoustics, Speech and Signal Processing. Dallas, TX, [1] CAMPBELL W M, CAMPBELL J P, REYNOLDS D A, et al. Support vector machines for speaker and language recognition[J]. Computer Speech & Language, 2006, 20(2): 210-229. http://ieeexplore.ieee.org/document/5495656/ |
[4] | XU M X, ZHANG L P, WANG L L. Database collection for study on speech variation robust speaker recognition[C]//Proceedings of the Oriental Chapter of the International Committee for the Co-ordination and Standardization of Speech Databases and Assessment Techniques. Kyoto, Japan: IEEE, 2008. http://www.researchgate.net/publication/265816109_Database_Collection_for_Study_on_Speech_Variation_Robust_Speaker_Recognition |
[5] | MARCO G, CUMMINS F. Speech style and speaker recognition: A case study[C]//Proceedings of the Interspeech. Brighton, UK: IEEE, 2009. https://www.researchgate.net/publication/221484541_Speech_style_and_speaker_recognition_a_case_study |
[6] | ASKAR R, LI L T, WANG D, et al. Feature transformation for speaker verification under speaking rate mismatch condition[C]//Proceedings of the Asia-Pacific Signal and Information Processing Association. Jeju, Korea: IEEE, 2016. http://ieeexplore.ieee.org/document/7820824/ |
[7] | VAN HEERDEN C J, BARNARD E. Speech rate normalization used to improve speaker verification[J]. SAIEE Africa Research Journal, 2007, 98(4): 129–135. |
[8] | BEIGI H. Fundamentals of speaker recognition[M]. New York, USA: Springer, 2011. |
[9] | MAATEN L, HINTON G. Visualizing data using t-SNE[J]. Journal of Machine Learning Research, 2008, 9: 2579–2605. |
[10] | van der MAATEN L, HINTON G. Visualizing non-metric similarities in multiple maps[J]. Machine Learning, 2012, 87(1): 33–55. DOI:10.1007/s10994-011-5273-4 |
[11] | CUMMINS F, GRIMALDI M, LEONARD T, et al. The chains corpus: Characterizing individual speakers[C]//Proceedings of the International Conference on Speech and Computer (SPECOM), St. Petersburg, Russia: Springer, 2006: 431-435. https://www.researchgate.net/publication/228682266_The_chains_corpus_Characterizing_individual_speakers |
[12] | POVEY D, GHOSHAL A, BOULIANNE G, et al. The KALDI speech recognition toolkit[C]//Proceedings of the Automatic Speech Recognition and Understanding (ASRU). Hawaii, HI, USA: IEEE, 2011. USA: IEEE, 2010: 4306-4309. https://www.researchgate.net/publication/228828379_The_Kaldi_speech_rec |