音源分离|MUSIC SOURCE SEPARATION BASED ON A LIGHTWEIGHT DEEP LEARNING FRAMEWORK

一、文章摘要

        音源分离(Music source separation ,MSS)旨在从一段混合音乐中提取“人声”,“鼓”,“贝斯”和“其他”音轨。虽然深度学习方法已经显示出令人印象深刻的结果,且有一个趋势是使用更大的模型去实现音源分离。但在本文中,介绍了一种新的轻量级架构DTTNet,它基于双路径模块和时频卷积时间分布全连接UNet(TFC-TDF UNet)。与Bandsplit RNN(BSRNN)相比,DTTNet在“人声”上实现了10.12 dB的cSDR,而BSRNN为10.01 dB,但参数数量减少了86.7%。我们还评估了特定模式的性能和模型对复杂音频模式的泛化能力。

二、本文方法

2.1 背景

        目前用于分离MSS问题中“人声”音轨的最先进模型是Band-split Recurrent Neural Network (BSRNN)[12]和Time-Frequency ConvolutionsTime-Distributed Fully-connected UNet (TFC-TDF UNet)v3[13]。

        BSRNN在谱图上预测一个复值的掩模,并使用全连接层(FC)和多层感知器(MLP)对特征进行编码和解码。编码后的特征通过12个双路径rnn进一步处理,以捕获子带间和子带内的依赖关系。然而,FC层和MLP层引入了大量冗余参数,并且12层双路径rnn需要增加训练时间

        FC-TDF UNet v3使用残差卷积块。此外,TFC-TDF UNet v3没有引入显式时间建模,因此当模型参数急剧增加时,性能增益不太突出。

        本工作的贡献如下:1。如图1所示,通过集成和优化来自TFC-TDF UNet v3的编码器和解码器以及来自BSRNN的潜在双路径模块,我们减少了冗余参数

        2. 如图2(b)所示,我们在改进的双径模块内划分通道C,从而减少了推理时间

        3. 我们优化了DTTNet内部的超参数,提高了与BSRNN[12]和TFC-TDF UNet v3[13]相当的信失真比(SDR),如表3所示。

        4. 我们使用复杂的音频模式对DTTNet进行测试,这些模式通常被许多在MUSDB18-HQ数据集上训练的模型错误分类。

2.2 本文方法

        本文框架由三部分组成:编码器、解码器和潜在部分。

2.2.1 Encoder

        在编码器中使用TFC-TDF v3模块。

2.2.2 Improved Dual-Path Module

        在潜在部分使用改进的双路径模块。改进双路径模块(Improved Dual-Path Module, IDPM)的结构与BSRNN中的Band and Sequence Module相似[12]。为了在保持高输入维数C的同时减少推理时间,我们首先将输入通道C分成H个头。然后,首先沿着第一个RNN块中的时间轴处理H头,然后沿着第二个RNN块中的频率轴处理H头。在IDPM结束时,应用相反的过程将H头合并到C通道中。

2.2.3 Decoder

        解码器中同样使用TFC-TDF v3模块。

三、实验结果

3.1 数据集

        MUSDB18-HQ。

3.2 实验设置

       学习率为2 × 10−4,AdamW optimizer,L1损失函数,Batch_Size=8,模型训练300个epoch,STFT窗口大小为6144,hop length为1024。

3.3 推理结果

        

【文章链接】:https://arxiv.org/pdf/2309.08684v2.pdf

【源码链接】:https://github.com/junyuchen-cjy/dttnet-pytorch

【参考文献】:

[12] Yi Luo and Jianwei Yu, “Music source separation with band-split rnn,” IEEE/ACM Transactions on Audio,Speech, and Language Processing, vol. 31, pp. 1893–1901, 2023.
[13] Minseok Kim, Jun Hyung Lee, and Soonyoung Jung,“Sound Demixing Challenge 2023 Music Demixing TrackTechnical Report: TFC-TDF-UNet v3,” arXiv preprint:arXiv:2306.09382, 2023.

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
盲源分离(Blind Source Separation, BSS)是一种无需先验知识的信号分离方法,常见的方法有独立分量分析(Independent Component Analysis, ICA)、主成分分析(Principal Component Analysis, PCA)等。以下是一种基于独立分量分析的盲源分离方法的MATLAB实现: ```matlab % 生成混合信号 s1 = randn(1, 1000); % 生成随机信号1 s2 = randn(1, 1000); % 生成随机信号2 A = [1 0.5; 0.5 1]; % 混合矩阵 X = A * [s1; s2]; % 生成混合信号 % 独立分量分析 [W, S] = fastica(X); % W是分离矩阵,S是分离后的信号 % 绘图比较 figure; subplot(2, 2, 1); plot(s1); title('源信号1'); subplot(2, 2, 2); plot(s2); title('源信号2'); subplot(2, 2, 3); plot(X(1, :)); title('混合信号1'); subplot(2, 2, 4); plot(X(2, :)); title('混合信号2'); figure; subplot(2, 2, 1); plot(W(1, :) * S); title('分离信号1'); subplot(2, 2, 2); plot(W(2, :) * S); title('分离信号2'); subplot(2, 2, 3); plot(W(1, :) * X); title('估计源信号1'); subplot(2, 2, 4); plot(W(2, :) * X); title('估计源信号2'); ``` 以上代码实现了生成两个随机信号,然后通过一个混合矩阵将它们混合在一起形成混合信号。接着使用fastica函数对混合信号进行独立分量分析,得到分离矩阵和分离后的信号。最后,绘制图表进行比较。 需要注意的是,以上方法是一种简单的实现方式,实际应用中可能需要根据实际情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值