一种以动作方向变化控制音符播放的方法

xiaoxiao2020-6-26  21

专利名称:一种以动作方向变化控制音符播放的方法
技术领域
本发明属于人机交互领域,具体涉及一种动作方向变化控制音符播放的方法。
背景技术
目前在中国对孩子的教育方面,还是过于偏重分数的应试教育。音乐教育,尤其是音乐合奏教育对于解决独生子女协作能力缺失、成年后难以融入社会生活的问题有重要意义。音乐合奏教育有助于儿童协作意识、情感的发展,有助于培养规则意识。目前在儿童协同音乐交互方面已有一些研究工作,如Mogclass是一个在联网移动设备上的合作演奏音乐环境(参考文献Zhou, Y. S. , Percival. G. , Wang, X. X, Wang, Y·,and Zhao, S. D. MOGCLASS !evaluation of a collaborative system of mobile devices for classroom music education of young children. CHI, (2011),523-532.)。 Symphony-Q支持孩子们通过在交互桌面上摆放正确的乐器图标来协同演奏对应乐器的音乐(Kusunoki, F. , Sugimoto, M. , and Hashizume, H. Symphony-Q a support system for learning music through collaboration. CSCL, (2002),491-492.)。器乐合奏要求儿童至少掌握一种乐器的演奏技巧,具有较高的音乐乐理知识,但是由于作为一种较专业的音乐形式,合奏对儿童的音乐要求较高,所以目前很少有研究关注如何帮助孩子们享受协作合奏音乐的过程。

发明内容
本发明的目的在于,提供一种通过手部摆动方向变化控制音符播放的方法,将儿童手部往返挥动的动作对应为乐曲音符的播放命令。每个单方向的运动过程中,持续播放某个音符,直到反方向挥动时,再开始播放下一个音符,适合儿童以比较自然的方式来控制演奏的节奏。本发明包括以下关键方法I)本发明提供一种肢体摆动角度序列的拐点检测方法;2)本发明还提供一种挥动动作与音符的对应激活方法;肢体往复摆动,可以映射为肢体绕某个轴或者某个点往复转动,通过不同的技术手段可以获得肢体转动的角度。方法I)是在运动过程中,从实时获得的一连串角度数据中找到变化趋势发生改变的临界点(拐点);方法2)是在找到拐点的时刻,同时结束当前音符的播放并开始下一个音符,将改变挥动方向与切换播放音符严格对应起来。本发明的一种以动作方向变化控制音符播放的方法,其步骤包括;I)将待播放的音符转换为midi输出参数,在程序里将整个音符序列存储为一系列整数数组,每一个音符对应一组整数,每一组整数有其对应的下标,对应着音符的序列, 下标依次排序,下标每增加I就意味着音符前进一个;定义某一数组位置为初始播放位置;2)按照设定的时间间隔接收定位于人体的传感器的输出,识别人体动作;3)在检测第一个动作方向拐点时,播放当前播放位置对应的音符;
4)在检测下一个动作方向拐点时,停止播放当前音符并播放下一个音符。在上述方法中,需先将待播放乐曲音符转换为可为电脑识别并播放的midi输出参数,然后内置在程序头文件里。所述传感器通过无线方式与电脑连接。进一步的,上述方法通过激活自定义的消息来停止或播放音符,在消息响应里,通过设定的输出参数控制电脑来播放、停止声音,声音的通道数,音高和音量。进一步的,根据所述传感器绕竖直方向转动的角度(航向角)识别人体动作。根据当前航向角currentYaw是否大于上一时刻航向角yawPre来检测动作方向拐点;若检测到动作方向拐点时,当前播放位置指向数组的最后一位,则结束当前位置的音符播放,返回数组的第一位对应的音符继续播放。具体来讲,若当前时刻动作变化趋势flag异于上一时刻动作变化趋势flagPre, 则判定当前时刻出现动作方向拐点,其中,flagPre为布尔类型,当前航向角currentYaw大于上一时刻航向角yawPre时,flagPre为真。为了保证边际跳动数据对航向角产生的漂移现象,本发明还提供一种跳动过滤算法,在当前航向角与上一时刻航向角的差值大于设定的阈值时才进行动作方向拐点的检测。本发明使音乐交互系统一方面降低了合奏的门槛,通过让儿童用肢体挥动的动作控制音符长短的方式进行演奏,降低了独奏的难度,同时鼓励儿童在音乐声中手舞足蹈来表达对音乐的感受与理解,提高了演奏的沉浸感和趣味性;另一方面尽可能的保留合奏的特点,让儿童体验不同声部的配合。


图I是动作方向变化控制音符播放节奏的总体流程图;图2是本发明中传感器的旋转方向示意图;图3是本发明中前后两个时刻航向角数据关系示意图;图4是本发明中传感器的航向角数据随时间变化曲线及可检测出的拐点示意图;图5a)是本发明中过滤前有边际跳动的一个航向角曲线片段;图5b)是a)中的航向角在经过过滤处理后的曲线及拐点示意图;图6是本发明中传感器动作激活音符的流程图。
具体实施例方式为了使本技术领域的人员更好的理解本发明,下面结合附图和实施方式对本发明作进一步的详细说明,但不构成对本发明的限制。本发明可以以陀螺仪传感器为工具(但也可以选择其他类型传感器),通过传感器来捕获儿童肢体(这里为手部,当然也可以是肘部或其他部位,实际情况可以依据个人喜好或实际需求而有所不同)的摆动动作。演奏的过程中每个儿童穿戴一个缝有传感器的手套,其面前有一台与此传感器通信的PC负责接受数据,PC上运行着客户端和服务端;传感器通过无线方式(如蓝牙)将原始传感器数据实时发给到PC客户端,客户端计算出角度后通过socket发送至服务端,服务端进行动作识别后播放当前动作所对应的音符,并通过界面反馈。图I是动作方向变化控制音符播放节奏的总体流程图。当有儿童手部动作输入
4时,传感器每隔一段时间At,就实时获取一次肢体摆动角度的数据(在本实施方式中为手部摆动角度的数据),服务端通过与上一个记录时刻的角度比较,计算角度的变化趋势,然后通过检测到的角度变化拐点,顺序激发乐曲音符。请综合图2、3、4来看。传感器可检测到的手部动作是绕着竖直的轴(z轴)进行旋转分量,服务端只需要获取手部绕z轴转动的航向角的变化,就可以识别不同方向的摆动动作。传感器沿着与水平平面平行的方向旋转(或者在水平平面的投影有旋转分量)。
由于人体腕部沿前臂骨的垂直轴进行旋内、旋外运动的幅度都在_y到y之间。在此运动范
围内,航向角的变化范围为[-90°,90° ],我们把航向角持续增大或者持续减少做为一个单程摆动动作。两个单程摆动动作的分隔点,就是航向角数据取极值的时刻,亦即角度变化趋势发生改变的时刻。由于不是对已有的一个完整数据序列进行分析识别,而是在演奏过程中实时采集数据,及时识别并给出响应,所以就需要实时记录角度的变化状态。服务端定义两个负责数据识别的变量,分别保存当前时刻的航向角(currentYaw)及上一个时刻的航向角 (yawPre),并将当前时刻所获取的航向角currentYaw与上一个时刻的航向角yawPre进行对比;定义布尔类型的标志flag、flagPre分别表示当前时刻的变化趋势和上一个时刻变化趋势。currentYaw是否大于yawPre决定了当前的flag为真(true)还是为假(false), 因此如果flagPre与flag的真假相反,则判断为航向角的变化趋势发生了改变。随着传感器数据不断更新,每一个时刻的currentYaw覆盖其对应的yawPre, flag覆盖上个flagPre, currentYaw和flag—起滑动并更新为刚读出的传感器数据。具体流程如下I)假定传感器从操作者角度观察先逆时针转动,如图4从上半部分到下半部分所示,随着传感器的转动,航向角Yaw的值在逐渐减小;在记录Yaw的两个变量中,currentYaw 更新为新的角度,yawPre则更新为刚才的currentYaw,且currentYaw此时是小于yawPre 的,记录角度变化趋势的flag与上一个变化标志flagPre都是false ;2)当传感器停止逆时针旋转时,currentYaw取到极小值,判断此时检测到如图4 所示的第一个拐点;3)当接下来开始反方向顺时针旋转的时刻,currentYaw开始大于yawPre, flag更新为true且与flagPre不同,判断此时检测到如图4所示的第二个拐点。这时结束播放当前index所指示的音符(index是一个整型变量,记录的是当前正在播放第几个音符,实际对应为由音符序列转换成的整数数组的下标。),把index加I,开始播放新的index所指示的音符。手继续摆动,传感器继续顺时针转动,航向角在持续增加,flag与flagPre都是同样为true,此时一直播放当前的音符;4)当传感器停止顺时针旋转并开始逆时针旋转时,类似上述分析,航向角开始减小,flag为flase, flagPre为true,出现不同的值,此时停止播放当前音符,播放下一个音符。如此反复摆动,直到歌曲播放至最后一个音符时,再从头开始播放。但是,这个判断方法在以下情况会面临问题,即摆动到一个单程运动的终点时,手可能稍作停顿再进行反方向的下一个单程运动。这个短时间的停顿,虽然手基本处于静止状态,但是由于传感器存在静止漂移现象,航向角会出现很小范围的无规律跳动变化,如图 5a)所示。在上述检测算法下,这个较短时间间隔内判断出多个flag与flagPre值不同的时刻,会额外多出多个不需要的变化趋势,影响后续乐曲音符的激活。对此,本发明提供一种跳动过滤算法,当currentYaw与yawPre的绝对值之差大于一个阈值时才进行变化趋势的比较,否则yawPre保持原数,不被currentYaw的值覆盖,以尽量减小边际跳动数据对趋势判断的影响,如图5b)所示。此外,本发明还提供一种挥动动作与音符的对应激活方法基于儿童手部运动的航向角信息,每检测到一个航向角的拐点,停止播放当前的音符,同时开始下一个音符的播放,流程如图6所示。具体实现步骤如下I)将需要播放的乐曲音符翻译成midi输出参数,这样就可以把整个音符序列转换成一系列整数数组保存起来。每个整数数组对应着一个音符;数组里面的整数,是在 midi标准里用来表示该音符音高的参数,如用60表示中音I (dao)。a)定义当前播放位置,沿着数组的下标往前递增推进;b)检测到一个拐点时,停止当前播放位置的音符,播放位置往前推进一个,播放下一个音符;c)如果是第一次检测到拐点,即对应的播放位置为0,那么直接播放当前位置的音符;d)如果检测到某拐点,对应的播放位置已经推进到数组的最后一位,那么先结束该位置的音符播放,将播放位置归零,再从乐曲的开头继续播放;2)停止或者播放音符是激活自定义的消息,在消息响应里面,通过不同的midi输出参数来控制设备是播放还是停止声音、声音的通道数、音高(当前播放位置对应的简谱数组里写入)、音量。
权利要求
1.一种以动作方向变化控制音符播放的方法,其步骤包括;.1)将待播放的乐曲简谱转换为音符输出参数,存储为整数数组,并定义某一数组位置为初始播放位置;.2)按照设定的时间间隔接收定位于人体的传感器的输出,识别人体动作;.3)在检测第一个动作方向拐点时,播放当前播放位置数组对应的音符;.4)在检测下一个动作方向拐点时,停止播放当前音符而播放数组中下一位对应的音符。
2.如权利要求I所述的方法,其特征在于,将待播放乐曲转换为可为电脑识别并播放的音符输出参数,所述传感器通过无线方式与电脑连接。
3.如权利要求2所述的方法,其特征在于,通过激活自定义的消息来停止或播放音符, 在消息响应里,通过设定的输出参数控制电脑来播放、停止声音,声音的通道数,音高和音量。
4.如权利要求2所述的方法,其特征在于,所述传感器为陀螺仪,通过蓝牙方式与电脑无线连接。
5.如权利要求I所述的方法,其特征在于,根据所述传感器绕竖直方向转动的航向角识别人体动作。
6.如权利要求I所述的方法,其特征在于,如检测动作方向拐点时,当前播放位置指向数组的最后一位,则结束当前位置的音符播放,返回数组的第一位对应的音符继续播放。
7.如权利要求I所述的方法,其特征在于,所述传感器定位于人体手部。
8.如权利要求1-7任一所述的方法,其特征在于,根据当前航向角currentYaw是否大于上一时刻航向角yawPre来检测动作方向拐点。
9.如权利要求8所述的方法,其特征在于,在当前时刻动作变化趋势flag异于上一时刻动作变化趋势flagPre时,判定当前时刻出现动作方向拐点,其中,fIagPre为布尔类型, 当前航向角currentYaw大于上一时刻航向角yawPre时,fIagPre为真。
10.如权利要求9所述的方法,其特征在于,在当前航向角与上一时刻航向角的差值大于设定的阈值时才进行动作方向拐点的检测。
全文摘要
本发明为一种通过不同方向的动作控制音符播放的方法。该方法包括一种肢体摆动角度序列的拐点检测方法和一种挥动动作与音符的对应激活方法。该方法将儿童手部往返挥动的动作对应为乐曲音符的播放;每个单方向的运动过程中,持续播放某个音符,直到反方向挥动时,再开始播放下一个音符。本发明适合儿童以比较自然的方式来控制演奏的节奏,通过让儿童用肢体挥动的动作控制音符长短的方式进行演奏,降低了独奏的难度,同时提高了演奏的沉浸感和趣味性,从而达到培养儿童音乐学习兴趣,提高音乐素养,增进儿童沟通协作能力的目的。
文档编号G09B15/02GK102592485SQ201110442230
公开日2012年7月18日 申请日期2011年12月26日 优先权日2011年12月26日
发明者吕菲, 戴国忠, 王宏安, 田丰, 马奇林 申请人:中国科学院软件研究所

最新回复(0)