刘祥程,陈 陈,李嘉鹏,刘 涛,汪健韬,王玉琳
(合肥工业大学 机械工程学院,安徽 合肥 230009)
随着时代的发展,各种健身娱乐活动越来越受到广大老百姓的喜爱。在我国西南一带的少数民族地区流传着一种竹竿舞游戏[1]。该游戏中,一组人按照一定的节奏和频率不断地摆动竹竿,使竹竿不断地开合;另一组人则按照节奏和频率在不断开合的竹竿空档中跳来跳去,形成优美的舞蹈。这种竹竿舞既锻炼了身体,又愉悦了身心,兼有趣味性、普及性、简便性、健身性和娱乐性,符合“以人为本”“健康第一”的指导思想[2,3]。
但是,传统的竹竿舞需要2~8人甚至更多人跪在地上按音乐节拍来操纵竹竿的开合,俗称“打竿”。长时间跪在地上打竿是一件非常辛苦的事[4],况且多人手动打竿,节奏很难保持一致,打竿者又不能加入到游戏中,人少时,还会导致竹竿舞不能进行。因此,为了解决上述不足,本文提出了一种基于深度学习的竹竿舞自动打拍机,打破了竹竿舞这项运动对人数的限制,并具有操作简单、智能化程度高等优点。
新型竹竿舞智能打拍机机械结构如图1所示,该机构由STM-32单片机控制终端模块1、交流伺服电动机2、扭矩传递圆盘3、扭矩传动连杆4、摇杆联动器5、第一固定卷筒6、第二固定卷筒7、第一传动摇杆8、第二传动摇杆9、移动滑块10、移动导杆11、固定导轨12和光电传感器13等组成。
交流伺服电动机驱动扭矩传递圆盘并带动扭矩传动连杆定轴转动,使得摇杆联动器带动滑键在第一左传动摇杆和第一右传动摇杆的凹槽内滑动,从而带动第一左传动摇杆和第一右传动摇杆分别绕着第二左固定卷筒、第二右固定卷筒转动,同时,第二左传动摇杆、第二右传动摇杆上的滑键分别在第一左传动摇杆和第一右传动摇杆的凹槽内滑动,并带动第二左传动摇杆、第二右传动摇杆分别绕着第一左固定卷筒、第一右固定卷筒转动,进一步带动处于第二左传动摇杆、第二右传动摇杆凹槽内的左移动导杆与右移动导杆驱动两端的移动滑块在固定导轨上滑动,从而将交流伺服电动机的输出扭矩转化为移动导杆的往复运动。
1-单片机控制终端模块;2-交流伺服电动机;3-扭矩传递圆盘;4-扭矩传动连杆;5-摇杆联动器;6-第一固定卷筒;7-第二固定卷筒;8-第一传动摇杆;9-第二传动摇杆;10-移动滑块;11-移动导杆;12-固定导轨;13-光电传感器图1 竹竿舞智能打拍机机械结构示意图
竹竿舞自动打拍机的最后运动形式是两根或更多竹竿的水平移动,因此,我们可以将两根竹竿一侧的运动看成是两个质点做对称的往复运动,这种运动方式可以用滑块在导轨上滑行来表示,在滑块上加上两根短轴就可以将竹竿套在上面了。两个滑块可以由两根相同的连杆来带动,两根连杆的空闲端铰接并同时与另一根连杆连接,这根连杆的运动只能是在两滑块的对称轴上移动,也就是只要将这根杆在与两滑块对称轴垂直的方向上限制住,可以使得两个滑块做对称的往复运动[5,6],其传动机构简图如图2所示。
图2 竹竿舞智能打拍机传动机构简图
电机的输出运动是转动,要将转动转化成杆的竖直方向的往复运动,可以先将转动输出到一根杆上,然后再用一根连杆与上面提到的竖直移动的连杆连接,这样就可以组成一套完整的机构。由图2可以看出整个机构的运动,杆1一端与电机轴固结,电机输出轴将转动输出到杆1,即杆1随电机转动,这时杆2被杆1带动,杆3则在竖直方向上做往复运动,杆3的这种运动同时带动杆4、杆5与杆7、杆8做对称的运动,最后两个滑块的输出运动就是对称的往复运动。
由图2可知,由杆4带动滑块6在水平面上来回摆动从而带动滑块往复运动,杆5负责控制传动角,使得底下两端滑块能够达到虚接触与完全开合两种状态,提高了使用者的体验感,并且该传动机构传动角较大,能够较好地传输扭矩,由于杆5的存在,使得机构传动的过程中没有死点,大大提高了机构的可靠性。
传统竹竿舞音乐一般较为欢快,常用的节奏是2/4拍、3/4拍、4/4拍。
(1) 2/4拍的节奏重点是:第一拍强,第二拍弱。节奏轻快的音乐基本上都是这个。
(2) 3/4拍的节奏重点是:强、弱、弱。节奏很明显。
(3) 4/4拍的节奏重点是:强、弱、次强,弱。一般曲调柔和、缓慢。
由于传统竹竿舞的音乐节奏较为欢快,因此在设定打拍节奏时,将对应的竹竿舞节拍节奏进行封装,通过对音乐原文件(Mp3,Wav)进行预处理,提取相关信号。本文采用Python的第三方开源库librosa对相关的音乐信号进行数字信号处理,提取相关的信号特征,进行相关实验。如图3所示,以实验音频为例,通过设置合适的采样率,可以得到相关的波形。如图4所示,通过内置函数(librosa,feature,tempogram)的变换可以得到有关节拍对应的特征向量值,包括近似系数(浅层特征)、细节系数(深层特征)[7]。
通过给传动系统预设不同的转速,使得不同的节拍对应不同的转速特点,并通过伺服电机的速度控制,实现了不同节拍下竹竿开闭合的不同速度。通过上述对预订曲目的节拍分析,实现了机构对基于节拍的连续运转[8,9]。
利用处理过后得到的特征向量值,建立深度学习模型,该深度学习框架的数据集分为测试集与训练集两部分。由于没有前人这方面足够的研究资料,我们采用自己搭建训练集的方式,并将该训练集命名为“HFUT-Mechatronics-Text”,该训练集中包括了相应的原文件(处理)以及对应的节拍。
当音乐节拍输入进卷积神经网络(CNN)后,神经网络会对音乐特征进行提取并归类。浅层特征(近似系数)主要包括音乐特征经过神经网络模型前级卷积的特征。而深层特征(细节系数)主要包括音乐特征的高频成分,对节拍输出的影响较大,这一部分的特征更加抽象。卷积神经网络能够从中提取更高阶的信息,从而实现数据降维的功能。
图3 实验音频对应的波形
图4 实验音频对应的节拍
LSTM是基于 RNN(循环神经网络) 的网络结构进行了优化改进的神经网络系统,如图5所示,将应用中神经网络的每层每个神经元中均设置输入门、输出门和遗忘门。针对序列数据而言,LSTM的优势在于一方面可以提高模型的收敛速度;另一方面因为门限机制,可以促使模型避开局部最优,朝正确的方向进行收敛。
模型的数据处理需要实现由相关输入的特征向量得到相应电机转速的输出,本质上是一个基于时间序列的多分类的循环输出问题。我们预期输出有6个不同的节拍,分别为1/4拍、2/4拍、3/4拍、4/4拍、3/8拍和6/8拍 ,分别对应6种不同的转速。
通过定义标签,将期望的转速特征与其对应的特征向量建立数值上的对应关系,并建立相应的验证集作为下一步训练的参考,通过输入激励节拍(相关音频信号所提取的特征向量),可以得到相关的响应序列,选取已知序列进行测试,如表1所示。
图5 改进后的循环神经网络
由表1中的测试数据可知,该模型具有较高的预测能力,可以匹配实际应用。
Sortmax是神经网络中的一个很重要的函数,其作用是将人工神经元的输出结果映射到[0,1]空间中去,并且能够保证归一化后的和为1,这使得多分类问题的各结果的概率之和刚好为1,并且保证输出的结果为最大概率的值。Sortmax函数的表达式如下:
Sortmax(i)=ei∑pi=1ei.
其中:Sortmax(i)为第i个节点输出值;p为节点的个数,即分类的类别个数。
表1 对应测试数据
最终通过输入的音乐信号,输出所匹配概率最大的节奏信号并反馈输入到MCU控制器(STM32F103),MCU控制器通过电机驱动器控制电机转动,完成整个智能打拍的过程及节拍速度反馈的过程。本次实验使用的控制电机如图6所示。
针对传统竹竿舞在打拍中出现的问题,本文提出新型竹竿舞智能自动打拍机的设计,并详细介绍了该打拍机的整体结构、设计原理以及深度学习的实现。该打拍机操作简单、智能化程度高,不仅可以实现自动打拍功能,节约了人力与场地,为竹竿舞爱好者提供了良好的训练以及表演平台,还可以通过无线通信与终端进行连接,保证了数据的实时反馈,实现了良好的人机交互。该机器应用前景广阔,经济效益和社会效益明显。经过实物样机的制作与测试,实现了机电软一体化综合训练。
图6 本次项目使用的电机驱动器与电机