谷歌开源框架 FUSS,让声音分离不再成为难题

近日,谷歌研究团队在其开源博客上发布了一个免费的通用声音分离数据集,即 FUSS。这个数据集将被当作 IEEE 声音事件检测和分离任务网络挑战竞赛的基准,并有助于将来自其他机器学习领域的新技术快速迭代和应用到对声音分离的科研上。
近日,我们很高兴地宣布发布 FUSS——即免费的通用声音分离数据集(Free Universal Sound Separation)。
通常录制的音频可能会包含多种不同的声源。通用声音分离能力是指,无论音频中包含何种类型的声音,都可以将这样的混合音频按其组成分解为不同声音。在此方法问世之前,声音分离的工作更多关注于把混合音频分解成少量指定类型的声音,如“语音”与“非语音”,或分解成同一类型声音的不同实例,如 1 号发言者与 2 号发言者。而且,通常在这样的声音分解工作中,混合音频中的声音数量也是被假定为先验的,即事先知晓的。然而,这次发布的 FUSS 数据集将关注点转移到解决更通用的问题上,即将数量可变的任意声音从混合音频中逐一分离。
在这个领域,训练模型一个需要克服的主要障碍是,即使有高质量的混合音频录音,用基准真相(ground truth)来对这些录音进行数据标注也并不是一件容易的事情。高质量的仿真是克服这一限制的一种解决方法。为了获得良好的仿真效果,需要一组多样化的各式各样的声音、一个逼真的房间模拟器,以及将这些元素混合在一起的代码,以求实现逼真的、多源的、多种类型的音频,并将之用基准真相进行标注。使用新发布的 FUSS 数据集,我们就能实现拥有这三个特征的音频仿真。
FUSS 依靠的是来自 freesound.org 网站的具有知识共享(Creatuve Cinnibs)许可的音频剪辑。我们团队根据许可类型将这些声音过滤搜索出来,然后使用 FSD50k 的预发布版本,进一步过滤掉那些混合在一起时无法被分离的声音。经过这些过滤之后,有大约 23 个小时的音频,包括 12377 种声音,可以用于混合声音的机器学习。在我们的研究中,其中有 7237 种声音用于训练;2883 种用于验证;2257 种用于评估。使用这些音频剪辑,我们创建了 2 万个训练混合音频、1000 个验证混合音频和 1000 个评估混合音频。
在开源机器学习平台 TensorFlow 上,我们开发出了自己的房间模拟器。在给定声源位置和麦克风位置的条件下,该房间模拟器能够生成一个箱形房间的脉冲响应,且该箱型房间带有频率相关的声音反射特性。作为 FUSS 数据集发布的一部分,我们为每个音频样本都提供了预先计算出来的房间脉冲响应以及混合代码,因此音频方面的研究社区可以直接用这个数据集来模拟新的音频,而无需去运行房间模拟器所要求的海量计算。接下来,我们还将继续的工作可能会包括发布房间模拟器的代码,和扩展房间模拟器功能以处理更丰富的声学特性,比如不同反射性能的材料、非规则的房间形状等等。
最后,我们还发布了一个基于掩码的分离模型,该模型基于一个改进的时域卷积网络(TDCN++)。在评估数据集上,该模型处理 2 ~ 4 个信号源的混合音频时,成功实现了 12.5 dB 的尺度不变信噪比改善(SI-SNRi),同时重建了具有 37.6 dB 绝对尺度不变信噪比的单源混合音频。

可以在这里找到源音频、混响脉冲响应、回响混合音频和由混合代码创建的声音来源,和一个基线模型检查程序的下载。还可以在我们的 github 页面上找到回响、混合音频数据以及用于发布模型训练的所有相关代码(地址: https://github.com/google-research/sound-separation)。

该数据集作为声音事件检测和分离任务的功能组件,还将用于 IEEE 发起的 DCASE 挑战。我们发布的模型将被当作本次 IEEE 网络竞赛的基准,并作为标准检查程序在未来实验中对进展进行展示。
我们希望这个数据集将帮助大家清除新研究的障碍,尤其是有助于未来其他机器学习领域新技术的快速迭代和应对声音分离科研上的挑战上。

原文链接:

https://opensource.googleblog.com/2020/04/free-universal-sound-separation.html