在过去的20年中,学界研究的重点大部分放在了更具挑战性的文本无关识别上(科学家の精神…),所取得的突破也都是围绕着文本无关的识别展开。美国国家标准技术局(National Institute of Standard and Technology,NIST)从90年代开始都会不定期地举办声纹识别评测竞赛(Speaker Recognition Evaluation, NIST SRE)[1],也是针对文本无关的识别进行评测,吸引了学术界和工业界的诸多重量级团队参与。
2014年,在语音界的学术盛会interspeech上,新加坡的I2R实验室发布了一套用于评测文本相关识别的标准数据集RSR 2015,涵盖了文本相关领域的多个应用场景[2]。自此,文本相关识别的研究热度开始渐渐提升,而近几年大热的“深度学习”也是最先在文本相关识别上取得了比较大的突破 [3]。这里不再过多展开,有兴趣的读者可以参考各大学术数据库的资源,或者和我们团队进行交流。
而从识别的场景上考虑的话,声纹识别又可以分为说话人辨识(Speaker Identification,SI)和说话人确认(Speaker Verification,SV)两个不同的应用场景:SI指的是我们有了一段待测的语音,需要将这段语音与我们已知的一个集合内的一干说话人进行比对,选取最匹配的那个说话人。
这方面的应用案例是刑侦比对,暗中收集到的一段嫌疑人(身份未知)的声音,需要与数个可能的嫌疑人身份进行比对,选取最相似的那一个,则我们就可以认为收集到的这段语音在很大程度上就是来自于锁定的这个嫌疑人,SI是一个1对多的判别问题;而SV指的是我们只有一个目标身份,对于一段未知的语音,我们只需要判断这段语音是否来源于这个目标用户即可,SV本质上是一1对1的二分类问题。这方面典型的应用是手机端的声纹锁或声纹验证工具,对于一段验证语音,系统只需要回答“通过”或者“拒绝”即可。而SI可以间接分解为多个SV的问题,因此对于声纹识别系统性能的评测多是以SV的方式进行。
2. 动中取静-从离散信号到特征
前面提到了,声纹之所以能被识别,是因为每个人的口腔、鼻腔与声道结构都存在唯一的差异性,但这种差异性既看不到又摸不着,更要命的是,它是一个时刻都在运动着的器官构造。我们只能通过录音设备采集到的离散语音信号,间接去分析发声器官的差异性。
既然语音一直在变,那我们该如何去对语音进行分析呢?答案是:语音具备了一个良好的性质,称为短时平稳,在一个20-50毫秒的范围内,语音近似可以看作是良好的周期信号。
图5:图1中话者A“四”的发声中截取出的30毫秒长度的信号。
这种良好的平稳性为我们针对语音进行信号处理层面的分析提供了极大的便利。读者都应该还记得,在音调,响度和音色这三个声音(注意,这里我用了声音,而不是语音)的基本属性中,音色是最能反映一个人身份信息的属性(讲道理,老婆对你吼的时候,响度和音调都可以极速飙升,但老婆的音色是不大会发生剧烈变化的)。
而音色上的差异在信号处理的层面可以表示为在频域不同频段能量的差异,因此我们通过抽取不同频段上的能量值,即可以表示在这个短时语音范围内频谱的性质。通常我们会综合考虑人耳的听觉属性(人耳的一个听觉属性是在可听到的频段内,对于低频的变化更加敏感,而对于高频相对弱一些)、均衡不同频段的能量差异(对于一段8KHz采样的音频,尽管语音会分布于0-4KHz的范围内,但能量更多的集中在相对比较低频的区域)、噪声鲁棒性(我们希望特征只对语音的变化敏感,而对其他噪声等无关信息不变)以及后续的计算便利(系数之间尽可能要去除相关性)设计合适的短时声学特征,通过一系列复杂的信号处理层面的变换,一段20-50毫秒长度的语音(以8KHz采样为例,这个长度的语音对应着160-400个采样点)可以映射为一段39-60维的向量。为了充分保留语音中的原始信息,同时不增加计算的负担,通常会以15-20毫秒为间隔依次取短时段语音,然后提取特征。
图6:短时声学特征的提取
在声纹识别,包括语音识别领域,传统的声学特征包括梅尔倒谱系数MFCC、感知线性预测系数PLP、近几年的逐渐受到关注的深度特征Deep Feature [4]、以及15年公开发表的能量规整谱系数PNCC [5]等,都能作为声纹识别在特征提取层面可选且表现良好的声学特征。