APP下载

卡拉OK评分系统的应用研究

2017-07-27刘旺

电脑知识与技术 2017年11期
关键词:演唱音高

刘旺

摘要:近年来,娱乐消费在大众消费中的比重逐年增加。卡拉OK作为大众喜闻乐见的娱乐方式,被广泛应用在智能手机、智能家庭以及经营性娱乐场所。但是,传统的卡拉OK应用系统只有单一的点唱功能,缺乏娱乐互动的趣味性。因此,需要设计一款基于卡拉OK的评分系统,实现从点唱到娱乐互动的全新体验。

关键词:音准评分;卡拉OK;音高;演唱;特征文件

卡拉OK系统又叫做卡拉OK点歌系统,是集点唱为一体的娱乐设备。在演唱过程中,屏幕上同时显示歌曲MTV和歌词,歌词与伴奏保持同步,方便演唱者踏准节奏。现有的演唱评分技术一般是基于音准来进行评判的。因此,设计一个卡拉OK评分系统的重点就是如何将音准评分技术和卡拉OK系统进行有机的融合。

1技术分析

音准的目的是使得歌唱和/或乐器演奏中所发的音高,能与一定律制的音高相符。音准评分技术是一种以声音作为输入数据,经处理器进行运算得到量化参数后,最终由显示单元图形界面反馈给用户,使其能够对自己演唱声音进行调整以符合标准要求的技术。图1为音准评分流程图。

音准特征文件是由歌谱制作而成,以句为单位,详细地记录了每一句中的每一个歌词文字以及对应的音高,以及每个音高的起止时间点以及音高值。

2方案设计

在业务流程中,用户输入声音,系统反馈实时评分效果,以指导用户在下个时间点输入正确的声音,以此循环往复。因此,描述评分操作业务流程可以以用户输入声音为起点,用户声音通过麦克风采集后转换为数字语音信号数据,系统通过语音信号处理分析其短时语音基频,并根据频率、音高转换关系得到对应时间点音高参数,这里的时间点来源于卡拉OK系统播放音频文件得到的播放时间,整个系统都以该时间线为基准处理事件的时间对应关系。在播放音频的同时,系统将解析音准特征文件,以获得标准的音高、时间对应关系,这是评分的基准,用户输入的语音经过处理后得到的音高参数将与该基准对应时间点音高值进行匹配,从而按照匹配度计算得分。系统的演唱界面部分则负责实时向用户展示当前时间点的演唱情况,包括歌词、标准音高序列、用户演唱音高,以及实时得分信息等。用户将根据演唱界面当前的演唱效果作为指导,从而决定下个时间点的输入声音。该循环将重复直至歌曲文件播放完毕,此时系统将计算最终得分,并将结果通过演唱界面展示给用户。

设计方案需要包含以下4个元素1)音高音长信息:根据歌曲歌谱将对应时刻音高,以及时长表现在五线谱上供演唱者参考;2)歌词信息:根据歌曲歌谱将对应语句歌词文字显示在演唱界面供演唱者参考;3)演唱游标:指示演唱者当前演唱进度,并反映演唱者声音的量化音高;4)评分状态:演唱者实时的得分评价,可包括得分、点评、加成等各种状态。

在整体形态上,一般有两种方案,如上图。设计方案1是将演唱游标固定,音高、歌词信息在界面上从右向左水平移动。这个方案的优势是演唱者视线可以专注于固定的游标区域,劣势是当一首卡拉OK歌曲节奏比较快时,信息的运动速度也很快,演唱者浏览信息的速度跟不上信息自身运动速度。设计方案2是将当前句的音高、歌词,以及下一句的歌词固定显示在屏幕上,游标随着演唱进度水平向右移动。这样做的好处是演唱者一次性就可以把当前句和下一句歌词都提前浏览,便于演唱;另一方面,由于不需要移动大量的信息,减少了信息刷新面积,节省了大量CPU的计算消耗,可以使系统更灵活的运用在嵌入式领域以及其他低功耗的应用领域。因此本文将采纳第二种方案作详细介绍。具体的实现方式如下:

首先需要在屏幕上显示当前句歌词的标准音高。标准音高信息一般是由歌曲歌谱制作而成的音准特征文件中读取。音准特征文件包含了歌曲中每一个音的音高、音长、时值以及对应时间点的歌词信息。用横向的长条空槽来表示音高和音长。其中空槽的显示位置高低表示音高、空槽的长度表示音长。在垂直显示方向上,通过遍历歌曲的所有标准音高值,得到其中最大值以及最小值,该最小值映射到屏幕上这首歌曲的音高显示区域的底部,最大值对应显示区域的顶部,其他标准音高值的显示位置,通过与该最小值的差值在该最大、最小值范围内的比例关系确定其垂直方向显示位置。在水平显示方向上,以当前歌词行的第一个音高的起始时间作为起始时间点,以当前行的最后一个音高的结束时间作为行结束时间,并将二者差值作为本行总持续时间,第一个音高(空槽)的左端点布置在显示区域左端开始位置,最后一个音高的右端点布置在显示区域右端结束位置,其他音高分别根据自身的开始、结束时间与本行起始时间点的差值在本行总持续时间内的比例关系确定其左、右端点在水平方向的显示位置。

其次是歌词的显示。歌词分为当前行歌词信息和下一行歌词信息。显示两句歌词,可以解决用户演唱连贯性的问题,唱当前行歌词的时候就可以快速预览下一行歌词内容。另外,歌词与音高在音准特征文件中就设计成具有对应关系,在显示的时候,当前行歌词与对应的音高具有相同的时间轴,即先显示音高空槽,再在空槽的左端点下方显示对应的歌词文字。这样用户在演唱的时候就能把词曲对应起来,不容易唱错。

最后是结果的展示。结果主要由游标、空槽填充以及得分来表示。其中游标用于表示演唱者的当前音高,空槽的填充表示用户在对应音高上的演唱准确度,得分表示整首歌的当前得分。游标随着演唱时间水平向右运动,根据实时采集的人声信号计算得到实时音高值,判断音高值的变化,改变游标垂直方向位置,从而调整演唱游标与基准音高值的相对位置展示关系;当实时音高值低于基准音高值时,演唱游标在所展示的基准音高值下面;当高于基准音高值时,展示在上面。如果判定实时音高值与基准音高值保持匹配,则实时填充空槽,空槽填充的越多,表示演唱越准确。得分是对最终演唱结果的预估分数,在每句演唱完成后,分析当前歌曲已完成的音准情况,给出总分。一般来说音准完成度越高,分值越高。

3游标抖动处理

演唱者的真实音高并不稳定,直接根据音高值转换为竖直方向坐标并绘制演唱游标,会导致演唱游标出现抖动、跳动等运动轨迹,很大程度偏离上一轨迹点或标准音高在界面上的位置,出现在演唱者非预期的位置上,不利于演唱者观察演唱游标。另外,演唱音高的变化是一个渐变过程,而演唱游标存在的抖动、跳动等综合界面表现与该规律不吻合,导致演唱者只能获得一种不完全符合自身发音规律的视觉感受。针对以上问题,设计了一套音准抖动修正的方法。该方法的主要思想是根据前一时刻演唱游标的坐标、当前时刻演唱音高值(“当前时刻”即歌曲演唱进度的任意一时刻)、前一时刻(“前一时刻”即“当前时刻”的上一刻)基准音高值以及当前时刻基准音高值四者的关系,应用特定的算法,平滑修正当前游标坐标值,使得演唱游标的运动轨迹得到平滑展示。具体分为以下四种情况:

第一种情况:前一时刻演唱游标的坐标高于前一时刻的标准音高坐标,并且当前时刻演唱音高值小于当前时刻的标准音高值;则当前时刻演唱游标坐标=当前时刻标准音高坐标+(当前时刻演唱音高值对应坐标一当前时刻标准音高坐标)*因子a1;所述因子a1为大于0,小于等于1的预设值;(例如:此处因子a1为1/8,该因子a1是0~1可调,未调整情况下为1,即存在演唱游标抖动、跳动)。

第二种情况:前一时刻演唱游标的坐标低于前一时刻的标准音高坐标,并且当前时刻演唱音高值大于当前时刻的标准音高值;则当前时刻演唱游标坐标=当前时刻标准音高坐标+(当前时刻演唱音高值对应坐标一当前时刻标准音高坐标)*因子a1。

第三种情况:前一时刻演唱游标的坐标高于或等于前一时刻的标准音高坐标,并且当前时刻演唱音高大于当前时刻的标准音高值;则当前时刻演唱游标坐标=前一时刻演唱游标的坐标+(当前时刻演唱音高值对应坐标一前一时刻演唱游标的坐标)*因子a2;所述因子a2为大于0,小于等于1的预设值;(例如:此处因子a2为1/6,该因子a2是0~1可调,未调整情况下为1,即存在演唱游标抖动、跳动)。

第四种情况:前一时刻演唱游标的坐标低于或等于前一时刻的标准音高坐标,并且当前时刻演唱音高小于当前时刻的标准音高值;則当前时刻演唱游标坐标=前一时刻演唱游标的坐标+(当前时刻演唱音高值对应坐标一前一时刻演唱游标的坐标)*因子a2。

修正后的效果如图:

4总结

本文设计了一套基于卡拉0K的评分应用,满足用户演唱评分的需求,增强了卡拉0K的娱乐互动性。演唱评分系统的实现非常复杂,涉及特征文件制作,声音采集、演唱特征提取、分值算法以及应用等等。限于篇幅,只能在应用层面上进行展开,提出了应用整体方案设计,以及其中关键难点音准抖动的显示修正方法,仅供参考。

猜你喜欢

演唱音高
库塔克《四首随想曲》的音高材料与创作观念研究
里盖蒂《小提琴协奏曲》中的“双律制音高组织”研究
论高平钢琴奏鸣曲《浮影》中纵向音高组织的逻辑运用
改进音高轮廓创建和选择的旋律提取算法
序列的蜕变——皮埃尔·布列兹室内乐作品《无主之槌》音高组织初探
音乐是一种特殊的语言——聊聊音高的魅力
陇东民歌演唱特征探究
传统民歌中方言演唱的重要性阐释