声纹识别--基础学习笔记

news2024/11/30 4:56:29
  1. 由于每个人的声道、口腔和鼻腔(发音要用到的器官)也具有个体差异性。因为反映到声音上,也是具有差异性的。就比如说,当在接电话的时候,通过一声"喂",就能准确的分辨出接电话的是谁,人耳作为身体的接收器生来就具有分辨声音的能力,那么也可以通过技术的手段,使声纹也可以向人脸、指纹那样作为“个人身份认证”的重要信息。
  2. 识别性能好坏的关键在于对语音中身份信息的建模能力与区分能力,同时对于身份无关的其余信息具有充分的抗干扰能力和鲁棒性。
  3. 通用背景模型(UBM)
    1. 可以用UBM和少量的说话人数据,通过自适应算法(如最大后验概率MAP、最大似然线性回归MLLR等)来得到目标说话人模型。
    2. 思路:可以从其他地方收集到大量非目标用户的声音,将这些非目标用户数据(声纹识别领域称为背景数据)混合起来充分训练出一个GMM,这个GMM可以看作是对语音的表征,但是又由于它是从大量身份的混杂数据中训练而成,它又不具备表征具体身份的能力。可以把这种模型看作是某一个具体说话人模型的先验模型。形象的比方就是说你准备去相亲,媒人给你看了小莉的照片,你耳边浮现的肯定是小莉各种可能的温柔的声音,而不是你家旺财的叫声。这种GMM-UBM就是起到类似的作用,它对语音特征在空间分布的概率模型给出一个良好的预先估计,使得可以提前训练GMM。然后将目标用户的数据在这个模型上进行参数的微调即可。GMM-UBM模型最重要的优势就是通过MAP算法对模型参数进行估计,避免了过拟合的发生,同时不必调整目标用户GMM的所有参数(权重,均值,方差)只需要对各个高斯成分的均值参数进行估计,就能实现最好的识别性能。 根据实验表明,这可以让待估的参数减少超过一半,越少的参数也意味着更快的收敛,不需要那么多的目标用户数据即可模型的良好训练。
    3. 算法逻辑:使用背景数据通过EM算法训练UBM模型,然后在使用目标用户训练数据通过最大后验估计MAP训练UBM模型,就可以得到目标用户GMM.
    4. 本质:用其他用户的数据来进行“预训练”,减少对真正目标用户的训练时间和参数调整。
    5. 在GMM-UBM系统框架中,UBM拟合出大量说话人的特征分布,目标用户的数据散落在UBM某些高斯分布的附近。其中自适应的过程就是将UBM的每个高斯分布向目标用户数据偏移。极大后验概率(MAP)算法就是解决这种问题的算法之一。
    6. 对目标用户的GMM模型自适应的过程分为两个步骤:
      1. 首先,使用目标说话人的训练数据计算出UBM模型的新参数(高斯权重、均值和方差);
      2. 将得到的新参数与UBM模型的原参数进行融合,从而得到目标说话人的模型。
    7. 具体计算方法:
      1. 给定GMM模型和目标说话人的训练矢量集X = (X1, X2...XT)。计算新的参数。计算Xi和UBM中中第i个高斯分布的相似度:计算新的权重、均值和方差参数:
      2. 由第一步得到的新参数和UBM原参数融合,得到最终的目标说话人模型,其中,自适应参数{α_i^w,α_i^m,α_i ^v}用于调节新参数和UBM参数对最终模型的影响。归一化因子(可以理解为权重值的权重)γ可以保证各混合度的权重满足:
      3. 具体自适应参数的取值与具体模型有关GMM-UBM系统框架,是GMM模型的一个推广,是用于解决当前目标说话人数据量不够的问题的一种方式。通过收集其他说话人数据来进行一个预先的训练。通过MAP算法的自适应,将预先训练过的模型向目标说话人模型进行微调。这种方式可以大大减少训练所需要的样本量和训练时间(通过减少训练参数)。
  4. i-vector:
    1. 在实际应用中,由于说话人语音中说话人信息和各种干扰信息掺杂在一起,不同的采集设备的信道之间也具有差异性,会使我们收集到的语音中掺杂信道干扰信息。这种干扰信息会引起说话人信息的扰动。传统的GMM-UBM方法,没有办法克服这一问题,导致系统性能不稳定。
    2. 在GMM-UBM模型里,每个目标说话人都可以用GMM模型来描述。因为从UBM模型自适应到每个说话人的GMM模型时,只改变均值,对于权重和协方差不做任何调整,所以说话人的信息大部分都蕴含在GMM的均值里面。GMM均值矢量中,除了绝大部分的说话人信息之外,也包含了信道信息。联合因子分析(Joint Factor Analysis, JFA)可以对说话人差异和信道差异分别建模,从而可以很好的对信道差异进行补偿,提高系统表现。但由于JFA需要大量不同通道的训练语料,获取困难,并且计算复杂,所以难以投入实际使用。
    3. JFA方法是对说话人差异空间以与信道差异空间分别建模,而基于I-Vector的方法是对全局差异进行建模,将其二者作为一个整体进行建模,这样处理放宽了对训练语料的限制,并且计算简单,性能也相当。
    4. 由于I-Vector矢量中不仅包含说话人差异信息,同时也存在信道差异信息,不光需要去除I-Vector矢量中的信道干扰,同时还需要信道补偿技术来消除信道干扰。
    5. 均值超矢量(supervector)是GMM-UBM模型的最终结果。在GMM-UBM框架下,说话人模型是从UBM模型自适应得到的,过程中只改变了均值的大小,因此说话人之间的区别信息都蕴含在GMM的均值矢量中。将说话人GMM模型的每个高斯成分的均值堆叠起来,形成一个高维的超矢量,即为均值超矢量。
    6. 假设语音声学特征参数的纬度为P,GMM的混合度为M(M个高斯成分),那么这个GMM的均值超矢量的维度为MP。
    7. 信息冗余是高维数据分析常见的问题,使用因子分析方法,可以将一些信息重叠和复杂的关系变量简化为较少的足够描述原有观测信息的几个因子,是一种数据降维的统计方法。JFA和I-vector都为因子分析方法。
    8. 因子分析:
      1. 设P维的观察矢量x可以用n个因子组合得到,它们之间的关系:x=u+Az+e
        1. μ为观测矢量x的均值,即E[x] = μ (期望);
        2. 矢量z为不可观测的变量,称为隐藏因子;
        3. 矩阵A为因子荷载矩阵;
        4. 矢量e为误差矢量。
        5. 可以理解为,因子分析法认为高维数据样本实际上是由低维数据样本经过线性变化,叠加误差扰动生成的。
      2. 因子分析的实质是认为m个n维特征的训练样例,x^(i)(x_1^(i),x_2^(i),...,x_n^(i) )的产生过程如下:
        1. 首先在一个k维的空间中按照多元高斯分布生成m个z^(i) (k维向量)
        2. 然后存在一个变换矩阵Λ∈R^(nxk) ,将 z^(i) 映射到n维空间中,即Λz^(i) 。因为z^(i) 的均值是0,映射后仍然是0.
        3. 然后将Λz^(i) 加上一个均值u(n 维),即u+Λz^(i) 对应的意义是将变换后的Λz^(i) (n维向量)移动到样本x^(i)的中心点u
        4. 由于真实样例x^(i)与上述模型生成的有误差,因此继续加上误差ε(n维向量,且符合多元高斯分布), u+Λz^(i) +ε
    9. 联合因子分析(Joint Factor Analysis,JFA)认为,说话人的GMM模型的差异信息,是由说话人差异和信道差异这两个不可观测的部分组成的,公式如下:M=s+c,s为说话人相关的超矢量,表示说话人之间的差异;
      1. c为信道相关的超矢量,表示同一个说话人不同语音段的差异;
      2. M为GMM均值超矢量,表述为说话人相关部分s和信道相关部分c的叠加。
      3. JFA定义公式:s=m+Vy+Dz c=Ux
        1. s为说话人相关的超矢量,表示说话人之间的差异;
        2. m为与说话人以及信道无关的均值超矢量;
        3. V为低秩的本征音矩阵;
        4. y为说话人相关因子;
        5. D为对角的残差矩阵;
        6. z为残差因子;
        7. c为信道相关的超矢量,表示同一个说话人不同语音段的差异;
        8. U为本征信道矩阵;
        9. x为与特定说话人的某一段语音相关的因子。
        10. 这里的超参数集合{V,D,U}即为需要评估的模型参数。
      4. 基于以上,可以将均值超矢量重新改写为:M=m+Vy+Ux+Dz
      5. JFA(联合因子分析)方法的思想是使用GMM超矢量空间的子空间对说话人差异和信道差异分别建模,从而可以方便的分类出信道干扰。但JFA模型中,信道因子中也会携带部分说话人的信息,在进行补偿时,会损失一部分说话人信息。
    10. 所以提出了全局差异空间模型,将说话人差异和信道差异作为一个整体进行建模。这种方法改善了JFA对训练语料的要求,和计算复杂度高的问题,同时性能也与JFA相当,逐渐流行起来。给定说话人的一段语音,与之对应的高斯均值超矢量可以定义为如下:M=m+Tw
      1. M为给定语音的高斯均值超矢量;
      2. m为通用背景模型(UBM)的高斯均值超矢量,该超矢量与具体说话人以及信道无关;
      3. T为全局差异空间矩阵,低秩;
      4. w为全局差异空间因子,它的后验均值,即为I-Vector矢量,它先验地服从标准正态分布。
      5. 相对于JFA而言,I-Vector的计算量大大降低,可以应对大规模数据,同时因为I-Vector本身具有不错的跨信道能力和PLDA信道补偿法的引入,I-Vector对信道的鲁棒性也比JFA更好。
      6. M和m是可以计算的出的,而全局差异空间矩阵(T)和全局差异空间因子(w)是我们需要估计的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/87659.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习基础笔记四十八——面向对象2

1、类中的属性:静态属性。 class Person:country China # 类属性,静态属性def __init__(self, name, age): # 初始化方法,self是必须传的参数,且放在在第一个self.name name # 往字典里添加属性self…

EVE-NG上互联网 使用cloud节点和NAT转发

EVE-NG上互联网 使用cloud节点和NAT转发一、配置一块进行NAT转发的网卡二、配置nat转发规则-iptables三、使能linux内核转发流量四、测试一、配置一块进行NAT转发的网卡 sudo vi /etc/network/interfaces 选择# Cloud devices下面的1个网卡,pnet1-pnet9任意一个都可…

电脑上如何进行屏幕录制,笔记本电脑录屏怎么录

电脑上如何进行屏幕录制?如果你在日常工作娱乐中有录屏的需求,并且想进一步了解电脑录屏的相关操作步骤,请认真看以下内容!小编会给大家分享几种简单的电脑录屏方法。 方法一:PPT屏幕录制 PPT想必大家都很熟悉&#x…

关于sysdiag的利用

背景 因为之前装了某绒,某绒又有一个比较好用的ark工具某绒🗡,想着应该有机会利用一下它的驱动。 接着在driver下面找到了它的驱动,简单分析了一下,发现有可以利用的ioctl。这里有duphandle,操作和之前的p…

操作系统学习笔记_5 IO;缓冲区

I/O 设备 I/O 设备分类 按使用特性分类 人机交互类外设:如鼠标打印机键盘等。数据传输慢。 存储设备:移动硬盘、光盘等,数据传输速率快。 网络通信设备:调制解调器等用于网络通信,速度中等。 按速率分类 低速设…

组合模式详解

简介:就是树状图结构的多个类 Component(抽象构件):它可以是接口或抽象类,为叶子构件和容器构件对象声明接口,在该角色中可以包含所有子类共有行为的声明和实现。在抽象构件中定义了访问及管理它的子构件的…

常见react面试题

React组件命名推荐的方式是哪个? 通过引用而不是使用来命名组件displayName。 使用displayName命名组件: export default React.createClass({ displayName: TodoApp, // ...})React推荐的方法: export default class TodoApp extends …

【实时数仓】CDC简介、实现DWD层业务数据的处理(主要任务、接收kafka数据、动态分流*****)

文章目录一 CDC简介1 什么是CDC2 CDC的种类3 Flink-CDC二 准备业务数据-DWD层1 主要任务(1)接收Kafka数据,过滤空值数据(2)实现动态分流功能(3)把分好的流保存到对应表、主题中2 接收Kafka数据&…

VCL界面组件DevExpress VCL v22.1 - 支持新的格式标签和矢量图标

DevExpress VCL是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程…

Altium Designer 22 安装过程

Altium Designer 22 安装过程1、开始安装 Altium Designer,点击 Next 2、选择需要安装的语言,勾选上接受协议,然后点击 Next 3、默认即可,其中 Touch Sensor Support 主要是用于触摸屏,然后点击 Next 4、接着&#xff…

C#语言实例源码系列-实现自己的进程管理器

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中…

CENTO OS上的网络安全工具(十七)搭建Cascade的Docker开发环境

这一篇,我们继续在Docker上折腾。之前我们已经展示了如何在容器上搭建安全产品的部署环境,这里我们需要更进一步,讨论如何在容器上搭建开发与调试环境。这是学习安全产品并且自己构建安全产品的基础步骤。 一、 构建开发镜像 鉴于前期我们…

如何使用 AWS 和 ChatGPT 创建最智能的多语言虚拟助手

上周ChatGPT发布了,每个人都在尝试令人惊奇的事情。我也开始使用它并想尝试它如何使用AWS的AI 服务进行集成,结果非常棒! 在这篇文章中,我将逐步解释我是如何创建这个项目的,这样你也可以做到! 最重要的是…

Tuxera NTFS2023免费版Mac电脑系统读写软件

使用 Mac 的巨大痛点之一:移动硬盘只能打开文件,但是无法写入新的资料ntfs。有人说格式化硬盘,改成苹果的 macOS扩展格式,但是原先硬盘的数据要转移,而且拿到 Windows 系统里无法被识别。 有人说格式化硬盘&#xff0…

C++ Reference: Standard C++ Library reference: Containers: list: list: emplace

C官网参考链接&#xff1a;https://cplusplus.com/reference/list/list/emplace/ 公有成员 <list> std::list::emplace template <class... Args> iterator emplace (const_iterator position, Args&&... args);构造并插入元素 通过在position上插入一个…

SpringMVC+SSM整合(完整版)

文章目录一、SpringMVC&#xff08;一&#xff09;SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点4、MVC的工作流程&#xff08;二&#xff09;入门案例1、创建maven工程①引入依赖②配置web.xml③扩展配置方式2、总结&#xff08;三&#xff09;RequestMappi…

大学生个人网页模板 简单网页制作作业成品 极简风格个人介绍HTML网页设计代码下载

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

TZ-PEG-N3 四嗪聚乙二醇叠氮 Tetrazine-PEG-azide

四嗪可用于许多生物成像和生物共轭应用的生物正交反应。目前被广泛应用于蛋白质特定位点功能阐释、亚细胞结构选择性标记、药物靶向传递、活体动物分子影像和生物兼容性材料的制备等。 产品名称 Tetrazine-PEG-N3 四嗪聚乙二醇叠氮 中文名称 四嗪聚乙二醇叠氮 英文名称 …

[附源码]Nodejs计算机毕业设计基于Web的摄影爱好者交流社区Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

java计算机毕业设计ssm在线学习交流平台97t28(附源码、数据库)

java计算机毕业设计ssm在线学习交流平台97t28&#xff08;附源码、数据库&#xff09; 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff0…