写点什么

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

  • 2020-04-22
  • 本文字数:1559 字

    阅读完需:约 5 分钟

谷歌开源框架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


2020-04-22 17:173241

评论 1 条评论

发布
用户头像
AI 心语心愿
2020-04-23 12:23
回复
没有更多了
发现更多内容

转行程序员浅谈Linux下的多线程编程

WB

Linux 程序员 多线程

Java 火焰图

wong

Java flamegraph

leetcode练级-只出现一次的数字 升级版

幸福三寸日光

算法 LeetCode js

向往优雅的代码

Janenesome

编码习惯 读书

我的 Windows Terminal 配置

FeiLong

Windows Terminal

Linux如何调试内存泄漏

泰伦卢

c c++ C#

字节跳动:高级人才的五个基本素质

池建强

人才培养

Service Provider Interface介绍

Skysper

spi

LeetCode 1048. Longest String Chain

liu_liu

LeetCode

Lucene的Smart CN实现分词、停用词、扩展词

Page

中文分词 lucene 停用词 扩展词 SmartCN

ARTS打卡 week 1

猫吃小怪兽

ARTS 打卡计划

John 易筋 ARTS打卡Week 01

John(易筋)

ARTS 打卡计划

ARTS week 1

刘昱

手把手透析C语言堆内存申请malloc及扩容realloc

卓丁

c 堆内存管理 heap memory malloc realloc

修改Tomcat窗口的名称

阡陌r

Java tomcat 踩坑 实施

“数据资产”究竟是“数据”还是“资产”

马踏飞机747

大数据 数据中台 数据治理 数据资产

Kubernetes 资料集合

倪朋飞

学习 Kubernetes 架构模式

leetcode练级-只出现一次的数字

幸福三寸日光

算法 LeetCode js

ARTS 01 - 为什么写作在远程工作中那么重要?

Calvin

ARTS 打卡计划

我的读书生涯-小学到大学: 没有成长, 只有不断加深的疑惑

lmymirror

人生 读书 经历 半虚构

你所不知道的淘宝325秘密

Geek_i59t1w

ios 淘宝 325

ARTS 第一周

onee

ARTS 打卡计划

鄙视链 & 全栈

伯薇

学习 能力提升 全栈

Python 3.6.1 官方文档练习——初入江湖(三)

小匚

Python python教程

Mobileye如何在云上进行深度学习模型训练

Randy

自动驾驶 学习 AI AWS

【ARTS】Week 1

Amos

ARTS 打卡计划

【应用异常监控利器Sentry搭建与学习笔记】

卓丁

Docker Sertry Fasthttp CI/CD Go 语言

职位拆解:互联网-运营

Taylor

行业资讯 移动互联网 运营 AARRR

LeetCode 241. Different Ways to Add Parentheses

liu_liu

LeetCode

游戏夜读 | 刀塔选手比较老吗?

game1night

Spring Data R2DBC 入门

稻草鸟人

MySQL WebFlux springboot R2DBC

谷歌开源框架FUSS,让声音分离不再成为难题_行业深度_Google_InfoQ精选文章