闻声识人——声纹识别技术简介

  这是什么概念读者们?折腾来折腾去声纹还是在搞GMM,但一路走来,从最初95年采用的32个高斯分量的GMM,一路飙升到1024、2048、甚至4096(敢这么玩的都是业界土豪)个高斯分量的GMM,模型改改改,公式推推推,折腾到最后一个说话人的声纹模型只需要保存一个400×1的向量就够了?

物联网

  是的!就是这个样子,这也是为什么我用化繁为简来作为文章的副标题,i-vector是如此的简洁优雅,它的出现使得说话人识别的研究一下子简化抽象为了一个数值分析与数据分析的问题:任意的一段音频,不管长度怎样,内容如何,最后都会被映射为一段低维度的定长i-vector。

  我们只需要找到一些优化手段与测量方法,在海量数据中能够将同一个说话人的几段i-vector尽可能分类得近一些,将不同说话人的i-vector尽可能分得远一些。同时Dehak在实验中还发现i-vector具有良好的空间方向区分性,即便上SVM做区分,也只需要选择一个简单的余弦核就能实现非常好的区分性。截至今日,i-vector在大多数情况下仍然是文本无关声纹识别中表现性能最好的建模框架,学者们后续的改进都是基于对i-vector进行优化,包括线性区分分析(Linear Discriminant Analysis, LDA),基于概率的线性预测区分分析(probabilistic linear discriminant analysis,PLDA)甚至是度量学习(Metric Learning)等。

  4. 迷思-文本相关?文本无关?

  既然i-vector在文本无关声纹识别上这么牛逼,那它在文本相关识别上一定也很厉害吧?No!在看似更简单的文本相关声纹识别任务上,i-vector表现得却并不比传统的GMM-UBM框架更好。

  为什么?因为i-vector简洁的背后是它舍弃了太多的东西,其中就包括了文本差异性,在文本无关识别中,因为注册和训练的语音在内容上的差异性比较大,因此我们需要抑制这种差异性;但在文本相关识别中,我们又需要放大训练和识别语音在内容上的相似性,这时候牵一发而动全身的i-vector就显得不是那么合适了。

  5. 进击:我们的youtu-vector

  尽管学术界喜欢更难的挑(zuo)战(si),但工业界在很多时候没法和学术界保持一致。识别稳定,快速,用户体验好,才是一个声纹系统能够落地的核心评价指标。为此,首选的仍然是文本相关识别的应用,而在文本相关识别应用中,安全性最高的仍然是随机数字声纹识别。

  尽管i-vector在文本相关上识别上似乎有点水土不服,但毕竟它在擅长的领域上已经展现了强大的性能。因此,如何能将i-vector的实力应用在我们的任务中,让随机数字声纹识别也能发挥出最大的能量,是优图实验室一致努力的目标。

  针对i-vector弱化语意建模的属性,我们细化了i-vector的表征范围,即我们不再用i-vector针对一整段语音进行建模,而是将i-vector拆解为针对每个数字进行建模,这样i-vector从只表征说话人身份的一段向量细化为了表征身份+数字内容的一个向量。

物联网

  图12:传统的i-vector提取框架,并不针对文本差异进行区分

物联网

  图13:针对数字内容的差异性进行更细粒度的i-vector提取

  这种更细粒度的i-vector划分为i-vector应用于随机数字声纹识别带来了两个明显的改进:

  为了驱动i-vector背后的UBM和全因子矩阵,我们不再需要海量的数据,只需要专注于具体的数字片段切分,极大降低了驱动系统所需的训练数据的规模;

  由于每个i-vector只针对数字进行建模,每个数字i-vector背后的数字UBM和数字全因子矩阵,都不需要像文本无关那样庞大的模型规模,相较于文本无关识别的任务,模型复杂度降低数十倍后,依然能在实际场景下表现出同样好的性能。

  模型的简化带来的直接优势就是计算复杂度和空间复杂度的压缩,同时,尽管需要提取的i-vector数量比过去多了(目标用户语音中包含数字的集合数就是目标用户最终的i-vector集合数),但将提取过程并行化后,这种细化带来的额外计算与存储基本上是可以忽略的。