[0100] 以下将结合附图对本发明提供的方法作进一步说明。
[0101] 基于语谱图图像识别的歌词时间戳生成,在音乐信息检索领域,通过使用机器学习对语谱图作图像识别,将传统的音频分析问题转化为图像处理问题,较以往方法有着更直观的、更简洁的优势,同时在多数情况下有更理想的结果。利用基音检测能优化基于究竟位置差异的旋律分离效果,较单纯的重混缩计算有巨大优势。而利用BPM判断语句分行则在效果可控的基础上很大程度地提高了运算效率。利用Adaboost模型对人声语谱图作图像识别,能有效排除噪声、伴奏等因此的干扰。因此,本发明提供了一种基于语谱图识别的歌词时间戳生成方法。
[0102] 本发明提供一种基于语谱图识别的歌词时间戳生成方法,整体而方,本发明包括三大步骤,步骤S1:音频预处理,分离人声与伴奏;步骤S2:对预处理后的音频作基于行的时间分割;步骤S3:对上述每行音频作基于单字的时间分割,得到所需的歌词时间戳。
[0103] 参见图1,为本发明方法实施例的步骤流程图,包括以下步骤:
[0104] 步骤S1:音频预处理,利用输入声源的空间位置差异作人声伴奏分离,参见图2所示为本发明提供的一种基于语谱图识别的歌词时间戳生成方法中人声分离流程图,其具体包括以下步骤:
[0105] 步骤S1.1:分别获取音频左右声道的音频信息,并对左声道音频作反转处理,如图3(a)、图3(b)所示,分别展示了左声道原始音频波形图与左声道反转处理后的音频的波形图,可以看到从图像上反转处理即将图像沿振幅为0的轴翻转,其反转处理公式如下:
[0106]
[0107] 其中, 代表左声道每个采样点反转后的信息, 代表左声道每个原始采样点信息,即对应时间i下的振幅x;此外,左声道每个采样点信息还可表示为:
[0108]
[0109] 其中 表示位于中置声道的每个采样点信息, 表示左声道中偏离中置声道的音频信息。
[0110] 步骤S1.2:将反转后的左声道音频叠加至右声道上,得到远离中置声道的音频,如图3(c)所示,不难看出经步骤S1.2处理后波形振幅的均值较原本单声道下更大,表明该首歌曲左右声道信息差异可能较大。其叠加处理公式如下:
[0111]
[0112] 式中 为每个远离中置声道的音频采样点, 为右声道每个采样点的原始数据, 为右声道中偏离中置声道的音频信息。
[0113] 步骤S1.3:依据上述得到的远离中置声道的音频作中置声道析取,得到中置声道音频,中置声道表达式为:
[0114]
[0115]
[0116] 其中xci为每个位于中置声道音频信息的采样信息,sign(*)为符号函数,xi是原始音频合并左右声道合并后的采样点信息,最终的结果见图3(d)所示,在该图中有明显的波形变化点,是为可能的分割点,但在其开始端仍可以看到有明显的不属于人声的伴奏存在,因此下一步需要对该部分进行处理。
[0117] 步骤S1.4:对得到的中置声道作滤波处理:
[0118]
[0119] 其中 为滤波后得到的音频采样点信息,f(*)函数表示滤波函数,在本例中将使用减谱法作为滤波函数,其步骤如下:
[0120] 步骤S1.4.1:优选地,使用线性预测的方法估计噪声;
[0121] 步骤S1.4.2:对原始音频及估计噪声作DFT(离散傅里叶变换)处理,解得其功率谱;
[0122] 步骤S1.4.3:对两者功率谱相减后求其二范数;
[0123] 步骤S1.4.4:利用噪声相位作相位变换;
[0124] 步骤S1.4.5:对最终结果作IDFT(离散傅里叶逆变换)处理。
[0125] 步骤S1.5:对原始音频及上述步骤S1.4得到的音频作基音检测,公式如下:
[0126]
[0127] 其中T表示基音周期,τmin表示基音周期最小值,τmax表示基音周期最大值,argmin表示取最小自变量。具体地,步骤如下:
[0128] 步骤S1.5.1:对输入的音频数据作DFT处理,得到其复数谱;
[0129] 步骤S1.5.2:对复数谱的模长作平方运算,得到功率谱;
[0130] 步骤S1.5.3:对功率谱取对数后作IDFT,最终得到其倒谱。
[0131] 步骤S1.6:将两者基音作比较,判断差异点,并依据差异点返回步骤S1.4调整该时间范围内的滤波参数,最终得到分离后的人声 最终输出的人声音频波形图见图3(e)所示,从图上可以看到在时域上已经将无人声部分较好的剔除,人声与伴奏混合部分经过上述处理后的音频已经较为纯净,可以用于下一步的歌词对齐操作。
[0132] 需要注意的是,也可以对右声道音频作上述操作,最终得到的结果相同。
[0133] 步骤S2:参见图4基于行的音频分离及歌词对齐流程图,包括以下步骤:
[0134] 步骤S2.1:以音频响度为阈值分隔音频,并与输入的歌词行数作对比,得到可能的基于行的分划Sj,j=1,2,…。
[0135] 步骤S2.2:对每个分划Sj作BPM(Beat Per Minute,每分钟节拍数)检测,具体地:
[0136] 步骤S2.2.1:对某个小区间作相位估计,若其相位估计值与实践值相差过大,则认定其为起始点。图5展示了在一段小区间内的双声道音频相位图,图中颜色亮的部分表明了带有高能量的音频所在的声相位置。本步骤所要作的即预测亮色音频在下一时间可能的声相位置并与实际值作对比;
[0137] 步骤S2.2.2:对起始点信息作平滑滤波处理;
[0138] 步骤S2.2.3:对经平滑滤波处理的信息作移动均值门限预处理;
[0139] 步骤S2.2.4:计算其自相关函数;
[0140] 步骤S2.2.5:通过构建HMM(隐马尔可夫模型)预测下一帧的节拍速度;
[0141] 步骤S2.2.5:输出节拍周期。
[0142] BPM计算公式如下:
[0143]
[0144]
[0145]
[0146] 其中Φi表示每个时间点处估计相位与实际相位的差,φi是实际相位, 为估计相位,ti为给定时间点,N表示在该分划下的时间点总个数,Time是该分划总时间,单位为分钟,A表示相位差阈值,由经验给出。
[0147] 步骤S2.3:对BPM值突变的分划作出标记,记作
[0148] 步骤S2.4:采用二分法,对每个标记的分划取时间中点为分划点作再分划并对每个分划再次检测BPM,直到BPM变化值小于给定值A或循环次数超过给定范围。如BPM变化值小于给定值,则取消该分划的标记,否则将BPM突变的点视作一个新的分划点,将原本标记的分划修改成两个新的分划。
[0149] 步骤S2.5:对新的分划个数与歌词行数对比,可能有如下三种情况:分划个数与歌词行数相等,则进行步骤S3;分划个数小于歌词行数,减小BPM变化值阈值,返回步骤S2.4,得到新的分划;分划个数大于歌词行数的,加大BPM变化值阈值,返回步骤S2.4,得到新的分划;直到分划个数与歌词行数相等,进入步骤S3。通过该方法分划的以文本行为分划标准的结果见图6,通过该步骤已经能输出常见的基于行对齐的歌词时间戳。
[0150] 步骤S3:图7展示了一种基于词的歌词对齐及时间戳生成流程图,具体包括以下步骤:
[0151] 步骤S3.1:将步骤S1分离出的人声转化为语谱图,具体地:
[0152] 步骤S3.1.1:预加重处理:
[0153]
[0154] 其中 为处理后的音频数据;
[0155] 步骤S3.1.2:以10ms为帧长进行分帧;
[0156] 步骤S3.1.3:对每一帧加窗,优选地,使用汉明窗;
[0157] 步骤S3.1.4:对每帧信号补零使其长度等于2的幂;
[0158] 步骤S3.1.5:对上述数据作DFT变换,并计算其功率谱;
[0159] 步骤S3.1.6:计算梅尔频率:
[0160] Mel(M,N)=10log10(X(m,n)·X(m,n)T)
[0161] 其中m是帧个数,n为帧长,M为时间,N为频率,X(m,n)是经DFT变换得到的数据,符号T为转置符号,Mel(M,N)是所求的在给定时间及频率时的能量密度。
[0162] 步骤S3.1.7:对上述输出取对数;
[0163] 步骤S3.1.8:对S3.1.7中的输出进行DCT(离散余弦变换);
[0164] 步骤S3.1.9:对上述结果进行归一化处理。
[0165] 图8即为上述步骤作出的语谱图,特别地,在图8中纵轴使用了对数刻度坐标,能更加清晰的观察到高能音频所在处置,有利于下一步图像识别。
[0166] 步骤S3.2:引入图像识别模块,优选地,使用Adaboost机器学习算法,对步骤S2给出的每行音频的语谱图作检测,找出其中能量密度最大的部分,并基于能量密度对该行音频的时间再次分割,得到每部分的音频时间Tj,w及总分割数Nj。在本方法中,Adaboost算法主要包括以下几个步骤:
[0167] 步骤S3.2.1:弱分类器建立,对输入数据的权重初始化;
[0168] 步骤S3.2.2:求解其权向量的最优解;
[0169] 步骤S3.2.3:计算误差,输出置信度;
[0170] 步骤S3.2.4:利用上述结论更新权重,并对权重作归一化处理;
[0171] 步骤S3.2.5:读入一组新的数据并得用上述解得的弱分类器计算下一个弱分类器;
[0172] 步骤S3.2.6:当计算完所有弱分类器后输出强分类器,得到模型结果。
[0173] 步骤S3.3:对给定的歌词在该行字数与步骤S3.2分割总数对比,若字数与分割总数相等,则将分割时间作为该行歌词的时间戳;其它情况则返回步骤S3.2,修改分类器权重后重新计算。
[0174] 同时记录下该行的循环次数,同之前对比的行的循环次数作比较,若循环次数不断递增,则以之前行中循环次数最小的行为基准,在该行之后的行返回步骤S2重新分划音频,该行及该行之前的语句则保留歌词时间戳。
[0175] 步骤S3.4:输出整首歌曲的歌词时间戳。图9则展示了其中一句的分划,可以看到在该方法下能自动找到给定歌词文本中每个字的发音时间,进而生成时间戳。
[0176] 为验证本发明的技术效果,以下将对基于语谱图识别的歌词时间戳生成方法与其他传统歌词对齐方法进行比较:
[0177] 实验所使用测试歌曲采样率为44.1KHz,采样位深度16位(无抖动)的wav文件,以人工对齐的时间戳作为标准,将本发明所提供的方法与LyricAlly系统、基于GMM‑HMM(高斯混合模型‑隐马尔可夫模型)的对齐方法进行比较。需要注意的是,因人工对齐总存在误差,在本次实验中认为误差小于0.1s的时间戳为有效时间戳(假设一首歌曲平均BPM为240,则大约一个音符时间为0.25s,而绝大多数流行歌曲的BPM小于200)。其中LyricAlly系统作为本领域早期的对齐方案,通过将一首流行歌曲拆分为前奏、合声、高潮等部分,并对可能的部分作人声检测,后使用音素时长估计语句时长并与歌词文本对齐;而GMM‑HMM对齐方法是通过将歌曲音频转化为MFCC(梅尔频率倒谱系数)后利用GMM‑HMM模型行进对齐,是现最主流的对齐方法。
[0178] 图10展示了不同对齐方案对各音乐风格的平均对齐准确率,因LyricAlly系统为基于英文歌曲开发的系统,移植难度较大,故本实验选取了不同乐曲风格的英文歌曲共计25首,每种风格各5首。可以看到LyricAlly系统作为本领域早期方案,仅具有研究意义,无法在实际工作中应用;而GMM‑HMM模型对齐则具有相对较好的对齐准确率,配合人工能极大的降低人员的工作量;本发明提出的基于语谱图识别的歌词时间戳生成方法则全面优于上述两种方案,对齐准确率高,且能适应不同风格的乐曲。
[0179] 下表1为上述对比实验的详细数据。可以看到,本发明提供的方法较GMM‑HMM模型在25首不同风格乐曲中有21首(84%)对齐准确率更高,其平均对齐准确率达81.91%,最低对齐准确率70.52%,较传统方法表现优异。
[0180] 表1本发明与其它传统方法对齐准确率百分比
[0181]
[0182]
[0183] 以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
[0184] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。