应用于基础音乐视唱教育的视唱音频智能评分建模方法与流程

文档序号:18731288发布日期:2019-09-21 00:33阅读:373来源:国知局
应用于基础音乐视唱教育的视唱音频智能评分建模方法与流程

本发明涉及一种应用于基础音乐视唱教育的视唱音频智能评分建模方法。



背景技术:

本系统实现用户录音与音频文件上传,进入系统后台服务器,对视唱练习音频进行智能评分,并将评分结果反馈回客户端。智能评分模块应用了机器学习建模,通过对比上传音频中的人声与标准音的差异,从节奏和音准两个角度分别进行评判,从而实现精准评测,并将结果反馈给用户,帮助用户提升自己音乐视唱方面的能力。



技术实现要素:

本发明的目的是提供一种应用于基础音乐视唱教育的视唱音频智能评分建模方法,帮助用户提升自己音乐视唱方面的能力。

上述的目的通过以下的技术方案实现:

一种应用于基础音乐视唱教育的视唱音频智能评分建模方法,数据的获取和预处理包括以下步骤:

步骤一:将系统预先收集的包含专家评分的视唱练习数据进行划分,将数据按2:1划分,其中的2份作为训练数据,1份为测试数据,使用训练数据建模;

步骤二:将音频数据进行去噪,剪裁无音频的空白片段,进行人声增强的数据预处理;

步骤三:将音频数据使用梅尔倒谱系数方法提取音频特征,抽取音高信息;

步骤四:将音频数据使用短时傅里叶变换提取频域特征,抽取其中包含的节拍信息,形成基于节奏的特征;

步骤五:将标准音频按照步骤二到步骤四抽取音准和节奏特征;

步骤六:将标准音频和视唱练习音频采用基于动态时间调整算法,对基于梅尔倒谱系数法获得的音准特征,进行比对;

步骤七:将标准音频和视唱练习音频采用基于线性哈希缩放算法,对基于短时傅里叶方法获得的节奏特征进行比对;

步骤八:将获得的音高与节奏的匹配向量作为训练数据,利用训练神经网络,当在测试数据集误差率小于1%时,验证过程结束;

步骤九:利用微信小程序的客户端界面,上传用户个人练习时的视唱音频,对这些上传的音频进行步骤二至步骤四,以及步骤六,步骤七的处理,之后输入训练好的神经网络模型,由神经网络输出相应的节奏、音准评分;将神经网络输出的相应节奏、音准的评分结果输出给微信小程序的接口,在客户端显示分数;

步骤十:将相应的音准向量和节奏向量返回给用户客户端界面。

有益效果:

1.本发明的评分效果可以达到专业评分的水平,与多位人类专家的评分均值误差较小。

2.本发明的评分运算效率较高,可以在5秒之内完成多个角度评分过程,达到工业应用要求。

3.本发明的抗噪能力较强,在有一定背景噪声的情况下也能较好的评分。

4.本发明的评分过程融合多种特征,可以从节奏、音准等多个角度评判分数。

附图说明

附图1是本发明的训练过程示意图。

附图2是本发明的评分过程示意图。

附图3是本发明的梅尔刻度的滤波器组的尺度变化示意图。

附图4是本发明的将信号分解,两个信号的卷积转化为两个信号的相加示意图。

附图5是本发明计算两个时间序列性之间的相似性示意图。

附图6是本发明的代价矩阵示意图。

附图7是本发明的音频做傅里叶变换后过频率来分离不同信号示意图。

具体实施方式

一种应用于基础音乐视唱教育的视唱音频智能评分建模方法,其特征是:数据的获取和预处理包括以下步骤:

步骤一:将系统预先收集的包含专家评分的视唱练习数据进行划分,将数据按2:1划分,其中的2份作为训练数据,1份为测试数据,使用训练数据建模;

步骤二:将音频数据进行去噪,剪裁无音频的空白片段,进行人声增强的数据预处理;

步骤三:将音频数据使用梅尔倒谱系数方法提取音频特征,抽取音高信息;

步骤四:将音频数据使用短时傅里叶变换提取频域特征,抽取其中包含的节拍信息,形成基于节奏的特征;

步骤五:将标准音频按照步骤二到步骤四抽取音准和节奏特征;

步骤六:将标准音频和视唱练习音频采用基于动态时间调整算法,对基于梅尔倒谱系数法获得的音准特征,进行比对;

步骤七:将标准音频和视唱练习音频采用基于线性哈希缩放算法,对基于短时傅里叶方法获得的节奏特征进行比对;

步骤八:将获得的音高与节奏的匹配向量作为训练数据,利用训练神经网络,当在测试数据集误差率小于1%时,验证过程结束;

所述的神经网络训练过程包括:(1)根据数据特性选择重要参数,包括激活函数,神经网络的隐层数量、各个隐层神经元节点数、学习率等;(2)将训练数据抽取的特征与标准音频特征对比后的距离数据作为两个向量,以专家给定的专业评分数据作为预测目标,进行神经网络的训练。使用反向传播算法让神经网络逼近目标值;当训练迭代后神经网络输出的目标与专家评分的误差小于一定阈值,当在测试数据集误差率小于1%时,验证过程结束;如果超过一万次迭代不能逼近目标的误差范围,则返回(1),重新调整重要参数的设定;

步骤九:利用微信小程序的客户端界面,上传用户个人练习时的视唱音频,对这些上传的音频进行步骤二至步骤四,以及步骤六,步骤七的处理,之后输入训练好的神经网络模型,由神经网络输出相应的节奏、音准评分;将神经网络输出的相应节奏、音准的评分结果输出给微信小程序的接口,在客户端显示分数;

步骤十:将相应的音准向量和节奏向量返回给用户客户端界面。

进一步的,基于步骤六,主要比对标准音频中的钢琴音高和视唱音频中的音高高低变化匹配程度,这里用到了线性音高校准的方法,先将人声和钢琴的音高进行线性缩放,确保其能量均值相同,在此基础上比较音频序列中音高变化的匹配向量。

进一步的,基于步骤七,主要比对标准音频中的钢琴节奏和视唱音频中的节奏快慢变化匹配程度。这里用到了线性节奏校准的方法,将人声的节奏进行线性缩放,确保其与钢琴的节奏变化率相同,在此基础上比较音频序列中节奏变化的匹配向量。

进一步的,基于步骤十,界面接口进行解析,标记在视唱曲目相应的曲谱位置,对用户匹配程度较差的位置进行标红注释。

梅尔频率倒谱系数就是组成梅尔频率倒谱的系数,梅尔频率倒谱系数特征提取包含两个关键步骤:转化到梅尔频率,然后进行倒谱分析。

进一步的,所述的梅尔频率是一种基于人耳对等距的音高变化的感官判断而定的非线性频率刻度;和频率的赫兹的关系如下:

所以当在梅尔刻度上是均匀分度的话,对于的赫兹之间的距离将会越来越大,所以梅尔刻度的滤波器组的尺度变化如图1,

梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的,这也是梅尔刻度的物理意义所在。

这一步的含义是:首先对时域信号进行傅里叶变换转换到频域,然后再利用梅尔频率刻度的滤波器组对应频域信号进行切分,最后每个频率段对应一个数值。

倒谱分析对时域信号做傅里叶变换,然后取log,然后再进行反傅里叶变换。可以分为复倒谱、实倒谱和功率倒谱,我们用的是功率倒谱;

倒谱分析可用:将信号分解,两个信号的卷积转化为两个信号的相加。

倒谱分析可用:将信号分解,两个信号的卷积转化为两个信号的相加。举例如下:

假设上面的频率谱X(k),时域信号为x(n)那么满足:

X(k)=DFT(x(n))

考虑将频域X(k)拆分为两部分的乘积:

X(k)=H(k)E(k)

假设两部分对应的时域信号分别是h(n)和e(n),那么满足:

x(n)=h(n)*e(n)

此时我们是无法区分开h(n)和e(n)。

对频域两边取log:

log(X(k))=log(H(k))+log(E(k))

然后进行反傅里叶变换:

IDFT(log(X(k)))=IDFT(log(H(k)))+IDFT(log(E(k)))

假设此时得到的时域信号如下:

x'(n)=h'(n)+e'(n)

虽然此时获得时域信号x’(n)即为倒谱,已经和原始的时域信号x(n)不一样,但是可以把时域信号的卷积关系转化为了线性加关系。

对应上图的频域信号,可以拆分成两部分的乘积:频谱的包络和频谱的细节。频谱的峰值即为共振峰,它决定了信号频域的包络,是辨别声音的重要信息,所以进行倒谱分析目的就是获得频谱的包络信息。包络部分对应的是频谱的低频信息,而细节部分对应的是频谱的高频信息。倒谱分析已经将两部分对应的时域信号的卷积关系转化为了线性加关系,所以只需要将倒谱通过一个低通滤波器即可获得包络部分对应的时域信号h’(t)。

基于动态时间调整算法的音准比较,是一种衡量两个时间序列之间的相似度的方法,主要应用在语音识别领域来识别两段语音是否表示同一个单词;

在时间序列中,需要比较相似性的两段时间序列的长度可能并不相等,在语音识别领域表现为不同人的语速不同。而且同一个单词内的不同音素的发音速度也不同,比如有的人会把“A”这个音拖得很长,或者把“i”发的很短。另外,不同时间序列可能仅仅存在时间轴上的位移,亦即在还原位移的情况下,两个时间序列是一致的。在这些复杂情况下,使用传统的欧几里得距离无法有效地求的两个时间序列之间的距离/相似性;

DTW通过把时间序列进行延伸和缩短,来计算两个时间序列性之间的相似性,如图3。

令要计算相似度的两个时间序列为X和Y,长度分别为|X|和|Y|,

归整路径的形式为W=w1,w2,...,wK,其中Max(|X|,|Y|)<=K<=|X|+|Y|,

wk的形式为(i,j),其中i表示的是X中的i坐标,j表示的是Y中的j坐标,

归整路径W必须从w1=(1,1)开始,到wK=(|X|,|Y|)结尾,以保证X和Y中的每个坐标都在W中出现,

另外,W中w(i,j)的i和j必须是单调增加的,以保证图1中的虚线不会相交,所谓单调增加是指:

wk=(i,j),wk+1=(i',j')

i≤i'≤i+1,j≤j'≤j+1

要得到的归整路径是距离最短的一个归整路径:

D(i,j)=Dist(i,j)+min[D(i-1,j),D(i,j-1),D(i-1,j-1)]

最后求得的归整路径距离为D(|X|,|Y|)。

使用动态规划来进行求解如图4,为代价矩阵(Cost Matrix)D,D(i,j)表示长度为i和j的两个时间序列之间的归整路径距离。

基于傅里叶变换的频域特征提取音频做傅里叶变换后可以过频率来分离不同信号,傅立叶的核心思想就是所有的波都可以用多个正弦波叠加表示,这里面的波包括从声音到光的所有波,所以,对一个采集到的声音做傅立叶变化就能分出好几个频率的信号。

傅立叶变换是一种分析信号的方法,它可分析信号的成分,也可用这些成分合成信号。它表示能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。许多波形可作为信号的成分,比如正弦波、方波、锯齿波等,傅立叶变换用正弦波作为信号的成分。

频域,尤其在射频和通信系统中运用较多,在高速数字应用中也会遇到频域,频域最重要的性质是:它不是真实的,而是一个数学构造。时域是惟一客观存在的域,而频域是一个遵循特定规则的数学范畴。

正弦波是频域中唯一存在的波形,这是频域中最重要的规则,即正弦波是对频域的描述,因为时域中的任何波形都可用正弦波合成。这是正弦波的一个非常重要的性质。然而,它并不是正弦波的独有特性,还有许多其他的波形也有这样的性质。使用正弦波作为频域中的函数形式有它特别的地方。若使用正弦波,则与互连线的电气效应相关的一些问题将变得更容易理解和解决。如果变换到频域并使用正弦波描述,有时会比仅仅在时域中能更快地得到答案。

而在实际中,首先建立包含电阻,电感和电容的电路,并输入任意波形。一般情况下,就会得到一个类似正弦波的波形。而且,用几个正弦波的组合就能很容易地描述这些波形。

基于线性哈希缩放的节奏比对从节奏方向对比两段音频需要考虑到用户哼唱旋律快慢的不同,采用线性伸缩算法可以快速计算两个不同长度序列之间的线性距离,在哼唱节奏评分中使用线性伸缩算法的主要原因是由于用户的哼唱速率与原始歌曲的演奏速率不一致,通过线性伸缩,可以把哼唱片段进行拉伸或者压缩,是与原始歌曲的速率保持一致,此算法的关键是使用相同的伸缩因子把哼唱片段中提取的基频序列进行不同程度的伸缩,然后计算对应原始歌曲的节奏对比。

采用线性伸缩算法可以解决哼唱速率与原始歌曲速率不一致的问题,但是此算法可靠性的前提是哼唱速率与原始歌曲速率完全成比例,即不会出现有时快有时慢的现象,如果哼唱速率是变化的,采用线性伸缩算法就会出现问题。

当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1