一种钢琴演奏评估方法及系统与流程

文档序号:12826847阅读:314来源:国知局
一种钢琴演奏评估方法及系统与流程

本发明涉及音乐评估领域,特别是涉及一种钢琴演奏评估方法及系统。



背景技术:

钢琴,因为它的易上手性和艺术性,拥有大量业余爱好者和专业学习者。通常情况下,钢琴学习需要有专业老师的指导,在教学的同时对钢琴学员在演奏过程中发生的错误进行纠错。然而,专业老师无法每时每刻地关注每一个练习者,因此在大多数时间里,练习者需要独立练习从而能够准确、流畅地弹奏钢琴。尽管很多初学者会用各种录音设备录下专业老师弹奏的相对“准确”的版本,但是由于初学者对于音符的认知比较浅显,当一名初学者在练习钢琴曲时,他并不能判断自己所弹奏结果是否与老师弹奏的版本一致,即使能判别出不同但也无准确地找到出错的位置。这决定了他必须等到下次教学通过专业老师的评判来做出纠正,从而导致练习效率低下,这显然是无法接受的。

而现有技术中,能够辅助初学者在刚开始练习钢琴时也能在没有老师的陪伴下独立地找到弹奏的错误并及时进行纠正的相关技术鲜有涉及,使钢琴练习者练习时的效率和最终乐曲演奏的准确率难以快速的提高。



技术实现要素:

本发明的目的是提供一种钢琴演奏评估方法及系统,使钢琴练习者在没有老师的陪伴下能够独立地找到弹奏的错误并及时的纠正,提高练习效率。

为实现上述目的,本发明提供了如下方案:

一种钢琴演奏评估方法,所述方法包括:

获取待评估音乐;

获取样本音乐;

提取所述待评估音乐的半音类特征;

提取所述样本音乐的半音类特征;

采用动态时间规整(dynamictimewrapping,dtw)算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点;

提取所述样本音乐在所述出错时间点的正确的频谱特征;

对所述正确的频谱特征进行处理,得到正确的音符。

可选的,所述提取所述样本音乐在所述出错时间点的正确的频谱特征,具体包括:

提取所述样本音乐在所述出错时间点的音乐信号;

采用短时傅里叶变换方法对所述出错时间点的音乐信号进行处理,得到所述音乐信号的频谱特征。

可选的,所述对所述正确的频谱特征进行处理,得到正确的音符,具体包括:

获取所述正确的频谱特征;

对所述正确的频谱特征进行非负矩阵分解(non-negativematrixfactorization,nmf),得到和弦中各音高的频谱特征;

根据各所述音高的频谱特征计算各所述音高的频率;

将各所述音高的频率转换为音符;

将所述音符输出。

可选的,在所述对所述正确的频谱特征进行非负矩阵分解之前,还包括:

对所述正确的频谱特征进行去噪处理。

可选的,所述采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点,具体包括:

采用基于节拍的分帧方式对所述待评估音乐的半音类特征和所述样本音乐的半音类特征分别进行分帧;

采用动态时间规整算法对分帧后的所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点。

本发明还提供了一种钢琴演奏评估系统,所述系统包括:

待评估音乐获取模块,用于获取待评估音乐;

样本音乐获取模块,用于获取样本音乐;

待评估音乐特征提取模块,用于提取所述待评估音乐的半音类特征;

样本音乐特征提取模块,用于提取所述样本音乐的半音类特征;

匹配比较模块,用于采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点;

正确频谱特征提取模块,用于提取所述样本音乐在所述出错时间点的正确的频谱特征;

正确音符确定模块,用于对所述正确的频谱特征进行处理,得到正确的音符。

可选的,所述正确频谱特征提取模块,具体包括:

音乐信号提取单元,用于提取所述样本音乐在所述出错时间点的音乐信号;

频谱特征确定单元,用于采用短时傅里叶变换方法对所述出错时间点的音乐信号进行处理,得到所述音乐信号的频谱特征。

可选的,所述正确音符确定模块,具体包括:

正确频谱特征获取单元,用于获取所述正确的频谱特征;

矩阵分解单元,用于对所述正确的频谱特征进行非负矩阵分解,得到和弦中各音高的频谱特征;

音高频率计算单元,用于根据各所述音高的频谱特征计算各所述音高的频率;

频率音符转换单元,用于将各所述音高的频率转换为音符;

音符输出单元,用于将所述音符输出。

可选的,正确音符确定模块,还包括:

去噪单元,用于对所述正确的频谱特征进行去噪处理。

可选的,所述匹配比较模块,具体包括:

分帧单元,用于采用基于节拍的分帧方式对所述待评估音乐的半音类特征和所述样本音乐的半音类特征分别进行分帧;

匹配比较单元,用于采用动态时间规整算法对分帧后的所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点。

根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明通过提取待评估音乐和样本音乐的半音类特征,采用节拍级别的半音类特征作为音频对齐的基础,采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点,提取所述样本音乐在所述出错时间点的正确的频谱特征,对所述正确的频谱特征进行非负矩阵分解以及音符的转换,最终输出正确的音符,向练习者呈现弹奏的错误所在以及正确的音符。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例钢琴演奏评估方法流程示意图;

图2为本发明实施例动态时间规整算法的结果图;

图3为本发明实施例t·h·贝利的《多年以前》第1、2小节的频谱图;

图4为本发明实施例由单音组成的钢琴曲的非负矩阵分解结果图;

图5为本发明实施例未优化频谱与优化后的频谱的对比图;

图6为本发明实施例第一段多音音乐的非负矩阵分解结果图;

图7为本发明实施例第二段多音音乐的非负矩阵分解结果图;

图8为本发明实施例钢琴演奏评估系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的目的是提供一种钢琴演奏评估方法及系统,使钢琴练习者在没有老师的陪伴下能够独立地找到弹奏的错误并及时的纠正,提高练习效率。

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

图1为本发明实施例钢琴演奏评估方法流程示意图,如图1所示,本发明提供的钢琴演奏评估方法步骤如下:

步骤101:获取待评估音乐;

步骤102:获取样本音乐;

步骤103:提取所述待评估音乐的半音类(chroma)特征;

步骤104:提取所述样本音乐的半音类特征;

步骤105:采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点;

步骤106:提取所述样本音乐在所述出错时间点的正确的频谱特征;

步骤107:对所述正确的频谱特征进行处理,得到正确的音符。

其中,步骤105具体包括:

采用基于节拍的分帧方式对所述待评估音乐的半音类特征和所述样本音乐的半音类特征分别进行分帧;

采用动态时间规整算法对分帧后的所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点。

步骤106具体包括:

提取所述样本音乐在所述出错时间点的音乐信号;

采用短时傅里叶变换方法对所述出错时间点的音乐信号进行处理,得到所述音乐信号的频谱特征。

步骤107具体包括:

获取所述正确的频谱特征;

对所述正确的频谱特征进行非负矩阵分解,得到和弦中各音高的频谱特征;

根据各所述音高的频谱特征计算各所述音高的频率;

将各所述音高的频率转换为音符;

将所述音符输出。

在所述对所述正确的频谱特征进行非负矩阵分解之前,还包括:对所述正确的频谱特征进行去噪处理。

作为本发明一个优选的实施例,提取待评估音乐和样本音乐的半音类特征。半音类是一种基于频率的特征,它的原理是将声音的频率特征按照某个规则放入一个大小为12的频率容器中,并把该声音所处的容器作为一个特征。在音乐声学中,一般认为两个相差八度的音是类似的。因此,半音类会把相隔八度的两个音放入同一个容器中。这样,即使我们无法得知音高的绝对频率,也能够通过半音类来获取足够多的音乐信息。此外,该特征还可以显示不同音乐信号的相似度,而这是频谱特征所无法提供的。

对于半音类特征,即使我们对音频不做任何的降噪处理,也同样能够得到一个良好的结果。相比其他特征,半音类更有鲁棒性,能够屏蔽掉噪声对于音频特征的影响。并且,半音类特征所提供的信息足够满足动态时间规整对齐时的信息需求。

作为本发明的一个优选的实施例,采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点。

动态时间规整方法的目的是在两个序列中找到一条最优的“路径”,使得这两个序列最大程度的匹配。该算法基于动态规划的思想,解决了由于序列长短不一而导致的模板匹配问题。动态时间规整有简单、有效、算法复杂度低、易于编写等特点,在各种领域都有广泛的应用。

在这里,我们使用动态时间规整来对两个音频片段进行对齐。假设样本片段的特征序列为s={s1,s2,s3,…,sp},预检测片段为t={t1,t2,t3,…,tq}。其中p为样本片段分帧后的帧数,q为预检测片段分帧后的帧数。

如果对这两个序列,满足p=q,则我们可以简单的通过计算两点之间的欧式距离dist(i,j)=|si-tj|2来判断是否对齐匹配。然而在大多数情况下,两个音频片段分帧所产生的序列的帧数为:p≠q,因此我们需要在时间域上做一定的拉伸,将两个序列对齐。

我们知道,需要对齐的两个时长不同的音频片段的内容实际上是同一首钢琴曲。因此对于这两个片段而言,它们只在每个音的时长上有所不同,而基本不会改变音频片段中音符出现的前后顺序。

基于以上因素,我们创建一个p×q矩阵d,其中d(i,j)表示si、tj两点之间的欧几里得距离。此外,我们定义一个规整路径w={w1,w2,w3,…,wk,…,wm}。通常该规整路径满足如下约束:

1)边界约束。规整路径必须从s1、t1开始,结束于sp、tq,即

w1=d(1,1),wm=d(p,q);

2)单调性。规整路径必须保证不违背音频片段各部分的时间顺序,即

wk≤wk+1;

3)连续性。规整路径不允许跳过任何一点,即

wk+1-wk≤1。

在这里,我们采用如下公式来描述这条路径的搜索过程:

d(i,j)=distance+min(d(i-1,j),d(i,j-1),d(i-1,j-1))

其中,distance表示si,tj两点之间的欧几里得距离。

图2为本发明实施例动态时间规整算法的结果图,如图2显示了动态时间规整在对两个音频片段对齐后的结果。图2中纵坐标为样本片段的特征序列,横坐标为预检测片段的特征序列。斜线表示两段音频片段在该段区域内是一一对齐的。图中路径发生拐点的地方为音频对齐不成功的位置。其中,图2中a图表示完全没有错误。图2中b图中两个圆点间的竖线表示预检测片段中删除一个音后的结果,图2中c图中的两个圆点间的横线表示预检测片段中添加一个音后的结果。

从图2中可以看出,当没有产生错误时,动态时间规整路径是一条从左上角出发,到右下角结束的斜线。当发生一个删除错误或是一个不正确错误时,动态时间规整路径产生一条竖直线段。同样的,当发生一个插入错误时,动态时间规整路径会在相应的时间区域产生一条水平线段。由此我们可以得到预检测片段中错误的时间区域和错误类型。

一般而言,动态时间规整采用固定分帧方式得到所需要的输入序列。然而由于音频的不稳定性,固定分帧会使得某些音符被切割到两个帧中,从而使得后续的序列发生大规模的偏移,进一步导致对齐失败。因此,这里我们决定采用一种基于“节拍”的分帧方式来避免这种偏移的发生。

此外,动态时间规整能够同时检测出音符的时长是否正确,即对于某个标准时长为1拍的音符,如果在被检测片段中为2拍或者1/2拍,则都会在动态时间规整中有水平或竖直的显示。然而,基于节拍分帧的动态时间规整方法并不会把以下这种情况当作错误:被检测片段的节拍速度与样本片段不同,但保持节拍稳定且音符准确。

为了优化某些在录制过程中造成的较为明显的噪声,我们对在路径周围设置了一个阈值,使得某些短的偏移量能够被优化掉。由于动态时间规整对节拍速度较慢的片段(<60bpm)的检测比节拍速度较快的片段(>80bpm)的检测要更为准确,因此,我们决定根据音频片段的节拍速度来决定阈值的大小,其中节拍速度较慢的音乐的阈值较大,节拍速度较快的音乐的阈值较小。

作为本发明一个优选的实施例,采用短时傅里叶变换方法对所述出错时间点的音乐信号进行处理,得到所述音乐信号的频谱特征。

经过动态时间规整对齐,我们得到一组时间数据,即被检测片段上所有错误所在的时间片段。我们将这些时间片段一一对应到样本演奏片段上,并对样本片段上的每一个这样的时间片段做进一步的分析。

在这里,我们首先需要在该时间片段上选取特征信号。与图像信号不同,音频信号不是稳定的信号,因此我们不能简单地使用快速傅里叶变换来对输入源做处理。因此,这里我们决定采用短时傅里叶变换的方法在音乐信号上提取特征,因为我们认为在一个非常短的时间片段里(数量级在10-5s,约在30~50ms内),这个音频信号是稳定的。

短时傅里叶变换的数学定义如下:

短时傅里叶变换的数学定义如下:

其中w(t)是窗函数。x(t)是输入信号,即样本片段上的某个时间片段。

在本系统中,我们选取汉宁窗作为短时傅里叶变换的窗函数。其中,时间域上的窗口宽度为128个采样点,步长为1个采样点。此外,为得到较高的频率分辨率,我们选取傅里叶系数为8196,确保在低频区域也能够较好的发现出半音上的差异。

因此,音频信号在经过短时傅里叶变换后返回的结果是一个2维的复数矩阵,其中横坐标为时间域,纵坐标为频率域。

在对时间片段进行短时傅里叶变换之后,我们选取该傅里叶变换的结果x(t,f)的绝对值作为下一步的特征,显然,这个矩阵是非负。我们把这个非负矩阵称为频谱特征。图3为本发明实施例t·h·贝利的《多年以前》第1、2小节的频谱图,如图3所示,其中纵坐标为频率域(0~1345hz),横坐标为时间域(0~5s)。图中亮点表示该时刻该频率的能量较高。

然而,通过大量实验表明在一个时长为30s的音乐片段上进行短时傅里叶变换,其开销的时间是非常庞大的(10s至20s左右)。因此,为了使系统的计算时间不至于过长,但又需要保证非负矩阵分解的准确率,我们最终决定,在错误的时间点的周围截取一段延伸长度约为5~8个节拍的时间片段作为一个新的输入信号。

由动态时间规整我们可以得到起始时间为st,终止时间为et。然后,我们分别对两端做延伸,其扩展时间分别为rot、lot。因此,最终截取的音频区间为[st-lot,et+rot]。

这样做的原因是,由于非负矩阵分解的本质是基于迭代的方式进行矩阵分解,即每次迭代都需要使用原始的被分解矩阵和上一次的迭代结果,因此,非负矩阵分解要求被分解矩阵具有一定的数据量,这样才能在分解过程中得出更细小的成分,从而使得和弦的提取能够更为准确。

作为本发明一个优选的实施例,对所述正确的频谱特征进行非负矩阵分解,得到和弦中各音高的频谱特征。

非负矩阵分解算法需要将一个大小为m×n的原始矩阵vm×n分解为两个新的矩阵,使其满足v≈wh,或

v≈wh中的每一列表示成v≈wh,其中向量v和向量h分别为矩阵v和矩阵h中所对应的列。由此,我们把矩阵w的每一行乘上向量h并将其线性相加就能近似地模拟出原始矩阵v中的每一组向量v。在这里,我们称矩阵w是原始矩阵v的一个基向量,而h中的每列则称为矩阵v中每列的权重,又被称为编码向量。

为了能够对矩阵分解的结果做出优劣权衡,需要定义一个代价函数(costfunction)。一般而言,有以下几种方式来表示一个代价函数:

计算矩阵a和矩阵b的欧几里得距离(euclideandistance):

当且仅当a=b时,‖a-b‖2有最小值0。

计算矩阵a到矩阵b的“散度”:

当且仅当a=b时,d(a||b)有最小值0。

为了能够找到满足原矩阵v≈wh的分解矩阵w和h,非负矩阵分解算法的代价函数有:

对一个非负矩阵vm×n,找到两个非负的分解矩阵w、h,使得如下等式的值最小

基于欧几里德距离的代价函数:

其中,分解矩阵w的大小为m×r,分解矩阵h的大小为r×n,分解级数r需要满足条件(n+m)r<nm。为弗罗贝尼乌斯范数(frobeniusnorm)。

基于“散度”的代价函数:

其中,是哈达玛(hadamard)乘积(矩阵元素级),式中除法为矩阵元素级除法,即对于任意i≤m、j≤n,有

在进行非负矩阵分解时,它的每次分解迭代都会基于上一步迭代后产生的旧的分解矩阵w和h,并由此得到两个新的分解矩阵w和h。事实上,这个迭代过程是收敛的。接下来,将分别给出基于不同代价函数的迭代规则:

基于欧几里得距离的迭代规则:

基于“散度”d(v||wh)的迭代规则:

我们知道,钢琴的音高分布在27.5hz~4186hz(a0~c8)。然而,由于初学者接触钢琴的时间不长,在对大量初级乐谱进行统计分析后我们发现,初学者一般常用到的音高区间为65.41hz~523.2hz(c2~c5)。因此,我们选取频谱中低频区域和中频区域(<538hz)来进行进一步的非负矩阵分解分解,而无视了存在大量谐频的高频区域。尽管这个方法会将丢失某些音高较高的音符,但却仍是很有必要的。这样不仅能够提高非负矩阵分解的运算速度,同时也大大减弱了大量谐频对分解结果的影响。本发明具体参考了p.smaragdis和j.d.brown于2003年提出的一种非负矩阵分解分解方法。代价函数使用了矩阵的散度,而迭代规则使用了基于散度的迭代规则。

图4为本发明实施例由单音组成的钢琴曲的非负矩阵分解分解结果图,如图4所示,分解矩阵h很好地反映了不同音高在时间上的分布,分解矩阵w则是频率域上的各分解成分,其基频对应了相应的音高。

由此可见,在单音音乐的分解上,非负矩阵分解方法与其他音高检测方法一样,都有非常高的准确率。

此外我们发现,r=4并不是一个我们预计中应该出现的成分。通过分析它的频谱我们得出,r=4是由噪声引起的。这个噪声在w中的频率域上,频率分布几乎没有规律,而h中r=4在时间域上的峰值与每个音符实际出现的位置大致吻合。

事实上,这是由环境噪声和录制设备引起的。并且,这个噪声在录制时无法避免。产生这样的噪声的原因是:一个正常的录音设备在进行录音时,为了能够尽可能的消除环境噪声对声音的影响,当录音环境比较安静时录音设备会调小麦克风的收音音量,从而削弱环境噪声。而在外界的声音的分贝值提高时(一般为人声或者乐器声)会增大麦克风的收音音量,由此也录入了更多的环境噪声。对于人耳来说,由于声音的掩蔽效应,几乎无法感知到这种变化。但对于计算机而言,则会检测到这个噪声。

为了消除这个噪声,我们可以采取以下两种方法:

1)对分解矩阵w和h做进一步处理。

由于噪声在w的频谱域和h的时间域上的波动都相对比较巨大,因此通过计算方差来消除噪声,如下:

其中,std(wr)为w中每个r的方差。我们认为,方差最大的那个r一定含有大量的噪声成分。尽管多数实验证明这个方法是可行的,但是从理论上来说,这个方法并不可靠。此外,这个方法并不能彻底消除噪声对非负矩阵分解分解的影响。因此,我们使用第二种方法。

2)在做非负矩阵分解分解前,先行对频谱进行优化。

对于频谱m的每一列m提取峰值,并将其他值置为0:

其中,mi(j)表示矩阵m中的第i列第j个元素;t是一个阈值,用来消除环境噪声。附图8为未优化频谱与优化后的频谱的对比。

相比第一种方法,这种方法能够更准确且完整地去除噪声。但是,这也会同时删去一些能量较低却又不是噪声的部分,图5为本发明实施例未优化频谱与优化后的频谱的对比图,如图5所示,有部分音高(a3、b3)的谐频被误删除了。这里,我们选取优化阈值t=0.3。未优化的频谱(图5中的图a)在低频处和高能频率周围明显存在噪声。而在经过优化后(图5中的图b),这些噪声被显著地消去了。

多音音乐在同一时间会出现多个不同的音高,即和弦,因此我们需要通过非负矩阵分解将一个和弦中的不同音高一一分离。图6为本发明实施例第一段多音音乐的非负矩阵分解结果图,如图6所示,它含有4组和弦(“c2,d3”、“c2,f#3”、“c2,a3”以及“c2,f#3”)。

从图6可看出,r=2,3,4,5,6,7,9分别代表了图6-a的乐谱中出现的全部7个不同的音高,其中r=4代表音高“c2”。尽管“c2”在乐曲中并没有单独出现,但从图6-b中可得知,在频率域上音高“c2”被完美地从和弦中分离出来。同样从图6-c可看出,“c2”在时间域分布基本与频谱相符。

然而,当我们对图6中的乐谱做一些变化,其结果就不尽如人意了。图7为本发明实施例第二段多音音乐的非负矩阵分解结果图,如图7所示,在这个音乐片段中出现了两组相同的和弦(都由“d2”和“a3”组成)。

从图7中看出,和弦“d2、a3”的信息被一同分解为成分r=4,而没有像图6一般将其分解为单一音高“d2”和“a3”。我们认为,产生此类漏检的原因是:尽管非负矩阵分解算法在不断地迭代中,始终试图找出频谱中每一个尽可能是最小的成分,但是对于和弦“d2、a3”而言,并不存在比它更小的成分,如单独出现的音高“d2”或“a3”,因此,非负矩阵分解将整个和弦当作成一个成分。

当然,这个漏检对接下来音符的提取的影响并不大。我们可以用一种简便的方法将音高从一个成分中分离出来。

首先,我们对一个成分提取出在阈值tr下的一组峰值[j,r(j)],满足:

r(j)>max(r(j))×trandr(j)>r(j-1)andr(j)>r(j+1)

其中,j是对应峰值的音高频率,r(j)是相应音高的能量。接下来,为了消除谐频对检测的准确率的影响,我们对每个峰值的频率做如下判断:对于r中的任意峰的频率j,有1<j<length(r),如果j是其他任一峰的频率k的整数倍,则认为j是频率k的一个谐频,将其删除。否则就认为该峰值所在的频率是某个音高的基频,并保留之。

作为本发明一个优选的实施例,将各所述音高的频率转换为音符。

我们可以把频谱中的各个音高的频率用如下公式进行计算:

其中,f是计算出的频率;fs是音频文件的采样频率;fft是傅立叶变换系数;j是该音高在分解矩阵w的频率域的位置下标。

接下来,我们采用乐器数字接口(midi)标准将频率转换为音符。公式如下:

k=round(p÷12)-1

i=pmod12

其中,k、i采用四舍五入取整,p是音高的乐器数字接口数字表示,其值由式2-1得出;k是该音高所在八度,ki表示音高的色度且有:

k={c,c#/db,d,d#/eb,e,f,f#/gb,g,g#/ab,a,a#/bb,b}。

本发明提供的钢琴演奏评估方法通过提取待评估音乐和样本音乐的半音类特征,采用节拍级别的半音类特征作为音频对齐的基础,采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点,提取所述样本音乐在所述出错时间点的正确的频谱特征,对所述正确的频谱特征进行非负矩阵分解以及音符的转换,最终输出正确的音符,向练习者呈现弹奏的错误所在以及正确的音符。

本发明还提供了一种钢琴演奏评估系统,图8为本发明实施例钢琴演奏评估系统结构示意图,如图8所示,所述系统包括:

待评估音乐获取模块801,用于获取待评估音乐;

样本音乐获取模块802,用于获取样本音乐;

待评估音乐特征提取模块803,用于提取所述待评估音乐的半音类特征;

样本音乐特征提取模块804,用于提取所述样本音乐的半音类特征;

匹配比较模块805,用于采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点;

正确频谱特征提取模块806,用于提取所述样本音乐在所述出错时间点的正确的频谱特征;

正确音符确定模块807,用于对所述正确的频谱特征进行处理,得到正确的音符。

其中,正确频谱特征提取模块806,具体包括:

音乐信号提取单元,用于提取所述样本音乐在所述出错时间点的音乐信号;

频谱特征确定单元,用于采用短时傅里叶变换方法对所述出错时间点的音乐信号进行处理,得到所述音乐信号的频谱特征。

正确音符确定模块807,具体包括:

正确频谱特征获取单元,用于获取所述正确的频谱特征;

矩阵分解单元,用于对所述正确的频谱特征进行非负矩阵分解,得到和弦中各音高的频谱特征;

音高频率计算单元,用于根据各所述音高的频谱特征计算各所述音高的频率;

频率音符转换单元,用于将各所述音高的频率转换为音符;

音符输出单元,用于将所述音符输出。

去噪单元,用于对所述正确的频谱特征进行去噪处理。

匹配比较模块805,具体包括:

分帧单元,用于采用基于节拍的分帧方式对所述待评估音乐的半音类特征和所述样本音乐的半音类特征分别进行分帧;

匹配比较单元,用于采用动态时间规整算法对分帧后的所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点。

本发明提供的钢琴演奏评估系统通过提取待评估音乐和样本音乐的半音类特征,采用节拍级别的半音类特征作为音频对齐的基础,采用动态时间规整算法对所述待评估音乐的半音类特征和所述样本音乐的半音类特征进行匹配比较,得到所述待评估音乐与所述样本音乐不相匹配的出错时间点,提取所述样本音乐在所述出错时间点的正确的频谱特征,对所述正确的频谱特征进行非负矩阵分解以及音符的转换,最终输出正确的音符,向练习者呈现弹奏的错误所在以及正确的音符。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

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