演奏训练装置及演奏训练方法

文档序号:2833415阅读:174来源:国知局
专利名称:演奏训练装置及演奏训练方法
技术领域
本发明涉及适于在电子乐器中使用的演奏训练装置及演奏训练方法。
背景技术
已知有基于通过对使用者(演奏者)的演奏进行评价而得到的结果来提高练习效果的演奏训练装置。作为这种技术,例如在特开2011 - 53579号公报中公开了如下技术基于演奏输入的演奏数据与相当于模范演奏的音符数据之间的比较,判断演奏错误的有无,如果有演奏错误,则按照所对应的演奏错误项目分别进行分类汇总,由此提取容易演奏错误的乐音,在该容易演奏错误的乐音再次产生了演奏错误的情况下,为了矫正使用者的出错习惯,反复练习该容易演奏错误的乐音的演奏。然而,在上述特开2011 - 53579号公报所公开的技术中,仅仅是在重复相同错误的情况下反复练习容易演奏错误的乐音的演奏,因此,存在不能够给出与使用者的状态相对应的最佳建议的问题。本发明鉴于这样的情况而做出,其目的在于提供一种演奏训练装置及演奏训练方法,能够给出与使用者的状态相对应的最佳建议。

发明内容
为了实现上述目的,本发明的演奏训练装置的特征在于,具备建议生成部,生成建议;取得部,在由该建议生成部生成建议后,基于通过演奏规定乐曲而得到的演奏数据,取得该演奏的完成度;计算部,基于由该取得部取得的完成度、以及在该取得的完成度之前取得的完成度,计算完成度变化量;存储控制部,使规定的存储器存储以所述之前取得的完成度、完成度变化量以及所述生成的建议为一组的数据组;以及建议控制部,从所述存储器所存储的多组数据中,选择在完成度最接近于所述取得的完成度且完成度变化量最大的数据组中包含的建议数据,并且,控制所述建议生成部以使其生成该选择的建议。


图1是表示第一实施方式的演奏评价装置100的整体结构的框图。图2是表示主程序的动作的流程图。图3是表示相当部位确定处理的动作的流程图。图4是表示距离计算处理的动作的流程图。图5是表示DP匹配处理的动作的流程图。图6是接着图5的、表示DP匹配处理的动作的流程图。
图7是表示演奏判定处理的动作的流程图。图8表示完成度计算处理的动作的流程图。图9是接着图8的、表示完成度计算处理的动作的流程图。图10是表示变量更新处理的动作的流程图。图11是表示最大Q行动处理的动作的流程图。图12是表示价值函数表value的一例的图。图13是表示建议处理的动作的流程图。图14是用于说明第二实施方式的概要的图。图15是表示第二实施方式的变量更新处理的动作的流程图。图16是表示第二实施方式的最大Q行动处理的动作的流程图。图17是用于说明第二实施方式的变形例的图。
具体实施例方式以下,参照附图来说明本发明的实施方式。[第一实施方式]A.结构图1是表示第一实施方式的演奏评价装置100的整体结构的框图。在该图中,键盘10产生包含与演奏输入(按下或离开的键操作)相对应的键按下/键抬起事件、键编号及速度等的演奏信息。开关部11具有在装置面板配设的各种操作开关,产生与使用者操作的开关种类对应的开关事件。作为开关部11中配设的主要开关,例如进行电源的接通断开的电源开关之外,还有对成为范本(模范演奏)的乐曲数据进行选择的乐曲选择开关、用于指示动作的结束的结束开关等。显示部12由IXD面板等构成,根据被从CPU13供给的显示控制信号,在演奏输入时对乐曲数据进行乐谱显示或在演奏结束后对演奏评价结果进行显示,除此之外对装置的动作状态或设定状态进行显示。CPU13将键盘10与演奏输入相对应地产生的演奏信息变换为MIDI形式的演奏数据(音符开启/音符关闭等),对变换后的演奏数据一方面进行存储,另一方面供给至音源16而指示音乐产生。此外,CPU13基于所存储的演奏数据与构成成为范本(模范演奏)的乐曲数据的音符数据之间的比较,评价使用者的演奏技能,取得考虑了乐曲的难易度后的完成度,向使用者给出用于进一步提高所取得的完成度的最有效的建议。关于这样的本发明所涉及的CPU13的特征性的处理动作,将随后详细描述。R0M14中存储有加载在CPU13中的各种控制程序。所谓各种控制程序包含有后述的构成主程序的相当部位确定处理、演奏判定处理、完成度计算处理、变量更新处理及建议处理。另外,相当部位确定处理包括距离计算处理及DP匹配处理,变量更新处理包括最大Q行动(Q action)处理。 RAM15具备工作区域、演奏数据区域及乐曲数据区域。RAM15的工作区域中暂时存储有CPU13的处理所使用的各种寄存器 标志数据,此外,还具备登录有与演奏技术的种类对应的难易度的难易度表iFTCost、基于Q学习理论而生成的价值函数(value function)表value。关于该难易度表iFTCost、价值函数表value的用途,随后进行描述。
RAMl5的演奏数据区域中存储有CPUlO与演奏输入相对应地生成的多个演奏音的演奏数据。RAM15的乐曲数据区域中保存有多个乐曲的成为范本(模范演奏)的乐曲数据。乐曲数据由表示用于形成乐曲的多个音符的音符数据构成。构成乐曲数据的音符数据区分有用右手弹奏的右手部分、用左手弹奏的左手部分及用双手弹奏的左右两部分。I 个音符数据由 iTime、iGate、iPit、iVel、iTech 及 iClear 构成。iTime 表不发音时刻,iGate表示音长,iPit表示间距(音高),iVel表示速度(音量)。iTech是表示演奏技术的种类的值。所谓演奏技术的种类是指,“手指下穿(pass-under)”、“手指横跨(cross-over)”等手指的移动方法的种类。在为负值的情况下,表示是不要求演奏技术的音符,0以上的值表示演奏技术的种类。以下,将iTech称为演奏技术类型。iClear是表示对应的音符是否如范本那样被正确地弹奏了的标志,在为“I”的情况下表示如范本那样正确地进行了弹奏,在为“0”的情况下表示没有被正确地弹奏。以下,将iClear称为弹奏正确标志 iClear。音源16由公知的波形存储器读出方式构成,产生与从CPU13供给的演奏数据相对应的音乐数据并进行输出。音频系统17将从音源16输出的音乐数据变换成模拟形式的音乐信号之后,实施从该音乐信号中除去不需要的噪声等的滤波处理,之后进行电平放大而从扬声器发音。B.动作接下来,参照图2 图9来说明上述结构的演奏评价装置100的动作。以下,描述CPU13所执行的主程序、相当部位确定处理、演奏判定处理、完成度计算处理、变量更新处理及建议处理的各动作。另外,相当部位确定处理包括距离计算处理及DP匹配处理,变量更新处理包括最大Q行动处理。(I)主程序的动作图2是表示主程序的动作的流程图。若对演奏评价装置100接通电源,则CPU13执行图2所图示的主程序而使处理前进至步骤SA1,进行使装置各部初始化的初始化。若初始化结束,则CPU13进入步骤SA2,判断是否进行了结束操作。如果没有进行结束操作,判断结果为“否”,进入步骤SA3。在步骤SA3中,执行将CPUlO与演奏输入相对应地生成的演奏数据保存在RAM15的演奏数据区域中的演奏输入处理。另外,在演奏输入处理中,将通过乐曲选择开关操作而选择的乐曲数据作为练习课题,使显示部12显示该乐曲数据,使用者观看该乐谱来进行弹奏乐曲的各乐音的演奏输入。接着,在步骤SA4中执行如下的相当部位确定处理确定出通过使用者的演奏输入而产生的演奏数据相当于成为范本(模范演奏)的乐曲数据中的哪个音符数据,并且该相当音符数据是在右手部分、左手部分及左右两部分中的哪个部分中被弹奏的。接着,在步骤SA5中执行如下的演奏判定处理比较在上述步骤SA4中确定出的音符数据的间距iPit和演奏数据的音高,判定该音符数据的乐音是否被正确地弹奏,将被正确地弹奏的音符数据的弹奏正确标志iClear设置为“I”。然后,在步骤SA6中执行完成度计算处理。在完成度计算处理中,如后述那样,从乐曲数据中的全部音符数据所包含的演奏技术类型iTech中提取每个种类的演奏技术的产生次数及弹奏正确次数(被正确地弹奏的次数),对根据所提取的产生次数及弹奏正确次数而得到的每个种类的演奏技术的正确率(弹奏正确次数/产生次数),乘以与演奏技术的种类相对应的难易度,来计算每个种类的演奏技术的完成度,对计算出的各完成度进行累算,从而取得与乐曲的难易度相对应的完成度achieveValue。接下来,在步骤SA7中,根据作为基于Q学习理论、按照当前的建议进行演奏输入的结果而得到的完成度achieveValue,对价值函数表value的状态变量进行更新,并且,执行与更新后的状态变量相对应地从价值函数表value取得最有效的建议的变量更新处理。接着,在步骤SA8中,向进行演奏输入的使用者给出由从价值函数表value [achieve][change] [i]中查找出的最有效(最大Q行动价值maxQ)的建议种类action来指定的种类的建议。之后,使处理返回至上述的步骤SA2,以后反复执行上述的步骤SA2 SA9,直到进行了结束操作。然后,若进行了结束操作,则上述步骤SA2的判断结果为“是”,进入到步骤SA9,执行对在变量更新处理(步骤SA7)中更新后的变量(上次的完成度等级prevAchieve、完成度等级变化prevChange、建议种类prevAction及完成度pevAchieveValue)进行保存的变量保存处理,结束本处理。(2)相当部位确定处理的动作接下来,参照图3来说明相当部位确定处理的动作。若通过上述的主程序的步骤SA4 (参照图2)执行了本处理,则CPU13使处理前进至图3所图示的步骤SBl,在寄存器doDistMin中保存成为初期值的规定值。关于保存在寄存器doDistMin中的初期值的用途,随后将进行描述。接着,在步骤SB2中,将指针meorgtarO及指针meorgtarl复位为零。所谓指针meorgtarO是指,在乐曲数据中的右手部分的音符数据内,指定与通过使用者的演奏输入而产生的演奏数据相一致的音符数据的指针。同样,所谓指针meorgtarl是指,在乐曲数据中的左手部分的音符数据内,指定与通过使用者的演奏输入而产生的演奏数据相一致的音符数据的指针。接着,在步骤SB3 SB4中,将用于对乐曲数据中的右手部分的音符数据内的前端音符(前端的音符)进行指定的地址值保存于指针meorg
,将用于对乐曲数据中的左手部分的音符数据内的前端音符(前端的音符)进行指定的地址值保存于指针meorg [I]。然后,若进入步骤SB5,则判断指针meorg
>meorg [I]是否都不是末端,换句话说,判断是否到乐曲结尾为止检索了相当部位。如果还未达到乐曲结尾为止对相当部位进行检索,判断结果为“是”,进入步骤SB6。在步骤SB6 SB8中,每当指针meorg
及指针meorg [I]向达到乐曲的结尾步进时,反复执行步骤SB6的距离计算处理。并且,若达到乐曲的结尾为止结束了相当部位的检索,则上述步骤SB5的判断结果为“否”,结束本处理。另外,在步骤SB6的距离计算处理中,如后述那样,针对通过使用者的演奏输入而产生的演奏数据,对乐曲数据中的全部音符数据(右手部分、左手部分及左右两部分)实施公知的DP匹配而计算与相似度相当的距离(右手部分时的距离、左手部分时的距离及左右两部分时的距离),将计算出的距离中的成为相似度最大且距离最小的部分的音符数据,确定为与演奏数据相当的部位。(3)距离计算处理的动作
接下来,参照图4来说明距离计算处理的动作。若通过上述的相当部位确定处理的步骤SB6 (参照图3)执行本处理,则CPU13使处理前进至图4所图示的步骤SC1,在寄存器iHand中保存“O”。寄存器iHand的值用于指定乐曲数据中的部分。具体地说,在为“0”的情况下,指定乐曲数据中的右手部分,在为“ I”的情况下,指定乐曲数据中的左手部分,在为“2”的情况下,指定乐曲数据中的左右两部分。以下,将寄存器iHand的值称为部分指定数据iHand。接着,在步骤SC2中,判断部分指定数据iHand是否小于“3”,即判断是否对全部部分结束了距离计算。如果部分指定数据iHand小于“3”,对全部部分结束了距离计算,则判断结果为“是”,通过步骤SC3执行DP匹配处理。在DP匹配处理中,如后述那样,针对通过使用者的演奏输入而产生的演奏数据,对乐曲数据中的全部音符数据(右手部分、左手部分及左右两部分)取得与相似度相当的距离doDist。接下来,在步骤SC4中,判断通过上述步骤SC3的DP匹配处理而本次取得的距离doDist是否比上次取得的距离doDistMin(初次时使用在步骤SBl中保存的规定值)的95%的值小。换句话说,判断是否更新了最小距离。如果没有更新最小距离,则判断结果为“否”,进入后述的步骤SClO。另一方面,若本次取得的距离doDist比上次取得的距离doDistMin的95%的值小,更新了最小距离,则上述步骤SC4的判断结果为“是”,进入步骤SC5。在步骤SC5中,将距离doDist更新为距离doDistMin。此外,在步骤SC5中,将指针meorg
的值设置在指针meorgtarO中,将指针meorg [I]的值设置在指针meorgtarl中。然后,若进入步骤SC6,则判断部分指定数据iHand是否为“0”,换句话说,判断距离计算对象是否为右手部分。如果是右手部分,则判断结果为“是”,进入步骤SC8,将指针meorgtarl复位为零,接着在步骤SClO中,使部分指定数据iHand自加I而步进后,使处理返回上述的步骤SC2。与此相对,在部分指定数据iHand不是“0”的情况下,换句话说,如果距离计算对象不是右手部分,则上述步骤SC6的判断结果为“否”,进入步骤SC7,判断部分指定数据iHand是否为“1”,换句话说,判断距离计算对象是否为左手部分。如果是左手部分,则判断结果为“是”,进入步骤SC9,将指针meorgtarO复位为零,接着在步骤SClO中,使部分指定数据iHand自加I而步进后,使处理返回上述的步骤SC2。另一方面,在距离计算对象不是左手部分的情况下,换句话说若是左右两部分,则上述步骤SC7的判断结果为“否”,进入步骤SC10,使部分指定数据iHand自加I而步进后,使处理返回至上述的步骤SC2。然后,若步进后的部分指定数据iHand大于“3”,则上述步骤SC2的判断结果为“否”,结束本处理。(4) DP匹配处理的动作接下来,参照图5 图6来说明DP匹配处理的动作。若通过上述的距离计算处理的步骤SC3 (参照图4)来执行本处理,则CPU13使处理前进至图5所图示的步骤SDl,将用于指定音符数据的指针I设置成初期值“O”。接下来,在步骤SD2中,将指针meorg
的值设置在指针meOorg (I)中,将指针meorg [I]的值设置在指针melorg (I)中。另外,指针meorg
是用于对乐曲数据中的右手部分的前端的音符数据进行指定的指针值,指针meorg [I]是用于对乐曲数据中的左手部分的前端的音符数据进行指定的指针值。接着,在步骤SD3中,判断是否与指针I的步进相对应地结束了对全部音符数据的指定。如果没有结束对全部音符数据的指定,则判断结果为“否”,进入步骤SD4,判断部分指定数据iHand是否为“0”,换句话说,判断DP匹配的对象是否为右手部分。如果是右手部分,则判断结果为“是”,进入步骤SD5,将指针meOorg (I)设置成指针meAorg (I)后,使处理前进至图6所图示的步骤SD9 (后述)。如果DP匹配的对象不是右手部分,则上述步骤SD4的判断结果为“否”,进入步骤SD6。在步骤SD6中,判断部分指定数据iHand是否为“1”,换句话说,判断DP匹配的对象是否为左手部分。如果是左手部分,在判断结果为“是”,进入步骤SD7,将指针melorg (I)设置成指针meAorg (I)后,使处理前进至图6所图示的步骤SD9 (后述)。若DP匹配的对象为左右两部分,则上述步骤SD6的判断结果为“否”,进入步骤SD8。在步骤SD8中,对由指针meOorg (I)指定的音符数据的发音时刻iTime、和由指针melorg (I)指定的音符数据的发音时刻iTime进行比较,将对发音时刻较早的音符数据进行指定一方的指针设置给指针meAorg (I)后,使处理前进至图6所图示的步骤SD9 (后述)。然后,若进入图9所图示的步骤SD9,则对用于指定演奏数据的指针J设置初期值“O”。接下来,在步骤SDlO中,判断是否与指针J的步进相对应地结束了对全部演奏数据的指定。如果没有结束对全部演奏数据的指定,则判断结果为“否”,进入步骤SD11。在步骤SDll中,对由指针meAorg (I)指定的音符数据的间距iPit、和由指针meBusr (J)指定的演奏数据的间距进行比较。若两数据的间距相一致,则进入步骤SD12,对寄存器doMissMatch [I] [J]设置一致值“0. 0”,另一方面,如果两数据的间距不一致,则进入步骤SD13,对寄存器doMissMatch [I] [J]设置不一致值“1. O”。接下来,在步骤SD14中,使指针J自加I而步进(forward)后,使处理返回至上述的步骤SDlO。之后,一边使指针J步进,一边反复进行上述的步骤SDlO SD14,由此,针对由指针meAorg (I)指定的音符数据的间距iPit,进行与全部演奏数据的间距之间的一致/不一致的判别,将该判别结果保存在与一致/不一致矩阵相当的二维寄存器doMissMatch[I][J]中。若与指针J的步进相对应地结束了对全部演奏数据的指定,则上述步骤SDlO的判断结果为“是”,进入步骤SD15,使指针I自加I而步进后,使处理返回至所述的步骤SD3(参照图5)。并且,若与指针I的步进相对应地结束了全部音符数据的指定,则所述的步骤SD3的判断结果为“是”,进入步骤SD16。在步骤SD16中,判断部分指定数据iHand是否为“0”,换句话说,DP匹配的对象是否为右手部分。如果是右手部分,则判断结果为“是”,进入步骤SD17,将指针melorg复位为零之后,进入步骤SD20。另一方面,在部分指定数据iHand不是“0”的情况下,换句话说,如果DP匹配的对象不是右手部分,则上述步骤SD16的判断结果为“否”,进入步骤SD18,判断部分指定数据iHand是否为“1”,换句话说,判断DP匹配是否为左手部分。如果是左手部分,则判断结果为“是”,进入步骤SD19,将指针meOorg复位为零之后,进入步骤SD20。在DP匹配的对象为左右两部分的情况下,上述步骤SD16、SD18的各判断结果都是“否”,进入步骤SD20。然后,在步骤SD20中,通过基于在二维寄存器doMissMatch [I] [J]中保存的一致/不一致矩阵而进行的公知的DP匹配,针对通过使用者的演奏输入而产生的演奏数据,对乐曲数据中的全部音符数据(右手部分、左手部分及左右两部分)取得相当于相似度的距离doDist,结束本处理。(5)演奏判定处理的动作接下来,参照图7来说明演奏判定处理的动作。若通过所述的主程序的步骤SA5(参照图2)来执行本处理,则CPU13使处理前进至图7所图示的步骤SE1,对用于对音符数据进行指定的指针I设置初期值“O”。接下来,在步骤SE2中,将用于对乐曲数据中的右手部分的音符数据内的、与通过使用者的演奏输入而产生的演奏数据一致的音符数据进行指定的指针meorgtarO的值,设置在指针meOorg (I)中,并且,将用于对乐曲数据中的左手部分的音符数据内的、与通过使用者的演奏输入而产生的演奏数据一致的音符数据进行指定的指针meorgtarl的值,设置在指针melorg (I)中。接着,在步骤SE3中,判断是否与指针I的步进相对应地结束了对全部音符数据的指定。如果结束了对全部音符数据的指定,则判断结果为“否”,进入步骤SE4。在步骤SE4中,对由指针meOorg (I)指定的音符数据的发音时刻iTime、和由指针melorg (I)指定的音符数据的发音时刻iTime进行比较,将对发音时刻较早的音符数据进行指定一方的指针设置给指针meAorg (I)。接着,在步骤SE5中,对用于指定演奏数据的指针J设置初期值“0 ”,接着在步骤SE6中,判断是否与指针J的步进相对应地结束了对全部演奏数据的指定。如果结束了对全部演奏数据的指定,则判断结果为“否”,进入接下来的步骤SE7。在步骤SE7中,对由指针meAorg (I)指定的音符数据的间距iPit、和由指针meBusr (J)指定的演奏数据的间距进行比较。若音符数据的间距与演奏数据的间距相一致,则进入步骤SE8,对由指针meAorg(I)指定的音符数据的弹奏正确标志iClear设置“ 1”,表示是被正确地弹奏的乐音。然后,进入步骤SE9,使指针J自加I而步进后,使处理返回至上述的步骤SE6。之后,一边使指针J步进一边反复进行上述的步骤SE6 SE9。然后,若与指针J的步进相对应地结束了对全部演奏数据的指定,则上述步骤SE6的判断结果为“是”,进入步骤SE10,使指针I自加I而步进后,使处理返回至上述的步骤SE3。若与指针I的步进相对应地结束了对全部音符数据的指定,则该步骤SD3的判断结果为“是”,结束本处理。(6)完成度计算处理的动作接下来,参照图8 图9来说明完成度计算处理的动作。若通过所述的主程序的步骤SA6 (参照图2)来执行本处理,则CPU13使处理前进至图8所图示的步骤SF1,在寄存器me中保存前端音符(曲头的乐音)的音符数据。接着,在步骤SF2中,判断是否结束了对乐曲数据中的全部音符数据的读出。如果没有结束对全部音符数据的读出,则判断结果为“否”,进入步骤SF3。在步骤SF3中,判断在寄存器me中保存的音符数据所包含的演奏技术类型iTech是否为“0”以上,换句话说,判断是否是需要演奏技术的音符。在演奏技术类型iTech为负值的情况下,是不需要演奏技术的音符,因此判断结果为“否”,进入步骤SF7,在寄存器me中保存下一个音符数据,使处理返回至上述的步骤SF2。
另一方面,在寄存器me中保存的音符数据所包含的演奏技术类型iTech为“0”以上、表示演奏技术的种类的情况下,上述步骤SF3的判断结果为“是”,进入步骤SF4。在步骤SF4中,使按照演奏技术不同类型iTech分别对产生次数进行计数的计数器iFTTypeCnt[iTech]自加I而步进。接着,在步骤SF5中,判断在寄存器me中保存的音符数据所包含的弹奏正确标志iClear是否为“I”、即判断是否是被正确地弹奏的乐音。如果不是被正确地弹奏的乐音(弹奏正确标志iClear为“0”),则判断结果为“否”,进入步骤SF7,在寄存器me中保存下一个音符数据,使处理返回至上述的步骤SF2。与此相对,如果是被正确地弹奏的乐音,则上述步骤SF5的判断结果为“是”,进入步骤SF6。在步骤SF6中,使按照每个演奏技术类型iTech分别对弹奏正确次数进行计数的计数器iFTTypeClear [iTech]自加I而步进。并且,之后进入步骤SF7,在寄存器me中保存下一个音符数据,使处理返回至上述的步骤SF2。以后,在结束对全部音符数据的读出之前,反复进行上述的步骤SF2 SF7,由此,每个演奏技术类型iTech的产生次数被计数器iFTTypeCnt [iTech]计数,并且,每个演奏技术类型iTech的弹奏正确次数被计数器iFTTypeClear [iTech]计数。然后,若对全部音符数据结束了读出,则上述步骤SF2的判断结果为“是”,进入图9所图示的步骤SF8。在步骤SF8中,将用于指定演奏技术的种类的指针I及寄存器ac清零。另外,在寄存器ac中,如后述那样,保存有表示演奏技能的提高程度的完成度。以下,将寄存器ac的值称为完成度ac。接着,若进入步骤SF9,则判断是否结束了对全部演奏技术的每个种类的完成度ac的计算。如果没有结束计算,则判断结果为“否”,进入步骤SF10。在步骤SFlO SFll中,在弹奏正确次数(计数器iFTTypeClear [I])除以产生次数(计数器iFTTypeCnt [I]而得到的正确率上,乘以与指针I相对应地从难易度表iFTCost[I]读出的难易度,由此计算由指针I指定的演奏技术的种类的完成度ac,并与指针I的步进相对应地将该完成度ac进行累算。这样,若结束了对全部演奏技术的每个种类的完成度ac的计算,则在上述步骤SFlO中,按照各演奏技术的每个种类计算出的完成度ac被累算,作为其结果,针对使用者所演奏输入的乐曲得到考虑了难易度后的完成度ac。此外,若结束了对全部演奏技术的种类的完成度ac的计算,则上述步骤SF9的判断结果为“是”,进入步骤SF12,将考虑了乐曲的难易度后的完成度ac保存在寄存器achieveValue (以下称为完成度achieveValue)中,结束本处理。(7)变量更新处理的动作在作为强化学习之一的Q学习中,已知“按照当前的规则进行行动,根据由此所得到的报酬来制作价值函数(规则评价),并且,根据当前的价值函数制作最佳规则”。在变量更新处理中,应用这样的Q学习理论,具体地说,根据作为按照当前的建议(规则)进行演奏输入(行动)的结果而得到的完成度(报酬),更新价值函数表value的状态变量,并且,与更新后的状态变量相对应地从价值函数表value取得最有效的建议(规则)。以下,参照图10来说明这样的变量更新处理的动作。若通过所述的主程序的步骤SA7 (参照图2)来执行本处理,则CPU13使处理前进至图10所图示的步骤SG1,在完成度等级数AchieveN (常量)上乘以完成率(完成度achieveValue /乐曲的难易度cost),计算被作为Q学习中的状态变量的完成度等级achieve。接着,在步骤SG2中,从当前的完成度achieveValue中减去上次的完成度prevAchieveValue来计算完成度差分a。接着,在步骤SG3中,判断所计算出的完成度差分a是否大于“0”,即判断完成度是否上升了。在完成度上升了的情况(a >0)下,判断结果为“是”,进入步骤SG4,对寄存器change设置“4”之后,进入步骤SG8。以下,将寄存器change的值称作完成度等级变化。该完成度等级变化change被作为Q学习中的状态变量。另一方面,在完成度差分a为“0”以下,换句话说,完成度没有变化或完成度下降了的情况下,上述步骤SG3的判断结果为“否”,进入步骤SG5。在步骤SG5中,判断所计算出的完成度差分a是否为“0”,换句话说判断完成度是否没有变化。在完成度没有变化的情况(a = 0)下,判断结果为“是”,进入步骤SG6,将完成度等级变化change设置为“2”之后,进入步骤SG8。与此相对,在完成度下降了的情况(a <0)下,上述步骤SG5的判断结果为“否”,进入步骤SG7,将完成度等级变化change设置为“0”之后,进入步骤SG8。然后,在步骤SG8中,在完成度等级achieve及完成度等级变化change所指定的状态下,一边使行动编号检索指针i步进,一边执行从价值函数表value [achieve][change] [i]中查找最有效(最大Q行动价值maxQ)的建议种类action的最大Q行动处理。接着,在步骤SG9中,从价值函数表value [achieve] [change] [action]取得完成度等级achieve及完成度等级变化change所指定的当前状态下的建议种类action的当前价值afterQ。接着,在步骤SGlO中,从价值函数表value [prevAchieve] [prevChange][prevAction]取得完成度等级prevAchieve及完成度等级变化prevChange所指定的上次状态下的上次建议种类prevAction的上次价值V。接下来,在步骤SGl I中,根据下面的式(I),与当前价值afterQ相对应地更新上次的状态及上次价值V。value [prevAchieve] [prevChange ] [prevAction] 一 v 十 alpha X(gammaXafterQ — v + reward)…(I)另外,在上述(I)式中,alpha为学习率,gamma为折扣率,reward为报酬(完成度achieveValue)。然后,在步骤SG12中,将当前的完成度等级achieve、完成度等级变化change、建议种类action及完成度achieveValue,分别更新为上次的完成度等级prevAchieve、完成度等级变化prevChange、建议种类prevAction及完成度pevAchieveValue,结束本处理。(8)最大Q行动处理的动作接下来,参照图11来说明最大Q行动处理的动作。若通过上述的变量更新处理的步骤SG8 (图10参照)来执行本处理,则CPU13使处理前进至图11所图示的步骤SH1。在步骤SHl SH3中,将行动编号检索指针1、最大Q行动价值maxQ及行动种类index分别清零。接着,在步骤SH4中,判断是否对全部行动结束了检索。如果结束了检索,则判断结果为“否”,进入步骤SH5,在完成度等级achieve及完成度等级变化change所指定的状态下,从价值函数表value [achieve] [change] [i]取得与行动编号检索指针i相对应的建议价值q。
在此,参照图12,说明在完成度等级achieve及完成度等级变化change所指定的状态下,从价值函数表value取得与行动编号检索指针i相对应的建议价值q的处理。在例如完成度等级achieve为“I”、完成度等级变化change为“I”的情况下,在价值函数表value [I] [I] [action]中,如图12所图示的一例那样,登录有多个行动(建议)和与它们建立了对应的建议价值q0 qn,在上述步骤SH5中,从价值函数表value [achieve][change] [i]读出与行动编号检索指针i相对应的建议价值q。然后,在接下来的步骤SH6中,判断从价值函数表value [achieve] [change] [i]读出的建议价值q是否大于最大Q行动价值maxQ。在最初的遍历(pass)中,由于在上述步骤SH2中最大Q行动价值maxQ已被清零,因此判断结果为“否”,进入步骤SH7。在步骤SH7中,将打动编号检索指针i保持在彳丁动种类index中,接着在步骤SH8中,保存与彳丁动编号检索指针i相对应地从价值函数表value [achieve] [change] [ i ]读出的建议价值q,作为最大Q行动价值maxQ。接着,在步骤SH9中,使行动编号检索指针i自加I而步进后,使处理返回至上述的步骤SH4。以后,与行动编号检索指针i的步进相对应地从价值函数表value [achieve][change] [i]读出建议价值q,若所读出的建议价值q超过最大Q行动价值maxQ,贝U上述步骤SH6的判断结 果为“是”,进入步骤SH10。在步骤SHlO 步骤SH13中,为了避免所检索的最大Q行动价值maxQ总是相同而单调化,追加随机变化的要素。即,在步骤SHlO中,判断部分指定数据iHand是否为“1”,换句话说,判断用于计算完成度achieveValue的前阶段的距离计算对象是否是左手部分。如果是右手部分,则判断结果为“否”,使处理前进至上述的步骤SH9,使行动编号检索指针i步进后,使处理返回至所述的步骤SH4。在该情况下,未追加随机变化的要素。另一方面,在为左手部分的情况下,上述步骤SHlO的判断结果为“是”,进入步骤SH11,产生“0”或“I”的随机数并保存在寄存器rnd中。接着,在步骤SH12中,判断寄存器rnd的随机数值是否为“I”。如果寄存器rnd的随机数值为“0”,则判断结果为“否”,进入上述的步骤SH9,但如果寄存器rnd的随机数值为“ I ”,则判断结果为“是”,进入步骤SH13,在建议种类index中设置行动编号检索指针i,进入上述的步骤SH9。由此,追加了随机变化的要素。这样,若在追加随机变化的要素的基础上,与行动编号检索指针i的步进相对应地结束了从价值函数表value [achieve] [change] [i]对全部行动(建议的种类)的检索,则上述的步骤SH4的判断结果为“是”,将对成为最大Q行动价值maxQ的建议价值q进行了指定的行动种类index设置在建议种类action中,结束本处理。(9)建议处理的动作接下来,参照图13来说说明建议处理的动作。若通过所述的主程序的步骤SA8(参照图2)来执行本处理,则CPU13进入图13所图示的步骤SJ1,产生“0”或“I”的随机数值并保存在寄存器rnd中,接着在步骤SJ2中,判断寄存器rnd的随机数值是否为“I”。若寄存器rnd的随机数值为“0”,则判断结果为“否”,进入步骤SJ3,在建议种类的数量的范围内产生随机数,将所产生的随机数值设置在建议种类action中后,进入后述的步骤SJ5。另一方面,若寄存器rnd的随机数值为“1”,则上述步骤SJ2的判断结果为“是”,进入步骤SJ4。在步骤SJ4中,在完成度等级achieve及完成度等级变化change所指定的状态下,一边使行动编号检索指针i步进,一边执行从价值函数表value [achieve] [change]中查找最有效(最大Q行动价值maxQ)的建议种类action的最大Q行动处理(参照图11)之后,进入步骤S J5。然后,在步骤SJ5中,执行由建议种类action指定的种类的建议,结束本处理。另外,在此所述的建议的执行是指,例如对由建议种类action指定的建议的语句进行画面显示或者进行声音合成,而报告给使用者。如以上说明那样,在第一实施方式中,确定出与使用者的演奏输入相对应地产生的演奏数据相当于成为范本(模范演奏)的乐曲数据中的哪个音符数据,并且是用右手、左手及双手中的哪个来弹奏该相当音符数据的,比较所确定出的音符数据的间距iPit和演奏数据的间距,判定该音符数据的乐音是否被正确地弹奏,将被正确地弹奏的音符数据的弹奏正确标志iClear设置为“ I ”。然后,从乐曲数据中的全部音符数据所包含的演奏技术类型iTech中提取演奏技术的每个种类的产生次数及弹奏正确次数(被正确地弹奏的次数),在根据所提取的产生次数及弹奏正确次数而得到的演奏技术的每个种类的正确率(弹奏正确次数/产生次数)上,乘以与演奏技术的种类相对应的难易度,来计算演奏技术的每个种类的完成度,对计算出的各完成度进行累算,由此取得与乐曲的难易度相对应的完成度achieveValue。基于所取得的完成度achieveValue,对价值函数表value的状态变量(完成度等级achieve及完成度等级变化change)进行更新,向进行演奏输入的使用者给出由最有效(最大Q行动价值maxQ)的建议种类action指定的种类的建议,其中,该最有效(最大Q行动价值maxQ)的建议种类action是与更新后的状态变量相对应地从价值函数表value[achieve] [change] [action]查找到的。另外,在上述的第一实施方式中,使用DP匹配来确定与使用者的演奏输入相对应地产生的演奏数据相当于成为范本(模范演奏)的乐曲数据中的哪个音符数据,并且该相当音符数据是用右手、左手及双手的哪个弹奏的,因此,不管从乐曲数据中的哪个乐音开始弹奏,都能够确定出与演奏数据相当的音符数据。[第二实施方式]接下来,参照图14 图16来说明第二实施方式。第二实施方式的结构与第一实施方式相同,因此省略其说明。第二实施方式与第一实施方式的不同点在于,在第一实施方式中向使用者给出对于提高完成度achieveValue而言最有效(最大Q行动价值maxQ)的建议,与此相对,在第二实施方式中,向使用者给出对于提高练习欲望、延长练习时间而言最有效(最大Q行动价值maxQ)的建议。S卩,如图14所图示,在第二实施方式中,基于当前的练习时间len,更新价值函数表value的状态变量statel (上次练习时间IenPre)及状态变量state2(练习间隔time —timePre),与更新后的状态变量相对应地从价值函数表value [statel] [state2] [action]查找出对延长练习时间、换句话说换言提高练习欲望而言最有效(最大Q行动价值maxQ)的建议。以下,对这样的第二实施方式的变量更新处理及最大Q行动处理的各动作进行说明。另外,在第二实施方式中,在演奏输入处理(步骤SA3)中,保存与演奏输入相对应的演奏数据,另一方面每当进行演奏输入时记录开始时刻及结束时刻。(I)第二实施方式的变量更新 处理的动作
参照图15来说明第二实施方式的变量更新处理的动作。与所述的第一实施方式同样,若通过主程序的步骤SA7(参照图2)来执行本处理,则CPU13使处理前进至图15所图示的步骤SK1,将上次的练习时间IenPre保存在寄存器statel(以下称作状态变量statel)中,接着在步骤SK2中,将从本次的开始时刻time中减去上次的结束时刻timePre而得到的练习间隔保存在寄存器state2 (以下称作状态变量state2)中。然后,在步骤SK3中,在状态变量statel及状态变量state2所指定的状态下,一边使行动编号检索指针i步进,一边执行从价值函数表value [statel] [state2] [i]中查找最有效(最大Q行动价值maxQ)的建议种类action的最大Q行动处理。接着,在步骤SK4中,从价值函数表value [statel] [state2] [action]取得由状态变量statel及状态变量state2指定的当前状态下的建议种类action的当前价值afterQ。接着,在步骤 SK5 中,从价值函数表 value [statelPr] [state2Pr] [prevAction]取得由上次的状态变量statelPr及上次的状态变量state2Pr指定的上次状态下的上次建议种类prevAction的上次价值V。接下来,在步骤SK6中,根据下面的式(2),与当前价值afterQ相对应地更新上次的状态及上次价值V。value [statelPr] [state2Pr] [prevAction]— v + alphaX (gammaXafterQ —v + reward)…(2)另外,在上述(2)式中,alpha为学习率,gamma为折扣率,reward为报酬(练习时间的长度len)。然后,在步骤SK7中,将当前状态变量statel、状态变量state2及建议种类action分别 更新为上次的状态变量statelPr、状态变量state2Pr及建议种类prevAction,结束本处理。(2)第二实施方式的最大Q行动处理的动作接下来,参照图16来说明第二实施方式的最大Q行动处理的动作。若通过上述的变量更新处理的步骤SK3 (参照图15)来执行本处理,则CPU13使处理前进至图16所图示的步骤SLl。在步骤SLl SL3中,将行动编号检索指针1、最大Q行动价值maxQ及行动种类index分别清零。接着,在步骤SL4中,判断是否对全部行动结束了检索。如果结束了检索,则判断结果为“否”,进入步骤SL5,在状态变量statel及状态变量state2所指定的状态下,从价值函数表value [statel] [state2] [i]取得与行动编号检索指针i相对应的建议价值q。然后,在步骤SL6中,判断从价值函数表valuevalue [statel] [state2] [i]读出的建议价值q是否大于最大Q行动价值maxQ。在最初的遍历中,由于在上述步骤SL2中已将最大Q行动价值maxQ清零,因此判断结果为“否”,进入步骤SL7。在步骤SL7中,将彳丁动编号检索指针i保持在彳丁动种类index中,接着在步骤SL8中,将与行动编号检索指针i相对应地从价值函数表value [statel] [state2] [i]读出的建议价值q作为最大Q行动价值maxQ进行保存。接着,在步骤SL9中,使行动编号检索指针i自加I而步进后,使处理返回至上述的步骤SL4。以后,与行动编号检索指针i的步进相对应地从价值函数表value [statel][state2] [i]读出建议价值q,若所读出的建议价值q超过最大Q行动价值maxQ,贝U上述步骤SL6的判断结果为“是”,进入步骤SL10。在步骤SLlO 步骤SL13中,为了避免所检索的最大Q行动价值maxQ总是相同而单调化,而追加随机变化的要素。即,在步骤SLlO中,判断部分指定数据iHand是否为“1”,换句话说,判断距离计算对象是否为左手部分。如果是右手部分,则判断结果为“否”,使处理前进至上述的步骤SL9,使行动编号检索指针i步进后,使处理返回至所述的步骤SL4。在该情况下,未追加随机变化的要素。另一方面,在为左手部分的情况下,上述步骤SLlO的判断结果为“是”,进入步骤SL11,产生“0”或“I”的随机数并保存在寄存器rnd中。接着,在步骤SL12中,判断寄存器rnd的随机数值是否为“I”。如果寄存器rnd的随机数值为“0”,则判断结果为“否”,进入上述的步骤SL9,但若寄存器rnd的随机数值为“ I ”,则判断结果为“是”,进入步骤SL13,在建议种类index中设置行动编号检索指针i,进入上述的步骤SH9。由此,追加了随机变化的要素。这样,在追加了随机变化的要素的基础上,与行动编号检索指针i的步进相对应地结束了从价值函数表value [statel] [state2] [i]对全部行动(建议的种类)的检索时,上述的步骤SL4的判断结果为“是”,将对成为最大Q行动价值maxQ的建议价值q进行指定的行动种类index设置在建议种类action中,结束本处理。如以上所述,根据第二实施方式,基于当前的练习时间Ien来更新价值函数表value的状态变量statel (上次练习时间IenPre)及状态变量state2 (练习间隔time —timePre),向进行演奏输的使用者给出由对于延长练习时间、换句话说实现练习欲望的提高而言最有效(最大Q行动价值maxQ)的建议种类action指定的种类的建议,其中该最有效(最大Q行动价值maxQ)的建议种类action是与更新后的状态变量相对应地从价值函数表value [statel] [state2] [action]查找到的。因此,能够给出与使用者的状态相对应的最佳建议。另外,在上述的第二实施方式中,给出对于实现使用者的练习欲望的提高、延长练习时间而言有效的建议,但是,不限于此,也可以如图17所图示的一例那样,是给出对于实现使用者的练习欲望的提高、缩短练习间隔time - timePre而频繁地进行练习而言有效的建议的方式,该方式也能够给出与使用者的状态相对应的最佳建议。以上,说明了本发明的实施的一个方式,但是本发明不限于此,本发明包含在本申请的权利要求书所记载的发明及其等同的范围内。
权利要求
1.一种演奏训练装置,其中,具备建议生成部,生成建议;取得部,在由该建议生成部生成建议后,基于通过演奏规定乐曲而得到的演奏数据,取得该演奏的完成度;计算部,基于由该取得部取得的完成度、以及在该取得的完成度之前取得的完成度,计算完成度变化量;存储控制部,使规定的存储器存储以所述之前取得的完成度、完成度变化量及所述生成的建议为一组的数据组;以及建议控制部,从所述存储器所存储的多组数据中,选择在完成度最接近于所述取得的完成度且完成度变化量最大的数据组中包含的建议数据,并且,控制所述建议生成部以使其生成该选择的建议。
2.如权利要求1所述的演奏训练装置,其中,所述取得部基于表示构成所述规定乐曲的各乐音的多个音符数据和与使用者的演奏输入相对应地产生的演奏数据之间的比较,评价使用者的演奏技能,取得与乐曲的难易度相对应的完成度。
3.如权利要求1所述的演奏训练装置,其中,在所述取得部取得的完成度和所述计算部计算出的完成度变化量所指定的状态下,所述建议控制部从价值函数表所登录的多个建议种类中选择具有最大价值的种类的建议。
4.如权利要求1所述的演奏训练装置,其中,还具备时刻记录部,该时刻记录部每当进行演奏时记录开始时刻及结束时刻;所述取得部具备第一取得部,根据由所述时刻记录部记录的上次的开始时刻及结束时刻,取得上次练习时间;以及第二取得部,根据由所述时刻记录部记录的本次的开始时刻及上次的结束时刻,取得练习间隔;在所述第一取得部取得的上次练习时间和所述第二取部取得的练习间隔所指定的状态下,所述建议控制部从价值函数表所登录的多个建议种类中选择对于延长练习时间而言最有效的建议。
5.如权利要求4所述的演奏训练装置,其中,在所述第一取得部取得的上次练习时间和所述第二取部取得的练习间隔所指定的状态下,所述建议控制部从价值函数表所登录的多个建议种类中提取对于缩短练习间隔、频繁练习而言最有效的建议。
6.如权利要求1所述的演奏训练装置,其中,所述建议控制部具备状态变量生成部,根据由所述取得部取得的完成度,生成第一及第二状态变量;以及建议选择部,与由所述状态变量生成部生成的第一及第二状态变量相对应地,从基于Q 学习理论的价值函数表中选择最大价值的建议。
7.一种演奏训练方法,其中,包括建议生成步骤,生成建议;取得步骤,在由该建议生成步骤生成建议后,基于通过演奏规定乐曲而得到的演奏数据,取得该演奏的完成度;计算步骤,基于通过该取得步骤取得的完成度、以及在该取得的完成度之前取得的完成度,计算完成度变化量;存储控制步骤,使规定的存储器存储以所述之前取得的完成度、完成度变化量及所述生成的建议为一组的数据组;以及建议控制步骤,从 所述存储器所存储的多组数据中,选择在完成度最接近于所述取得的完成度且完成度变化量最大的数据组中包含的建议数据;并且,在所述建议步骤中进行控制,以生成该选择的建议。
全文摘要
CPU(13)基于表示构成乐曲的各乐音的多个音符数据和与使用者的演奏输入相对应地产生的演奏数据之间的比较,评价使用者的演奏技能,取得与乐曲的难易度相对应的完成度,基于所取得的完成度,更新价值函数表value的状态变量(完成度等级achieve及完成度等级变化change),向进行演奏输入的使用者给出由与更新后的状态变量相对应地从价值函数表value[achieve][change][action]查找到的最有效(最大价值)的建议种类action指定的种类的建议。
文档编号G10H1/00GK103035142SQ201210371789
公开日2013年4月10日 申请日期2012年9月28日 优先权日2011年9月29日
发明者南高纯一 申请人:卡西欧计算机株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1