当前位置: 首页 > 科技观察

时域音频分离模型上GitHub热榜,效果超越传统频域方法

时间:2023-03-16 22:12:23 科技观察

本文经AI新媒体量子位授权转载(公众号ID:QbitAI),转载请联系转载来源。用AI分离歌曲音轨的研究很多,但大多是在频域进行的。这类方法首先对声音进行傅里叶变换,然后从频谱空间中提取人声和音乐声。比如上个月在GitHub上走红的Spleeter就是这样。但是,由于需要计算频谱,此类工具存在延迟较长的缺点。虽然之前也有一些处理声音波形的方法,但实际效果与频域处理方法相去甚远。近期,FacebookAI研究院提供了Demucs和Conv-Tasnet两种波形域方法的PyTorch实现,测试结果优于其他常见的频域方法。目前在GitHub每日榜单上,影响不大。说吧,我们先来听听这个30s音频的分离度测量效果。vocals.mp300:30.069fromqubit这两种方法在MusDB上的训练结果接近于频域方法的最优结果。添加150个额外的训练数据后,整体信号失真比(整体SDR)达到6.3,优于所有其他方法。安装及使用方法首先将代码下载到本地,根据你使用的是CPU还是GPU选择不同的安装环境:condaenvupdate-fenvironment-cpu.yml#ifyoudon'thaveGPUscondaenvupdate-fenvironment-cuda.yml#ifyouhaveGPUscondaactivatedemucs在根目录下代码库目录运行以下代码(Windows用户需要将python3替换为python.exe):python3-mdemucs.separate--dl-ndemucsPATH_TO_AUDIO_FILE_1[PATH_TO_AUDIO_FILE_2...]#forDemucspython3-mdemucs.separate--dl-ntasnetPATH_TO_AUDIO_FILE_1。..#forConv-Tasnet#Demucswithrandomizedequivariantstabilization(10xslower,suitableforGPU,0.2extraSDR)python3-mdemucs.separate--dl-ndemucs--shifts=10PATH_TO_AUDIO_FILE_1其中-dl会自动下载预训练模型,-后的参数n代表选择的预训练模型类型:demucs:代表在MusDB上训练的Demucs;demucs_extra:使用额外数据训练的Demucs;tasnet:代表在MusDB上训练的Conv-Tasnet;tasnet_extra:使用额外数据训练的Conv-Tasnet。--shifts=SHIFTS对输入执行多个预测并对它们的随机偏移进行平均(也称为随机等变稳定)。这减慢了预测SHIFTS的时间,但将Demucs的准确性提高了0.2个SDR点。它对Conv-Tasnet的影响有限,因为该模型本质上几乎是同步的。原始论文使用的值为10,尽管5产生几乎相同的增益。默认情况下禁用。原理介绍Demucs是Facebook人工智能研究院于今年9月提出的一种弱监督训练模型,基于受Wave-U-Net和SING启发的U-Net卷积架构。研究人员引入了一个简单的卷积和递归模型,使信号失真比比Wave-U-Net提高了1.6个百分点。上图是Demucs完整的框架结构,右边是encoder和decoder层的详细表示。与之前的Wave-U-Net相比,Demucs的创新之处在于编码器和解码器中的GLU激活函数,以及双向LSTM和通道数的倍增。Conv-TasNet是由哥伦比亚大学华裔博士生罗奕提出的端到端时域语音分离深度学习框架。Conv-TasNet使用线性编码器生成语音波形的表示形式,该表示形式针对分离单个音轨进行了优化。轨道分离是通过将一组加权函数(掩码)应用于编码器输出来实现的。然后使用线性解码器将修改后的编码器表示反转回波形。由一维扩张卷积块组成的时间卷积网络(TCN)找到掩码,使网络能够对语音信号的长期依赖性进行建模,同时保持模型尺寸较小。Conv-TasNet具有更小的模型尺寸和更短的延迟,是离线和实时语音分离应用的合适解决方案。传送门项目地址:https://github.com/facebookresearch/demucs测试结果论文:https://hal.archives-ouvertes.fr/hal-02379796/document