写点什么

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

2020 年 4 月 22 日

谷歌开源框架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 年 4 月 22 日 17:171618

评论 1 条评论

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

记一次node项目重构改进

华为云开发者社区

Java 项目 方案

你需要开始做点什么,否则你会一直忙一直忙

老胡爱分享

学习 思维方式 行动派 随笔杂谈 拖延症

组合模式

实践案例丨基于Raft协议的分布式数据库系统应用

华为云开发者社区

raft 华为云

docker 安装consul

Shae

Python中的with是测试常用到的资源打开利器

陈磊@Criss

东方证券企业架构之技术架构转型实践

博云技术社区

云计算 PaaS 容器云 博云 微服务治理

【写作群星榜】9.1~9.13写作平台优秀作者 & 文章排名

InfoQ写作平台

写作平台 排行榜 文章

随想之乐观估计

云杉

一定要写点什么?!

案例解析丨Spark Hive自定义函数应用

华为云开发者社区

spark UDF

程序员快乐器之JAVA代码生成工具

Philips

敏捷开发 程序设计 软件架构 开发工具

LeetCode题解:1. 两数之和,Map+队列+双指针,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

碰撞率下降75%!Mobileye与所托瑞安宣布双方合作重大进展

飞天鱼2017

使用Valgrind调试Linux C++程序

Simon

c++ gdb Valgrind memcheck 内存泄漏

TNFE-Weekly[第七十二周已更新]

莹姐🙈

小程序 前端 周刊

直播风口,是什么在支撑教育、电商、泛娱乐等场景?

腾讯云视频云

腾讯云 音视频 云直播 点播

中途转行学Java,如何赛过科班生?你只需要做到这几点

小Q

Java 程序员 架构 技术 基础

2020英特尔大师挑战赛携手华硕ROG激战成都

intel001

什么是云服务器,ECS它能干什么?

德胜网络-阳

京东上298购买的Linux网络编程笔记,感觉2年开发白干了

周老师

Java 编程 程序员 架构 面试

将DevOps视为哲学——实施DevOps的绝佳方式

陈琦

DevOps 测试 开发 持续交付

不想码代码,你还能做什么?(一)

技术管理Jo

项目管理 技术管理 PMO

5分钟带你掌握Makefile分析

华为云开发者社区

makefile 脚本

USDT承兑商支付系统搭建,区块链支付平台开发

13823153121

你还在手撕微服务?快试试 go-zero 的微服务自动生成

Kevin Wan

go 微服务 microservice go-zero 微服务框架

SwiftGG 文档翻译笔记1-基础部分函数闭包

想学习数据结构和算法,推荐给你 10 本优质书单

沉默王二

数据结构 算法 书单推荐

大项目写代码写到晕头转向?敏捷多项目框架解君愁

Learun

敏捷开发 软件开发

区块链永续合约交易所搭建,永续合约系统开发

13823153121

中国云计算的云栖“坐标”

脑极体

2021年,算法还“香”吗?

2021年,算法还“香”吗?

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