感想
这篇文章好像没有很多创新点,就是用DRNN做了很多实验,然后得到了一个相对比较好的效果,不过这也是一次把深度学习用在音乐与人声分离的尝试,克服了以往需要基于不合理假设的音乐人声分离的局限,比如音乐和语音的低秩和稀疏性假设,从某种程度上限制了音乐人声分离的效果的提高。本文的网络比较浅,只有3层,和其他深度学习网络相比,这个网络太浅了。还有待进一步探索。
单词理解
Monaural 单耳(听觉)的,非立体声的;
Concatenate vt 把 (一系列事件、事情等)联系起来;
介绍
在现实世界中单源分离显得很重要,例如我们可以通过分离噪声从而改进自动语音识别系统(ASR)的精度,也可以从音乐中分离人声,从而提高和弦识别和音高估计的精度。可是,当下最好的结果仍然和人类的能力差别很大。单源分离单轨的信息是一个很有挑战性的问题。
本文侧重单声道的音乐人声分离,最近,一些方法利用了音乐和语音的低秩(low rank,说实话我也不明白这到底是啥意思)和稀疏性的假设。但是这些假设有时候不是合理的,例如,鼓声可能位于稀疏子空间。另外,所有的这些模型都可以被看做是在谱域(spectral domain)的线性变换。
最近深度学习的发展,在不加任何假设的情况下,我们可以使用多非线性层拓展模型的表达能力,并且可以学习和优化数据的隐士表达。这篇文章用了深度循环神经网络(DRNN)分离单轨的音频,我们探索用不同的DRNN框架联合优化这个网络和一个软掩蔽函数(soft masking function)。我们提出的框架如下图。
其中的神经网络的结构为:
在时刻t,输入是Xt,这篇文章用的是幅度谱(Magnitude Spectrum),输出是y1t和y2t.预测输出是y^1t和y^2t,代表不同源的幅度谱。这个幅度谱是从1024个点的短时傅里叶变换出去的,每一次信号点会有50%的重叠,经验表明,使用log-mel filterbank特征或者log 能量谱的特征会使结果变差。
注意:对一个时域信号进行傅里叶变换,就可以得到的信号的频谱,信号的频谱由两部分构成:幅度谱和相位谱。
作者使用反向传播算法来对目标函数进行优化,使用limited-memory Broyden-Fletcher-
Goldfarb-Shanno (L-BFGS) (本人不懂这个算法,等学了再补上)算法来训练模型。Epoch设置的是400,,根据development set来选择最佳的模型。
这是soft time-frequency mask mt(f)的定义,f代表频率。计算mt后,我们把mt运用到下面的公式,zt(f)为幅度谱,这样可以求得估计的幅度谱s^1t(f),s^2(f). time-frequency masking function可以看作是DNN的一层,我们联合优化这个函数和网络。
然后我们另加一层输出,就得到了分离的谱y~1t,y~2t,计算公式为
原来的相谱和计算的频谱经过ISTFT,得到时域信号。
训练的目标函数
最小化误差平方和和KL散度(Kullback-Leibler (KL) divergence)
当Ai的概率和=Bi的概率和=1的时候,D(‘|’)减少到KLdivergence. A,B可以被看做概率分布。
实验结果
为了量化声源分离的结果,我们使用信号干扰比(Source toInterference Ratio ,SIR),系统误差比(Sourceto Artifacts Ratio ,SAR),信号偏差比(Source to DistortionRatio ,SDR)去评价。规范化的SDR定义如下:
V^是再合成的人声,V是原来干净的人声,X是混合的声音。NSDR是为了评估预先处理的混声X和分离的人声V^的SDR的效果。我们用Global NSDR (GNSDR),Global SIR (GSIR),Global SAR (GSAR)去评估整体的性能表现。它们分别是加权的GNSDR,SIR,SAR的均值。所有测试片段根据它们的长度加权重。SDR,SAR,SIR的值越高,代表分离的质量越好。干扰源的抑制用SIR来很亮,系统误差
注意:SIR,SDR,SAR的定义如下:
Starget(t)表示估计信号源中是信号源的那部分;einterf(t)表示估计信号中不属于信号源的部分,但是属于混合信号的那部分,是由其它信号源引起的估计误差;enoise(t)表示感测信号中包含的噪声干扰误差;eartif(t)是由算法本身产生的系统噪声误差。具体公式为:
很多情况下都可以忽略噪声对计算的影响,所以enoise(t)那部分可以去掉。由此只剩下三部分,由此得到上述三个性能参数。
上下文窗口大小为1,3,5的模型效果比较,窗口为3*3时效果最佳。
环形移位步长大小(circular shift step sizes,如果有人不知道这个东西,可以参考下面维基百科)为0,50k,25k,10k样本,当继续增加训练样例的时候,模型性能提高很小了,因此我们选择环形移位步长大小为以为10k样本。
第一个DNN是以单声源作为目标,第二个DNN是以二声源作为目标,没有联合掩蔽训练(joint mask training),第三个是以二声源作为目标,有联合掩蔽训练。使用joint mask 训练的效果最佳。
不同网络结构,不同目标函数的结果,MSE代表平均均方误差,KL代表KL散度。DRNN的效果比DNN的效果好。
使用不同的模型结构进行判别训练(discriminative training)。
参考文献
[1]. Circular shift. https://en.wikipedia.org/wiki/Circular_shift
[2]. Po-Sen Huang, Minje Kim, MarkHasegawa-Johnson, Paris Smaragdis:
Singing-Voice Separation from MonauralRecordings using Deep Recurrent Neural Networks. ISMIR 2014: 477-482
[3] 基于深度循环神经网络(DRNN)的单通道音乐人声分离