暖夏少年|滴滴 AI Labs 宋辉:单通道语音分离面临哪些挑战?| CCF-GAIR 2020( 三 )


第二类方法是时域分离法 。 它的第一个优点是用一种 data-driven 的形式完成 Encoder 变换 , 比较常用的是 1-D CNN 或是更深的 Encoder 来完成这种变换 。 另外 , 时域方法不需要处理相位重建 。 第三 , 它的延时比较短 , 比如 Conv-TasNet 可以做到两毫秒的延时 , DPRNN-TasNet 可以做到采样点级别的延时 。
时域方法的缺点是 Mask 可解释性比较差 , 我们并不知道信号会变换到什么样的域当中 , 也不知道在这个域当中 Mask 到底有什么物理含义 。 此外 , 时域法和传统的频域信号处理方法相结合也稍显复杂 。
需要提到的是 , 语音分离是将所有说话人的声音全部分离出来 。 有的时候 , 我们只想得到我们感兴趣的说话人的声音 , 而不需要分离出每一个说话人 , 这就是目标说话人抽取 。 它可以解决盲源分离中的两大痛点 , 即输出维度问题和置换问题 。 此外 , 由于只需要抽取出一路信号 , 因此不需要在分离出的多路信号中进行选择 , 从而节省运算量 。 它的附加条件是需要一个参考 , 既然要抽取特定的说话人 , 那么必须要事先知道关于这个说话人的信息 , 也就是 speaker-embedding , 将这些信息作为参考输入给抽取网络 。 在一些实际场景中 , 获取参考并不困难 。
第二部分 , 介绍单通道语音分离和说话人抽取的主流技术路线 。。
早期的语音分离多采用基于频域的方法 , 比如 u-PIT , 这是一种比较流行的训练方法 , 很多时域的分离网络依然沿用了这种训练思路 。
Deep CASA 是频域方法当中性能比较突出的一种方法 。 它是基于 CASA 框架 。 CASA 的基本框架分为两部分:第一步是基于帧级别的分离;第二步则是对上一步的结果聚合得到输出 。 Deep CASA 顾名思义是将上述两步用更深的网络来实现 , 这是近两年在频域算法中表现比较突出的方法 。
再来看目标说话人抽取技术 。 比较有代表性的是谷歌提出的 Voice filter , 它利用目标说话人的声纹信息 , 将 d-vector 作为参考输入到抽取网络中 , 抽取网络可以只抽取出与该声纹信息相匹配的信号 。
另一种更为常用的抽取方式是引入一个声纹辅助网络 , 通过联合学习的方式得到高质量的 speaker-embedding , 帮助抽取网络完成目标说话人声音的提取 。
暖夏少年|滴滴 AI Labs 宋辉:单通道语音分离面临哪些挑战?| CCF-GAIR 2020基于时域的语音分离技术 , 比较有代表性的包括 Conv-TasNet 和 DPRNN-TasNet 。 对于时域目标说话人抽取任务来讲 , SpEx 和 SpEx+目前的表现比较好 , 它们的基本框架也是借助于辅助网络提取声纹信息 , SpEx 和 SpEx+ 的不同点在于 , 后者的 speech encoder 和 speaker decoder 是权值共享的 。 此外 , 多尺度输入对于抽取性能提升也是有帮助的 。
暖夏少年|滴滴 AI Labs 宋辉:单通道语音分离面临哪些挑战?| CCF-GAIR 2020目前大家对于单通道语音分离技术的关注点主要集中在以下四个方面 。
首先是 Separator 。 早期的频域方法中 , 人们更愿意用双向 RNN 做分离器 , 在时域方法中大家开始用 TCN , 到现在 DPRNN 用的更多一些 , 它的模型相对比较小 , 分离效果也比较好 。 还有一种方式是直接用 UNet 或是 WaveNet 实现从波形到波形的端到端分离 , 这种方法多用于音乐分离任务 。
其次是 Encoder/Decoder 。 前面讲过 , Encoder 可以是由一组固定滤波器实现 , 比如傅里叶变换 , 也可以通过一种完全学习出来的 1-D CNN 网络实现 , 其实还有一种选择 , 即参数化的滤波器组 。 也就是说 , 并不需要学习滤波器的每个系数 , 而是学习其中的关键参数 , 由这些关键参数可以算出滤波器组的结构 。 还有一种思路是将 Encoder/Decoder 变得更深 , 以及采用多尺度输入的方式 。 实验表明 , 多尺度输入可以带来平均 0.3dB 的 SI-SDR 的提升 。


推荐阅读