[0098] 以下将结合附图对本发明所提供的方法作进一步解释说明。
[0099] 使用旋律提取与语音合成技术的歌声分离,在音乐信息检索领域,与传统分离方法相比,将分离问题转换为提取与合成问题,有效避免伴奏干扰,较以往方法具有分离声音清晰,伴奏杂声少的特点,同时在多数情形下的分离程度与传统方法相比更为理想。在主旋律提取中使用OSCC而非传统的MFCC作为音频特征,有着更适用于音乐旋律提取的优点,能在特征提取时就获得其乐理特点。利用多个说话人音库经HMM训练后生成一个均值模型较单一音库模型能在说话人单色转换时有更好的效果,同时亦能大幅降低所需的目标说话人语料,适合歌曲演唱的特点。针对已提取的音节音符时长作时长变换能防止因音符与音节不匹配而导致的词句不对齐错误。因此,本发明提供了一种使用旋律提取与语音合成技术的歌声分离方法。
[0100] 本发明提供了一种使用旋律提取与语音合成技术的歌声分离方法,整体而言,本发明包括四大步骤,步骤S1:歌曲主旋律提取;步骤S2:说话人音库特征模型构建;步骤S3:说话人音色转换;步骤S4:歌曲人声合成。
[0101] 参见图1,为本发明所提供方法的实施步骤流程图,具体地,包括如下步骤:
[0102] 步骤S1:歌曲主旋律提取,是利用输入原始歌曲音频的信息,提取其中人声的声乐主旋律,即查找其中的人声基音并绘制旋律线。参见图2所示,为本发明提供的一种使用旋律提取与语音合成技术的歌声分离方法中主旋律提取步骤的流程图,具体包括以下步骤:
[0103] 步骤S11:原始歌曲音频预处理,包括音频下采样、分帧加窗、DFT(离散傅里叶变换)。具体地:
[0104] 步骤S111:对原始歌曲音频作下采样处理。优选地,使用线性插值法将原始音频采样降至8kHz。下采样数学公式如下:
[0105]
[0106] 其中Sd[i]表示下采样后的音频信息,S表示原始歌曲音频信息,符号 表示向下取整,i代表每个采样点,sf为下采样因子,若原始歌曲音频采样率为44.1kHz,则[0107]
[0108] 步骤S112:对S111下采样后的音频作分帧加窗操作,优选地,设定窗长为5帧,窗函数使用汉明窗。其公式如下:
[0109] Sh[i]=Sd[i]*H[i] 式(3)
[0110]
[0111] 其中Sh[i]表示处理后的音频信息,符号*表示卷积运算,H[i]表示汉明窗函数。
[0112] 步骤S113:DFT变换,对上述分帧后的音频数据做离散傅里叶变换,公式如下:
[0113]
[0114] 其中x[i]为DFT变换后的音频信息,符号j为虚数符号。
[0115] 步骤S12:歌曲音符分割,包括音频特征提取,分割函数计算,确定分割点。具体地:
[0116] 步骤S121:音频特征提取,优选地,使用OSCC(八度音阶倒谱系数)作为音频的特征参数,OSCC转换公式如下:
[0117] Octave(f)=12log225f×mod12 式(6)
[0118] 其中f表示原始歌曲音频频率,Octave(f)表示转换后的音频频率,即所需要的音频特征,符号mod表示取模运算。
[0119] 经公式(6)处理后得到的音频频率范围为64‑16384Hz,对应的八度音阶符号为C2B2‑C9B9。
[0120] 步骤S122:分割函数计算,其计算公式如下:
[0121] D[n]=(ΔMV[n]T×ΔMV[n])/(∑kcov[n]b,k+∑icov[n]a,k) 式(7)
[0122] 其中ΔMV[n]表示第n帧音频前后1帧音频OSCC特征均值的差,符号T表示转置运算,cov[n]b,k表示第n帧前1帧音频的特征协方差矩阵中第k行,第k列位置对应的元素,cov[n]a,k表示第n帧后1帧音频的特征协方差矩阵中第k行,第k列位置对应的元素。
[0123] 步骤S123:确定分割点。计算D[n]中所有的极大值点,并删除其中小于给定阈值T1的点,剩余的极大值点即为所求的分割点,依据分割点将原始音频划分为不同的音频段。
[0124] 步骤S13:浊音段检测。对上述步骤S12划分的音频段作浊音段检测,检测公式如下:
[0125]
[0126] 其中sign为符号函数,N表示该音频段的帧数,var[n]表示该帧频谱方差,T2为给定阈值,符号∨表示取大运算。
[0127] 若上式(8)结果为1则该段为非浊音段,上式(8)结果为‑1或0则该段为浊音段。
[0128] 步骤S14:基频提取,包括基频音高显著度函数计算,候选基频选取。具体地:
[0129] 步骤S141:基频音高显著度函数计算,对步骤S13中得到的浊音段作基频音高显著度计算,其计算公式如下:
[0130] S(logf)=Y(logf)*(1/(α‑cos(2πe‑logf))‑β) 式(9)
[0131] 其中S(logf)表示基频音高显著度,Y(logf)表示对数频域,α表示基频控制参数,在本例中,选取α=1.8,β为显著度控制因子,β需满足∫S(logf)dlogf=0,f表示上述浊音段音频的频率。
[0132] 步骤S142:候选基频选取。查找上述步骤S141计算得的基频音高显著度函数峰值所对应的频率集Ω1;保留频率集Ω1其中80‑1000Hz的频率,得到新集合Ω2;选择Ω2中具有最大显著度的频率,将其放入集合Ω3,同时删去Ω2中与该频率有倍数关系的频率及其半频,重复以上过程直到 选取Ω3中显著度最大的3个作为候选基频集合Ω。
[0133] 步骤S15:维特比基音对齐。计算每个浊音段中满足的维特比基音对齐的基频,得到其轨迹。其公式如下:
[0134]
[0135] 其中Sn,k表示第n帧中第k个候选基频的音高显著度,p(·)表示音高转移概率。
[0136] 步骤S16:歌声判别。利用反向传播神经网络,判断上述提取的基频是否为歌声基频。优选地,使用一个结构为13‑26‑13‑2的反向传播神经网络,即输入层含有13个神经元,隐藏层分别含有26个和13个神经元,输出层含有2个神经元。特别地,在训练神经网络时,对训练样本作同步骤S11相同的预处理操作,再计算其OSCC,以保证神经网络输入参数的一致性。若是歌声基频则统计该浊音段的基频帧数,若该基频帧数大于总帧数的1/2,则认为该段的主导基频为歌声主旋律,记为f0。对原始音频中每一段浊音段均作如上操作,最终得到基频合集F0。注意到,当已知基频合集时,同时也得到了由基频确定的音符位置及持续时间,由浊音段确定的音节位置及持续时间。参见图3基频语谱图所示,其中亮色(浅灰色)代表上述步骤提取的基频,被框中的部分则为该步骤中被选中的歌声基频。
[0137] 步骤S2:说话人音库特征模型构建。首先构建说话人音库,并通过对多个说话人音库的音频特征进行提取,训练其HMM模型,生成决策树,最终得到特征模型。参见图4,本发明提供的一种使用旋律提取与语音合成技术的歌声分离方法中说话人音库特征模型构建步骤的流程图。具体地,包括如下步骤:
[0138] 步骤S21:说话人音库准备。选择不同的说话人构建说话人音库。在本例中,建立了包含5个男声音库和5个女声音库的说话人音库集。每个音库中包含有带人工标注的5个声调(包括拼音一至四声及轻声)的拼音发音音频共计2060个。
[0139] 步骤S22:音库音频特征提取。对说话人音库中的音频重复步骤S112,S113操作后计算其MFCC(梅尔频率倒谱系数),并将MFCC作为该音频的特征信息。MFCC的计算公式如下:
[0140] Mel(f)=2595×lg(1+f/700) 式(11)
[0141] 其中Mel(f)即为所求的MFCC。
[0142] 步骤S23:HMM模型训练。对上述步骤提取的音库音频特征信息,采用HMM模型对其进行训练,并求解其MLE(最大似然估计)。其中最大似然估计的公式如下:
[0143]
[0144] 其中,表示最大似然估计,O表示HMM的输出序列,λ表示HMM的状态序列,P为HMM中的概率,S表示输入模型。之后配合MAP(最大后验概率)算法修正模型,得到单个说话人音库的相关模型。注意到,在此对所有的说话人音库作上述操作,每个音库均生成一个相关模型。
[0145] 步骤S24:决策树生成。对经由上述步骤计算出每个音库的相关模型做决策树生成。选择其中最大似然估计值贡献最大的问题进行节点分裂,并利用MDL(最小描述长度)作结束标志。MDL计算公式如下:
[0146] DT=argmin(Len(DT)min+Len(Ξ|DT)min) 式(13)
[0147] 其中DT为所求模型,Len(DT)min表示对DT编码的所需求的最小的编码长度,Len(Ξ|DT)min表示在给定的DT下对Ξ编码的所需的最小的编码长度。
[0148] 步骤S25:主成分分析及特征模型建立。
[0149] 将上述步骤建立的决策树中的叶节点参数提取并以此构建矩阵,矩阵行数等同于叶节点个数,矩阵列数等同于叶节点个数与参数维度的乘积。
[0150] 利用主成分分析法对矩阵作降维处理:首先,将矩阵每列减去相应列的期望,并计算协方差矩阵,协方差矩阵的计算公式如下:
[0151]
[0152] 其中ξ,ζ表示矩阵任意两行向量,N表示行向量中元素个数。
[0153] 利用奇异值分解法计算该协方差矩阵式(14)的特征值与特征向量,属于现有成熟技术,故不详解;取特征值中最大的前k个,并将其对应的k个特征向量作为列向量组成一新的矩阵;然后对新矩阵减去相应行向量的均值与权系数的积,得到特征模型。其中k≤N,在实际中依具体情况选择。
[0154] 步骤S3:说话人音色转换。参见图5所示,为本发明提供的一种使用旋律提取与语音合成技术的歌声分离方法中说话人音色转换步骤的流程图。具体地,包括以下步骤:
[0155] 步骤S31:人声析取。通过对原始歌曲音频做中置声道析取,得到相对纯净的人声音频,具体地,包括以下步骤:
[0156] 步骤S311:非中置声道计算。利用左右声道音频的不同,结合歌曲制作者在后期混音过程中多将人声音轨声相设置于声场中间这一特点,计算出非中置声道音频信息,其计算公式如下:
[0157]
[0158]
[0159]
[0160] 其中,Vl(t)表示歌曲中左声道的信息,Vr(t)表示右声道信息,Vc(t)表示中置声道信息, 表示左声道中除中置声道外的音频信息, 表示右声道中除中置声道外的音频信息, 表示非中置声道音频的估计信息。
[0161] 步骤S312:中置声道析取。
[0162] 中置声道的音频信息可由如下公式获取:
[0163]
[0164] 其中 表示中置声道音频信息的估计值,V(t)表示原始音频信息。
[0165] 然后对该中置声道音频 作滤波处理,保留其中80‑1000Hz的频率,得到最终的人声音频即中置声道音频
[0166] 步骤S32:重复步骤S22,S23操作,得到经HMM模型训练后的人声音频特征信息。
[0167] 步骤S33:特征模型权系数计算。对步骤S2得到的特征模型计算其权系数,计算公式如下:
[0168]
[0169] 其中,spread表示分布,t表示时刻,Pspread(t)表示t时刻下由分布spread确定的概率,espread(i)表示单位矩阵,i=1,2,…,K,K表示列数, 表示由分布spread确定的协方差矩阵的逆,ot表示t时刻的观测序列,即由每个状态生成一个观测,而由此生成的观测的随机序列,μspread表示分布spread下的均值。而μspread又可表示为:
[0170]
[0171] 其中ρi即为所需的特征模型权系数。
[0172] 步骤S34:自适应模型构建。利用上述步骤S33得到的权系数对步骤S2中的特征模型作线性加权,得到目标说话人音色的自适应模型。
[0173] 步骤S4:人声合成。参见图6所示,为本发明提供的一种使用旋律提取与语音合成技术的歌声分离方法中人声合成步骤的流程图。具体地,包括以下步骤:
[0174] 步骤S41:TTS(文字到语音)转换。利用原始歌曲音频的歌词,使用TTS系统生成对应的发音,即通过建立一个汉字到拼音的映射表(多音字将由人工在输入歌词时手动标注),利用步骤S3中建立的目标说话人音库模型,生成单字的读音。
[0175] 步骤S42:歌曲演唱发音生成。其发音由以下公式计算得出:
[0176]
[0177] 其中y(t)表示目标音频,G(·)表示基频映射函数,该函数只需满足对基频具有一一映射关系即可,ω表示相位,φ(ω)表示相位激励函数,V(ω,t)在给定相位及时刻下的最小位相冲击响应值经DFT转换后的结果, 表示基频合集各基频所对应的时间位置,tk表示基频合集中第k个基频对应的时间位置;
[0178] 步骤S43:音节时长变换。利用步骤S1得到的音节持续时间,由如下公式计算变换系数:
[0179] TS(i)=(TB(i+1)‑len(i‑1))/(TB(i+1)‑TB(i)) 式(21)
[0180] 其中TS(i)表示第i个音符下的变换系数,TB(i)表示第i个音符输出起点,len表示音符时长。
[0181] 步骤S45:利用步骤S1中得到的基频及音符持续时间,结合上述音节时长变换系数TS(i)、演唱发音y(t)等信息,合成得到最终的人声发音。
[0182] 下面将对本发明所提供的一种使用旋律提取与语音合成技术的歌声分离方法与传统歌声分离比较,以验证本方法的技术效果:
[0183] 实验所使用的测试歌曲均为双声道立体声音乐,采样率44100Hz,采样深度16位(无抖动),储存格式为wave格式。因本发明使用立体声歌曲作为分离样本,传统的MIR‑1K数据集不再适用。为此,本次对比实验邀请10位非专业音乐人士对歌曲分离程度进行打分,作为本实验的主观评价标准。打分标准分为1‑5分,1分表示分离效果最差,5分表示分离效果最好。
[0184] 对比实验将本发明提供方法与传统的中置声道析取方法,矩阵分解方法,神经网络方法进行比较。中置声道析取法是传统的基于声源空间差异而分离歌声的方法,其假设所分离的歌声位于中央信道,从而利用歌曲左右声道信息差异来估计中央信道。矩阵分解方法,包括非负矩阵分解,鲁棒主成成分析等方法,在本次实验中使用鲁棒主成成分析法,把音频信息分解为一个低秩成分与一个稀疏成分,其中歌声内容一般认为是中等稀疏的,而伴奏则往往是低秩的。神经网络方法则是利用神经网络的高效学习能力,分别学习人声与伴奏模型,得到对应的分离模型,在本次实验中,使用DNN(深度神经网络)进行分离训练。
[0185] 图7展示了不同分离方法的主观评分对比。可以看到传统的中置析取方法的分离效果无法满足人类听觉需要,仅具有研究意义,无法在应用于实际工作中;基于矩阵分解的方法效果较中置析取法有明显改善,但仍能听出较明显的伴奏声;使用神经网络的分离方法分离效果良好,基本满足人类听觉的需求,但在部分歌曲上因训练集不足而导致分离效果不理想;本发明提供的一种使用旋律提取与语音合成技术的歌声分离方法则在多数情况下优于上述方案,且具有良好的鲁棒性,不易因训练不足而导致分离效果不理想,亦能节约分离所需的计算量。
[0186] 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0187] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。