本发明专利技术实施例公开了一种音调线生成方法和装置。本发明专利技术实施例方法包括:获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度;对所述音符信息序列中的各音符高度,以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1;对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列;根据所述新音符信息序列显示音调线。
【技术实现步骤摘要】
本专利技术涉及音频处理领域,尤其涉及一种音调线生成方法和装置。
技术介绍
K歌系统是音乐播放器和录音软件的结合体,既可以播放原唱,也可以把用户的歌声融入歌曲的伴奏中,还可以对用户的歌声进行音频效果处理,最后通过音效处理后的文件上传到网络中让更多人听到自己的歌声。现有K歌系统的应用流程一般为:进入系统后,用户首先选择歌曲,然后进入K歌阶段;系统播放用户所选择的歌曲,在用户演唱过程中,系统管显示出该歌曲的原唱音调线以及用户演唱的音调线,并根据该两个音调线的差距来对用户的演唱进行评分。系统在显示音调线时,纵坐标一般为音符高度。然而,实际应用中,歌曲中各音符的音符高度相差很小,这导致显示出来的音调线起伏很小,使得用户很难看出自己演唱的音调线与歌曲原唱的音调线的差距,降低了用户体验。
技术实现思路
本专利技术实施例提供了一种音调线生成方法和装置,用于生成起伏较大的音调线。第一方面,本专利技术提供一种音调线生成方法,包括:获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度;对所述音符信息序列中的各音符高度,以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1;对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列;根据所述新音符信息序列显示音调线。第二方面,本专利技术提供一种音调线生成装置,包括:获取模块,用于获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度;计算模块,用于对所述音符信息序列中的各音符高度,以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1;替换模块,用于对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列;显示模块,用于根据所述新音符信息序列显示音调线。从以上技术方案可以看出,本专利技术实施例具有以下优点:本专利技术中,对所述音符信息序列中的各音符高度,通过采用预置函数和音符高度计算该音符高度的替换值,由于该预置函数的导函数是大于1的,那么计算出来的音符信息序列中各音符高度的替换值之间的差距要大于各音符高度的差距,这样,将音符信息序列中的各音符高度替换为该音符高度的替换值后形成的新音符信息序列,根据该新音符信息序列显示的音调线的起伏相比根据原音符信息序列显示的音调线的起伏更加明显,有助于提高用户的使用体验。附图说明图1为本专利技术的音调线生成方法的一个实施例的流程示意图;图2为根据表1中的音符信息序列所生成的音调线;图3为根据表2中的音符信息序列所生成的音调线;图4为本专利技术的音调线生成装置的一种实施例的结构示意图;图5为本专利技术的终端的一种实施例的结构示意图。具体实施方式请参阅图1,图1为本专利技术的音调线生成方法的一个实施例的流程示意图。本实施例中,音调线生成方法包括:101、获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度。获取音符信息序列的方法有多种。例如,实际应用中,歌曲的音符信息是存储在MIDI(英文:Musical Instrument Digital Interface,中文:乐器数字接口)文件中的。MIDI是一个工业标准的电子通信协议,为电子乐器等演奏设备(如合成器)定义各种音符或弹奏码。获取到歌曲的MIDI文件后,从该MIDI文件中解析出该歌曲中每一个音符的开始时间、结束时间(或者持续时长)和音符高度。具体的,音符高度一般位于区间[21,108]内。解析出每一个音符的开始时间、结束时间(或者持续时长)和音符高度后,一般定义一个结构体来存储这些信息。因此,在获取音符信息序列时,可从该结构体中查找每一个音符信息。然而,虽然音符高度一般位于区间[21,108]内,但部分歌曲中大部分音符的音符高度位于该区间内的一个小范围内,也就是说,一首歌曲内的大部分音符之间的差异较小。例如,部分歌曲中大部分音符的音符高度位于区间[55,75]内。102、对所述音符信息序列中的各音符高度,根据预置函数和所述音符高度计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符信息序列中的音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1。由于音符信息序列中的各音符高度相差较小,因此,本实施例中,还根据预置函数计算每一个音符高度对应的替换值。其中,当所述预置函数的自变量位于所述音符信息序列中的音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1。具体来说,音符信息序列中取值最大的音符高度为d,取值最小的音符高度为c,对位于范围[c,d]的至少部分范围内的两个自变量x1和x2,其中x1(也即一个音符高度)对应的函数值(也即音符高度x1的替换值)为y1,x2(也即一个音符高度)对应的函数值为y2(也即音符高度x2的替换值),由于导函数大于1,因此(y1-y2)/(x1-x2)大于1,也即y1-y2大于x1-x2,这样,将位于范围[c,d]的至少部分范围内音符高度代入预置函数的变量中计算出函数值作为该音符高度的替换值,该音符高度的替换值之间的差异要大于原音符高度之间的差异,拉开了音符高度之间的距离,使得音符高度的变化更加明显。具体举例来说,所述预置函数为f(x)=(q-p)×(2(x-c)/(d-c)-1)+p,其中,c为音符信息序列中取值最小的音符高度,d为音符信息序列中取值最大的音符高度,[p,q]为所述新音符信息序列中音符高度的预置取值区间。103、对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列。由于音符信息序列中至少部分音符高度的替换值之间的差异要大于原音符高度之间的差异,因此,将原来音符信息序列中的每一个音符高度替换为该音符高度的替换值,形成新音符信息序列。具体举例来说,音符信息序列中包括三个音符信息,分别为(35667,398,71)、(36068,264,69)和(36335,622,71),其中每一个音符信息中的第一个数值为音符开始时间,第二个数值为持续时间,第三个数值为音符高度。将71代入预置函数中计算出函数值为92,将69代入预置函数中计算出函数值为73,那么,替换音符高度后形成的新音符信息序列为(35667,398,92)、(36068,264,73)和(36335,622,92)。104、根据所述新音符信息序列显示音调线。本实施例中,根据新音符信息序列显示音调线的方法有多种。例如,新音符信息序列中的每一个音符信息包括开始时间、结束时间(或者持续时长)和音符高度,在显示音调线时,每一个音符信息在xy坐标平面中为一条平行于x轴的线段,其中,该线段的起点的横坐标为该音符信息中的开始时间,终点的横坐标为该音符信息中的结束时间(或者该线段的长度为该音符信息中的持续时间),该线段的纵坐标为该音符信息中的音符高度。又例如,对每一个音符信息进行编号,每个编号用于唯一指示该音符信息。在显示音调线时,每一个音符信息在xy坐标平面中为一个点,其中,该点的横坐标为该音符信息的编号,纵坐标为该音符信息中的音符高度。本实施例中,本文档来自技高网...
【技术保护点】
一种音调线生成方法,其特征在于,包括:获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度;对所述音符信息序列中的各音符高度,以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符信息序列中的音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1;对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列;根据所述新音符信息序列显示音调线。
【技术特征摘要】
1.一种音调线生成方法,其特征在于,包括:获取音符信息序列,所述音符信息序列中每一个音符信息包括音符高度;对所述音符信息序列中的各音符高度,以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,其中,当所述预置函数的自变量位于所述音符信息序列中的音符高度取值范围的至少部分范围内时,所述预置函数的导函数大于1;对所述音符信息序列中的各音符高度,将所述音符高度替换为所述音符高度的替换值,形成新音符信息序列;根据所述新音符信息序列显示音调线。2.根据权利要求1所述的音调线生成方法,其特征在于,所述音符信息序列中音符高度的最大值为d,音符高度的最小值为c;当所述预置函数的自变量取值位于[c,m]内时,所述预置函数的导函数为f1‘(x),当所述预置函数的自变量取值位于(m,n)内时,所述预置函数的导函数为f2‘(x),当所述预置函数的自变量取值位于[n,d]内时,所述预置函数的导函数为f3‘(x),其中,m大于c且小于n,n小于d;f2‘(x)大于1,f2‘(x)大于f1‘(x),且f2‘(x)大于f3‘(x)。3.根据权利要求2所述的音调线生成方法,其特征在于,f1‘(x)和f3‘(x)均小于1。4.根据权利要求2所述的音调线生成方法,其特征在于,所述以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,包括:确定预置函数,其中,所述预置函数为n为整数,[p,q]为所述新音符信息序列中音符高度的预置取值区间;将所述音符高度代入所述预置函数计算函数值,所述函数值为所述音符高度的替换值。5.根据权利要求2所述的音调线生成方法,其特征在于,所述以所述音符高度为自变量根据预置函数计算所述音符高度的替换值,包括:确定预置函数,其中,所述预置函数为n为整数,[c,d]为所述音符信息序列中音符高度的取值区间,[p,q]为所述新音符信息序列中音符高度的预置取值区间;将所述音符高度代入所述预置函数计算函数值,所述...
【专利技术属性】
技术研发人员:赵伟峰,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。