基于深度学习的有监督语音分离在学术界和工业界越来越受到关注,也是深度学习在语音领域的应用中重要的一部分。这个主题社长曾经邀请搜狗语音研究员文仕学做过分享。
以下是他的分享内容,点击查看更多往期回顾:

文仕学首先介绍了“语音分离”(Speech Separation)是怎么样的一种任务。这个问题来自于“鸡尾酒会问题”,采集的音频信号中除了主说话人之外,还有其他人说话声的干扰和噪音干扰。语音分离的目标就是从这些干扰中分离出主说话人的语音。

根据干扰的不同,语音分离任务可以分为三类:

1、当干扰为噪声信号时,可以称为“语音增强”(Speech Enhancement)
2、当干扰为其他说话人时,可以称为“多说话人分离”(Speaker Separation)
3、当干扰为目标说话人自己声音的反射波时,可以称为“解混响”(De-reverberation)

由于麦克风采集到的声音中可能包括噪声、其他人说话的声音、混响等干扰,不做语音分离、直接进行识别的话,会影响到识别的准确率。因此在语音识别的前端加上语音分离技术,把目标说话人的声音和其它干扰分开就可以提高语音识别系统的鲁棒性,这从而也成为现代语音识别系统中不可或缺的一环。

基于深度学习的语音分离,主要是用基于深度学习的方法,从训练数据中学习语音、说话人和噪音的特征,从而实现语音分离的目标。


这次分享的内容有以下这5个部分:分离使用的模型、训练目标的设置、训练数据的生成、单通道语音分离算法的介绍和讨论。

一、基于深度学习的语音分离方法使用的模型

第一类模型是多层感知机,DNN,可以先做RBM预训练,再做微调(fine-tune);不过文仕学介绍,他们团队通过实验发现,在大数据集上不需要预训练也可以收敛。

LSTM(长短时记忆网络)的方法中把语音作为一个随时间变化的序列进行建模,比较适合语音数据;CNN(卷积神经网络)通过共享权值,可以在减少训练参数的同时获得比全连接的DNN更好的性能。

近些年也有人用GAN(对抗性生成式网络)做语音增强。模型中通常会把生成器设置为全部是卷积层,为了减少训练参数从而缩短训练时间;判别器负责向生成器提供生成数据的真伪信息,帮助生成器向着“生成干净声音”的方向微调。

二、训练目标的设置
训练目标包括两类,一类是基于Mask的方法,另一类是基于频谱映射的方法。

基于Mask的方法又可以分为几类:

1、理想二值掩蔽”(Ideal Binary Mask)中的分离任务就成为了一个二分类问题。这类方法根据听觉感知特性,把音频信号分成不同的子带,根据每个时频单元上的信噪比,把对应的时频单元的能量设为0(噪音占主导的情况下)或者保持原样(目标语音占主导的情况下)。

2、第二类基于Mask的方法是IRM(Ideal Ratio Mask),它同样对每个时频单元进行计算,但不同于IBM的“非零即一”,IRM中会计算语音信号和噪音之间的能量比,得到介于0到1之间的一个数,然后据此改变时频单元的能量大小。IRM是对IBM的演进,反映了各个时频单元上对噪声的抑制程度,可以进一步提高分离后语音的质量和可懂度。


*TBM与IRM类似,但不是对每个时频单元计算其中语音和噪声的信噪比,而是计算其中语音和一个固定噪声的信噪比;

*SMM是IRM在幅度上的一种形式;

*PSM中加入了干净语音和带噪语音中的相位差信息,有更高的自由度;

虽然基于Mask的方法有这么多,但最常用的还是开头的IBM和IRM两种

如果使用频谱映射,分离问题就成为了一个回归问题。

频谱映射可以使用幅度谱、功率谱、梅尔谱以及Gammatone功率谱。Gammatone是模拟人耳耳蜗滤波后的特征。为了压缩参数的动态范围以及考虑人耳的听觉效应,通常还会加上对数操作,比如对数功率谱。

基于频谱映射的方法,是让模型通过有监督学习,自己学习有干扰的频谱到无干扰的频谱(干净语音)之间的映射关系;模型可以是DNN、CNN、LSTM甚至GAN。

这一页是使用相同的DNN模型、相同的输入特征、不同的训练目标得到的结果。

左边的STOI指语音的可懂度,得分在0到1之间,越高越好;右边的PESQ是语音的听觉质量、听感,范围为-0.5到4.5,也是越高越好。

基于Mask的方法STOI表现较好,原因是有共振峰的能量得到了较好的保留,而相邻共振峰之间波谷处的声音虽然失真较大,但人耳对这类失真并不敏感;两类方法在PESQ中表现相当。

三、训练数据的生成

针对语音分离中的语音增强任务,首先可以通过人为加噪的方法生成带噪语音和干净语音对,分别作为输入和输出(有标注数据),对有监督学习模型进行训练。加入的噪声可以是各种收集到的真实世界中的噪声。

不过收集噪声需要成本,而且人工能够收集到的噪音总是有限的,最好能够有一套完备、合理的方案,用仿真的方式生成任意需要的噪声。 在今年的MLSP(信号处理机器学习)会议上,搜狗语音团队就发表了一项关于噪声基的工作,通过构造一个噪声基模型,在不使用任何真实噪音数据的情况下,生成带噪语音对语音增强模型进行训练,达到了与使用50种真实噪音的情况下相当的性能(下图)。


如果将这50种真实噪声和噪声基产生的数据混合在一起,性能可以比单独使用真实噪音的情况得到进一步提高。这也说明噪声基生成的噪声和真实噪声数据之间有着互补性,在实际应用中也可以解开一些真实噪声数据不足带来的限制。

四、单通道语音分离算法

如开头所说,语音分离任务可以分为三类,语音增强、多说话人分离和解混响。不同任务的处理方法也有所不同。

对于语音增强,基于Mask的方法首先进行耳蜗滤波,然后特征提取、时频单元分类、二值掩蔽、后处理,就可以得到增强后的语音了。


语音增强的另一类基于频谱映射的方法中,先特征提取,用深度神经网络学习带噪语音和干净语音的对数功率谱之间映射关系,再加上波形重建,就可以得到增强后的语音。

基于有监督学习的算法都存在推广性(generalization)的问题,语音增强这里也不例外。针对噪音类型、信噪比和说话人的推广性都还有提升的空间。

对于解混响,同样可以使用基于频谱映射的方法。解混响中也需要生成训练数据,但不同于带噪语音生成时做时域的相加,带混响的语音是在时域上进行卷积;同样都把干净语音作为带标注数据。

在基于频谱映射的方法基础上还可以加以改进。对于不同的混响时间,深度神经网络需要学习的时间窗口长度是不一样的,因而改进方法中加入了告知混响时间的功能,根据帧移R和扩帧数目N提特征后解码,可以获得更好的解混响效果。

多说话人分离分为三种情况:
1、目标说话人和干扰说话人都固定,Speaker dependent,
2、有监督分离目标说话人固定,训练阶段和测试阶段的干扰说话人可变,Target dependent,
3、半监督分离目标说话人和干扰说话人都可变,Speaker independent,无监督分离

对于有监督和半监督分离,可以使用基于频谱映射的方法,与前面使用基于频谱映射的方法做语音增强类似。

对于无监督分类,有无监督聚类、深度聚类以及最近的序列不变训练(PIT)方法。PIT方法的核心是红框中标出的部分,在误差回传的时候,分别计算输出序列和标注序列间各种组合的均方误差,然后从这些均方误差中找到最小的那个作为回传误差,也就是根据自动找到的声源间的最佳匹配进行优化,避免出现序列模糊的问题。

五、讨论两个问题

最后,文仕学给大家留了两个思考题,欢迎大家在评论给出自己的见解。

第一个问题是语音分离任务中,是按传统思路先变换到频域,然后在频域上进行处理,还是直接在时域上处理比较好?后者的好处是端到端训练,不用考虑频域方法做傅立叶反变换时相位的问题。

第二个问题是对于语音增强任务,应该使用真实噪声加噪还是使用人工仿真生成的噪声进行降噪?

作者:AI研习社
链接:https://www.zhihu.com/question/66586141/answer/245148124
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

深度学习在语音分离的应用相关推荐

  1. 搜狗研究员:详解基于深度学习的语音分离

    来源:AI 研习社 本文长度为3000字,建议阅读6分钟 本文为你介绍语音分离方面主要的研究课题和相关方法. [导读] 基于深度学习的有监督语音分离在学术界和工业界越来越受到关注,也是深度学习在语音领 ...

  2. 深度学习-语音处理-语音分离入门学习(Speech separation)

  3. 极限元语音算法专家刘斌:基于深度学习的语音生成问题

    一.深度学习在语音合成中的应用 语音合成主要采用波形拼接合成和统计参数合成两种方式.波形拼接语音合成需要有足够的高质量发音人录音才能够合成高质量的语音,它在工业界中得到了广泛使用.统计参数语音合成虽然 ...

  4. 基于深度学习的语音分类识别(附代码)

    音频与我们生活有着十分联系. 我们的大脑不断处理和理解音频数据,并为您提供有关环境的信息. 一个简单的例子就是你每天与人交谈. 这个演讲被另一个人看出来进行讨论. 即使你认为自己处于一个安静的环境中, ...

  5. 【计算机科学】【2017.01】基于深度学习的语音信号增强

    本文为西班牙加泰罗尼亚政治大学(作者:Dan Mihai Badescu)的论文,共33页. 本文探讨了利用深度神经网络对含噪语音信号进行增强的可能性.信号增强是语音处理中的一个经典问题.近年来,基于 ...

  6. 深度学习和语音系列教程 5-100:求共振峰

    文章目录 1 基音频率 1.1 基音频率的查看 2 共振峰的获取 2.1 倒谱法求共振峰 2.2 测试结果 2.3 共振峰位置坐标 2.4 多种情况下的共振峰测试 1 基音频率 1.1 基音频率的查看 ...

  7. 机器学习_深度学习毕设题目汇总——语音

    下面是该类的一些题目: 题目 基于文本/语音驱动的高自然度人脸动画生成 深度学习语音识别系统中的自适应方法研究 RNN-DNN语音识别系统研究及其应用 发音特征在跨语言语音识别中的应用研究 基于DNN ...

  8. 从鸡尾酒会问题入门语音分离

    前言 谷歌这篇文章<Looking to Listen at the Cocktail Party: A Speaker-Independent Audio-Visual Model for S ...

  9. 从贝叶斯计算、深度学习、智能投顾看人工智能与区块链技术

    人工智能与区块链技术研讨会西安站"9 日在西安电子科技大学举行.这是继北京站顺利举办之后,人工智能与区块链技术研讨会全球巡回的第二站.包括西安电子科技大学通院电子实验室主任刘乃东.清华大学软 ...

最新文章

  1. 中国首份AI落地白皮书发布!地方政府规模大,金融领域最积极,北京供给超上海深圳总和...
  2. HTML课堂笔记02-21
  3. npm: 权限阻止修复
  4. Alluxio 助力 Kubernetes,加速云端深度学习
  5. Win7系统十个不能关闭的服务
  6. VS cmake远程调试ubuntu项目生成报错:“Does not match the generator used previously: Ninja“(删除.vs隐藏文件夹)
  7. atomic原子类实现机制_Java并发包-atomic包-让您彻底掌握AtomicInteger源码
  8. 互联网公司前端初级Javascript面试题
  9. 服务器怎么用光驱装系统教程,使用光驱重装系统详细教程
  10. 天池 在线编程 推荐朋友(哈希)
  11. 论文阅读 | DasiamRPN
  12. javaScript与MVC
  13. 关于int main(int argc,char* argv[])详解
  14. 为什么90%的CTO 都做不好绩效管理
  15. 零售券商之王:零佣金的罗宾侠的400亿美金
  16. oracle报03113,一条SQL查询,报ora-03113的错误,请高手分析
  17. 【ANSYS SCDM】,软件介绍及基本操作
  18. 2022-2028全球全盘加密软件行业调研及趋势分析报告
  19. 【前端知识之Vue】Vue常用的修饰符
  20. html5学习笔记之十(微数据)

热门文章

  1. 3dmax快速实现一个逼真地毯效果
  2. DataGridview单击某个单元格选中一行
  3. IBM云对象存储Cleversafe 大力拓展全新战场
  4. 专题三 Problem X
  5. 2017年18岁的北京文科状元父母都是外交官,关于高考,他说出了我们竭力回避的戳心真相
  6. 如何快速学习:掌握任何技能的 10 种行之有效的方法
  7. CSDN博客中Markdown代码转为pdf
  8. 浮点数修约的法则c语言,IEEE754浮点表示法详解
  9. uhuntu五笔输入法fcitx安装
  10. oracle判断不是null,oracle中判断不为null