节拍数据的提取方法、装置、电子设备及计算机可读介质与流程

文档序号:23709621发布日期:2021-01-23 16:32阅读:111来源:国知局
节拍数据的提取方法、装置、电子设备及计算机可读介质与流程

[0001]
本公开涉及计算机技术领域,具体而言,涉及一种节拍数据的提取方法、节拍数据的提取装置、电子设备及计算机可读介质。


背景技术:

[0002]
音乐游戏(music game)是电子游戏类型的一种,系统通过将音乐的节奏转换成可视化的节拍点,玩家根据界面上的可视化节拍点做出相吻合的操作来进行游戏。
[0003]
音乐游戏开发的核心在于,将音乐节奏进行提取并且转换成可视化的节拍点。然而,现有的音频采样过程只是简单地记录音乐中的节拍点,并通过人力分配节拍点到各个音乐通道,耗时费力,节拍点提取的效率比较低。
[0004]
鉴于此,本领域亟需一种能够提高节拍点的提取效率的方法。
[0005]
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

[0006]
本公开的目的在于提供一种节拍数据的提取方法、节拍数据的提取装置、电子设备及计算机可读介质,进而至少在一定程度上提高节拍点的提取效率。
[0007]
根据本公开的第一个方面,提供一种节拍数据的提取方法,包括:
[0008]
获取音频文件,并对所述音频文件中的节拍点进行采样,得到所述音频文件的基础节拍数据;
[0009]
获取所述音频文件对应的音乐通道,并将所述基础节拍数据分配至各个所述音乐通道中;
[0010]
根据各个所述音乐通道中所分配的基础节拍数据,得到所述音频文件对应的音频节拍数据。
[0011]
在本公开的一种示例性实施例中,所述对所述音频文件中的节拍点进行采样,得到所述音频文件的基础节拍数据,包括:
[0012]
获取采样函数,以及所述采样函数中的采样数组的数组长度;
[0013]
根据所述采样数组的数组长度确定所述音频文件中每一帧音频的采样密度;
[0014]
通过所述采样函数按照所述采样密度对所述音频文件中每一帧音频的节拍点进行采样,得到所述音频文件的基础节拍数据。
[0015]
在本公开的一种示例性实施例中,所述通过所述采样函数按照所述采样密度对所述音频文件中每一帧音频的节拍点进行采样,得到所述音频文件的基础节拍数据,包括:
[0016]
确定每一帧音频中的目标节拍点;
[0017]
通过所述采样函数按照所述采样密度对所述每一帧音频中的目标节拍点进行采样,得到所述目标节拍点的基础节拍数据;
[0018]
根据所述目标节拍点的基础节拍数据得到所述每一帧音频中的所有节拍点的基
础节拍数据;
[0019]
根据所述每一帧音频中的所有节拍点的基础节拍数据得到所述音频文件的基础节拍数据。
[0020]
在本公开的一种示例性实施例中,所述方法还包括:
[0021]
获取所述采样函数中的数据转换窗函数;
[0022]
通过所述数据转换窗函数将所述音频文件的基础节拍数据转换为对应的显示高度值;
[0023]
获取当前显示帧的基础节拍数据,并根据所述当前显示帧的基础节拍数据对应的显示高度值,将所述基础节拍数据显示在界面上。
[0024]
在本公开的一种示例性实施例中,所述根据所述当前显示帧的基础节拍数据对应的显示高度值,将所述基础节拍数据显示在界面上,包括:
[0025]
获取所述基础节拍数据在界面上显示时的标准高度值;
[0026]
根据所述基础节拍数据对应的显示高度值和所述标准高度值确定缩放比例;
[0027]
根据所述缩放比例对所述基础节拍数据对应的显示高度值进行调整,并根据调整后的所述显示高度值将所述基础节拍数据显示在界面上。
[0028]
在本公开的一种示例性实施例中,所述将所述基础节拍数据分配至各个所述音乐通道中,包括:
[0029]
获取所述音频文件的类型,并根据所述音频文件的类型从多个预设分配规则中确定一目标分配规则;
[0030]
根据所述目标分配规则确定各个所述音乐通道的分配顺序;
[0031]
根据所述音乐通道的分配顺序将所述基础节拍数据依次分配至空闲状态的所述音乐通道中。
[0032]
在本公开的一种示例性实施例中,所述根据所述音乐通道的分配顺序将所述基础节拍数据依次分配至空闲状态的所述音乐通道中,包括:
[0033]
获取所述基础节拍数据中的各个节拍点的出现时间,以及所述节拍点的持续时间;
[0034]
根据所述音乐通道中所分配的上一节拍点的出现时间和持续时间,判断在当前节拍点分配时所述音乐通道是否为空闲状态;
[0035]
若所述音乐通道为空闲状态,则将所述当前节拍点分配至所述音乐通道中;
[0036]
若所述音乐通道为阻塞状态,则跳过所述当前节拍点,并继续进行下一节拍点的分配。
[0037]
根据本公开的第二方面,提供一种节拍数据的提取装置,包括:
[0038]
基础节拍获取模块,用于获取音频文件,并对所述音频文件中的节拍点进行采样,得到所述音频文件的基础节拍数据;
[0039]
音乐通道分配模块,用于获取所述音频文件对应的音乐通道,并将所述基础节拍数据分配至各个所述音乐通道中;
[0040]
音频节拍确定模块,用于根据各个所述音乐通道中所分配的基础节拍数据,得到所述音频文件对应的音频节拍数据。
[0041]
根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储
所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的节拍数据的提取方法。
[0042]
根据本公开的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的节拍数据的提取方法。
[0043]
本公开示例性实施例可以具有以下有益效果:
[0044]
本公开示例实施方式的节拍数据的提取方法中,先通过对音频文件中符合基本采样要求的节拍点进行采样得到基础节拍数据,再将音频文件的基础节拍数据通过一定的分配方法自动分配至各个音乐通道中,得到最终的多通道的音频节拍数据。通过本公开示例实施方式中的节拍数据的提取方法,一方面,在基础节拍数据的分配过程中不需要耗费人力,可以在节约人力成本的同时大大提高节拍数据提取的效率;另一方面,通过配置不同的分配函数将基础节拍数据分配至各个音乐通道中,能够适应各种不同类型的音乐节拍点的提取。
[0045]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0046]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0047]
图1示出了本公开示例实施方式的节拍数据的提取方法的流程示意图;
[0048]
图2示出了本公开示例实施方式的采样得到音频文件的基础节拍数据的流程示意图;
[0049]
图3示出了本公开示例实施方式的通过采样函数得到基础节拍数据的流程示意图;
[0050]
图4示出了本公开示例实施方式的分配音乐通道的流程示意图;
[0051]
图5示出了本公开示例实施方式的根据分配顺序分配音乐通道的流程示意图;
[0052]
图6示出了本公开示例实施方式的节拍点可视化展示的流程示意图;
[0053]
图7示出了本公开示例实施方式的根据对应的显示高度进行节拍点可视化展示的流程示意图;
[0054]
图8示意性示出了根据本公开的一个具体实施方式的可视化节拍点的示意图;
[0055]
图9示出了根据本公开的一个具体实施方式中节拍数据的提取方法的流程示意图;
[0056]
图10示出了本公开示例实施方式的节拍数据的提取装置的框图;
[0057]
图11示出了适于用来实现本公开实施方式的电子设备的计算机系统的结构示意图。
具体实施方式
[0058]
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形
式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
[0059]
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0060]
本示例实施方式首先提供了一种节拍数据的提取方法。参考图1所示,上述节拍数据的提取方法可以包括以下步骤:
[0061]
步骤s110.获取音频文件,并对音频文件中的节拍点进行采样,得到音频文件的基础节拍数据。
[0062]
步骤s120.获取音频文件对应的音乐通道,并将基础节拍数据分配至各个音乐通道中。
[0063]
步骤s130.根据各个音乐通道中所分配的基础节拍数据,得到音频文件对应的音频节拍数据。
[0064]
本示例实施方式中提供的一种节拍数据的提取方法,可以用于音乐游戏的节拍点提取。音乐游戏(music game,简称mug、音g、音游等)是电子游戏类型的一种,玩家通过配合音乐与节奏,按照画面指示做出动作来进行游戏。
[0065]
一款音乐游戏一般会包含大量的音乐曲目,系统会将这些音乐的节奏转换成可视化的节拍点,玩家根据游戏中提供的可视化节拍点做出相吻合的操作即可增加得分,相反情况下则会扣分或不计分。部分游戏甚至会因为有类似血量限制的设定,倘若失误过多,或者结束时血量没有达到一定要求,则会强制结束游戏(game over)。此外,某些游戏会要求一定的最低得分,若无法达成则也会结束游戏。游戏的最终目的是追求full combo(俗称全连,即无失误)以及all perfect(俗称收歌,即全部音符打出最佳判定)等。
[0066]
随着游戏的不断发展,音乐游戏也在不断地拓展,从早期的按键式操作,到对应乐器的演奏,再到融入各种其他种类游戏的要素。但是,无论如何创新,音乐游戏的核心体验都离不开两大要素:旋律与节拍。也就是说,音乐游戏开发的重点在于,将音乐节奏进行提取并且转换成可视化的节拍点,节拍点越准确,玩家的游戏体验越好。因此,音乐游戏的开发过程中有大量的工作在于音乐节拍点的提取。
[0067]
本公开示例实施方式的节拍数据的提取方法中,先通过对音频文件中符合基本采样要求的节拍点进行采样得到基础节拍数据,再将音频文件的基础节拍数据通过一定的分配方法自动分配至各个音乐通道中,得到最终的多通道的音频节拍数据。通过本公开示例实施方式中的节拍数据的提取方法,一方面,在基础节拍数据的分配过程中不需要耗费人力,可以在节约人力成本的同时大大提高节拍数据提取的效率;另一方面,通过配置不同的
分配函数将基础节拍数据分配至各个音乐通道中,能够适应各种不同类型的音乐节拍点的提取。
[0068]
下面,结合图2至图8对本示例实施方式的上述步骤进行更加详细的说明。
[0069]
在步骤s110中,获取音频文件,并对音频文件中的节拍点进行采样,得到音频文件的基础节拍数据。
[0070]
本示例实施方式中,节拍点指的是一段音频中的瞬时强度信号或瞬时频率信号,用来表示一段音频中的明显变化位置点。而音频文件的基础节拍数据指的是音频文件中符合基本采样要求的节拍点。
[0071]
本示例实施方式中,可以通过unity游戏引擎中的audiosource组件(unity引擎中用来管理音频播放的组件)来进行节拍点的采集。首先将获取到的音频文件导入unity引擎,unity引擎会将导入的音频文件进行处理,通过audiosource组件对音频进行播放。
[0072]
本示例实施方式中,如图2所示,对音频文件中的节拍点进行采样,得到音频文件的基础节拍数据,具体可以包括以下几个步骤:
[0073]
步骤s210.获取采样函数,以及采样函数中的采样数组的数组长度。
[0074]
本示例实施方式中,unity引擎中的audiosource组件可以提供一个采样函数,通过采样函数合一直接获取音频文件中的音频图谱数据。
[0075]
采样函数中包含用于存储样本数据的采样数组,数组长度一般为2的n次方,最小为64,最大为8192。
[0076]
步骤s220.根据采样数组的数组长度确定音频文件中每一帧音频的采样密度。
[0077]
采样数组的数组长度代表了音频文件中每一帧音频的采样密度,也就是每一帧音频中采样的节拍点的样本数量。例如,如果采样数组的数组长度为64,则每一帧音频中采样的节拍点的样本数量为64。
[0078]
步骤s230.通过采样函数按照采样密度对音频文件中每一帧音频的节拍点进行采样,得到音频文件的基础节拍数据。
[0079]
本示例实施方式中,如图3所示,通过采样函数按照采样密度对音频文件中每一帧音频的节拍点进行采样,得到音频文件的基础节拍数据,具体可以包括以下几个步骤:
[0080]
步骤s310.确定每一帧音频中的目标节拍点。
[0081]
步骤s320.通过采样函数按照采样密度对每一帧音频中的目标节拍点进行采样,得到目标节拍点的基础节拍数据。
[0082]
步骤s330.根据目标节拍点的基础节拍数据得到每一帧音频中的所有节拍点的基础节拍数据。
[0083]
步骤s340.根据每一帧音频中的所有节拍点的基础节拍数据得到音频文件的基础节拍数据。
[0084]
本示例实施方式中,可以通过每一帧音频中目标节拍点采样值来得到这一帧音频中所有节拍点的基础节拍数据。其中,目标节拍点可以为一个节拍点,也可以为多个节拍点。例如,当一帧音频中采样的节拍点的样本数量为64时,可以将64个样本节拍点中的第一个样本节拍点作为目标节拍点,并将第一个样本节拍点的采样值作为这一帧音频中所有节拍点的基础节拍数据;或者,也可以将64个样本节拍点中的前3个或者前5个节拍点作为目标节拍点,并将作有目标节拍点的采样值相加后取平均值,然后将目标节拍点的采样值平
均值作为这一帧音频中所有节拍点的基础节拍数据。最后,将音频文件中每一帧的基础节拍数据进行整合,即可得到音频文件的基础节拍数据。通过上述方法可以减少每一帧采样的次数,进一步提高效率。
[0085]
综上所述,采样函数实际上就是把一帧的音频切分成与采样数组的数组长度相同的份数,在确定每一份样本的采样值,最后得到音频文件的基础节拍数据。
[0086]
在步骤s120中,获取音频文件对应的音乐通道,并将基础节拍数据分配至各个音乐通道中。
[0087]
本示例实施方式中,音乐通道指的是音乐游戏中用来管理节拍点的通道。基础节拍数据可以通过一定的规律分配至各个音乐通道中,例如,可以通过设置分配函数的方法进行音乐通道分配。
[0088]
本示例实施方式中,如图4所示,将基础节拍数据分配至各个音乐通道中,具体可以包括以下几个步骤:
[0089]
步骤s410.获取音频文件的类型,并根据音频文件的类型从多个预设分配规则中确定一目标分配规则。
[0090]
本示例实施方式中,获取音频文件的类型,实际上就是获取音频文件所用于的音乐游戏所需的类型。
[0091]
多个预设分配规则可以包括:根据音乐通道的权重分配、随机分配或者根据连续花型分配等等。根据音频文件的类型从多个预设分配规则中确定一目标分配规则,就是通过判断音频文件对应的分配需求,来确定一个目标分配规则。例如,音频文件所用于的音乐游戏需要显示与音乐节奏相对应的一段连续的有规律的节拍点,则该部分就可以使用根据连续花型分配的规则。
[0092]
步骤s420.根据目标分配规则确定各个音乐通道的分配顺序。
[0093]
不同的分配规则对应不同的音乐通道的分配顺序。例如,如果是根据音乐通道的权重分配,则先确定各个音乐通道的权重,再按照权重由高到低的顺序确定各个音乐通道的分配顺序;如果是随机分配,则可以根据简单随机规则随机确定音乐通道的分配顺序;如果是根据连续花型分配,则可以根据预设的花型规律来确定音乐通道的分配顺序。
[0094]
步骤s430.根据音乐通道的分配顺序将基础节拍数据依次分配至空闲状态的音乐通道中。
[0095]
空闲状态的音乐通道指的是,在当前节拍点分配时,该音乐通道中没有之前所分配的还在停留状态下的节拍点。
[0096]
本示例实施方式中,如图5所示,根据音乐通道的分配顺序将基础节拍数据依次分配至空闲状态的音乐通道中,具体可以包括以下几个步骤:
[0097]
步骤s510.获取基础节拍数据中的各个节拍点的出现时间,以及节拍点的持续时间。
[0098]
本示例实施方式中,首先需要确定节拍点的出现时间。由于音乐游戏中,一般情况下节拍点都需要提前显示,给玩家一定的准备时间,因此,需要设置一个音符动画出现的提前时间,保证玩家点击按钮时间=提前时间+游戏内节拍点的出现时间。另外,还需要确定节拍点的持续时间,对应于游戏中每个音符动画持续时间,以保证音频节拍点不会过于密集,使上一个节拍点的音符动画没播放完,就被下个节拍点的音符动画挤掉。
[0099]
步骤s520.根据音乐通道中所分配的上一节拍点的出现时间和持续时间,判断在当前节拍点分配时音乐通道是否为空闲状态。
[0100]
若当前节拍点分配时的时间点大于或等于上一节拍点的出现时间点和上一节拍点的持续时间的和,则说明在当前节拍点分配时音乐通道为空闲状态。
[0101]
步骤s530.若音乐通道为空闲状态,则将当前节拍点分配至音乐通道中。
[0102]
若音乐通道为空闲状态,则将当前节拍点分配至音乐通道中,并获取当前节拍点的出现时间和持续时间,用于后续节拍点的分配时音乐通道状态的判断。
[0103]
步骤s540.若音乐通道为阻塞状态,则跳过当前节拍点,并继续进行下一节拍点的分配。
[0104]
若音乐通道为阻塞状态,则忽略当前节拍点,直接进行下一节拍点的分配。
[0105]
本示例实施方式中,还可以将节拍点在界面上进行可视化展示。如图6所示,节拍点可视化展示的方法具体可以包括以下几个步骤:
[0106]
步骤s610.获取采样函数中的数据转换窗函数。
[0107]
本示例实施方式中,采样函数包含数据转换窗函数,用于转换数据信号。转换的算法越复杂,声音越柔和,但速度更慢。一般来说,选择blackmanharris(一种窗函数)方式的转换效果比较好。
[0108]
步骤s620.通过数据转换窗函数将音频文件的基础节拍数据转换为对应的显示高度值。
[0109]
通过数据转换窗函数可以得到各个采样点的采样值,根据采样值可以确定对应的基础节拍数据转换的显示高度值。
[0110]
步骤s630.获取当前显示帧的基础节拍数据,并根据当前显示帧的基础节拍数据对应的显示高度值,将基础节拍数据显示在界面上。
[0111]
本示例实施方式中,可以将音乐通道中某一帧的节拍点根据对应的基础节拍数据可视化显示在界面上。
[0112]
其中,如图7所示,根据当前显示帧的基础节拍数据对应的显示高度值,将基础节拍数据显示在界面上,具体可以包括以下几个步骤:
[0113]
步骤s710.获取基础节拍数据在界面上显示时的标准高度值。
[0114]
由于界面的显示范围有限,而每首歌的音频数据变化很大,因此,需要提供一个矩形高度的比例值,对基础节拍数据在界面上的显示高度值进行限定,使得整个视图在合理的高度范围内变化。首先,获取基础节拍数据在界面上显示时的标准高度值,可以将界面所能显示的最大值作为标准值。
[0115]
步骤s720.根据基础节拍数据对应的显示高度值和标准高度值确定缩放比例。
[0116]
先确定所要显示的当前显示帧的基础节拍数据对应的显示高度值中的最大值,再根据显示高度值中的最大值和标准高度值的比值,确定当前显示帧中所有基础节拍数据对应的显示高度值的缩放比例。
[0117]
步骤s730.根据缩放比例对基础节拍数据对应的显示高度值进行调整,并根据调整后的显示高度值将基础节拍数据显示在界面上。
[0118]
根据缩放比例对基础节拍数据对应的显示高度值进行调整之后,再将显示高度与显示界面相匹配的基础节拍数据显示在界面上。如图8所示,某一帧的基础节拍数据有64个
采样点,根据每个采样点的采样值确定对应的显示高度,再进行显示高度的调整后,将其可视化显示在界面上。
[0119]
在步骤s130中,根据各个音乐通道中所分配的基础节拍数据,得到音频文件对应的音频节拍数据。
[0120]
将基础节拍数据依次分配到各个音乐通道中后,根据各个音乐通道中所分配的基础节拍数据,即可得到音频文件对应的多通道的音频节拍数据。将音频文件对应的多通道的音频节拍数据导入游戏中,即可生成对应的节奏类的音乐游戏。
[0121]
除此之外,还可以针对不同的音频文件设定节拍点的定制采样阈值和采样最低间隔,来满足不同的游戏难度需求。还可以将节拍点日志打印出来,实时显示导出的音频节拍数据所存入的时间数据,方便后续参考以及进行其他配置。
[0122]
如图9所示是本公开的一个具体实施方式中的完整流程图,用于音乐游戏中节拍点的提取,可以通过unity游戏引擎快速生成音乐游戏中的节拍点,是对本示例实施方式中的上述步骤的举例说明,该流程图的具体步骤如下:
[0123]
步骤s901.将音频文件导入游戏引擎,启动采样工具。
[0124]
步骤s903.配置采样函数和分配函数的关键参数。
[0125]
步骤s905.播放音频文件,开始采样。
[0126]
通过采样函数计算音频文件中符合基本采样要求的节拍点,得到基础节拍数据。
[0127]
步骤s907.检测符合分配函数规则的空闲音乐通道。
[0128]
若有空闲音乐通道,则进入步骤s909;若无空闲音乐通道,则进入步骤s911。
[0129]
步骤s909.将节拍点放入空闲音乐通道。
[0130]
步骤s911.忽略节拍点。
[0131]
步骤s913.更新所有音乐通道的状态。
[0132]
步骤s915.将音乐通道的节拍点可视化展示。
[0133]
步骤s917.判断音频文件是否播放完毕。
[0134]
若音频文件未播放完毕,则返回步骤s905,并重复上述步骤,继续进行音乐通道的分配;若音频文件播放完毕,则进入步骤s919,结束采样和分配过程。
[0135]
步骤s919.导出音频文件的多通道节拍数据。
[0136]
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0137]
进一步的,本公开还提供了一种节拍数据的提取装置。参考图10所示,该节拍数据的提取装置可以包括基础节拍获取模块1010、音乐通道分配模块1020以及音频节拍确定模块1030。其中:
[0138]
基础节拍获取模块1010可以用于获取音频文件,并对音频文件中的节拍点进行采样,得到音频文件的基础节拍数据;
[0139]
音乐通道分配模块1020可以用于获取音频文件对应的音乐通道,并将基础节拍数据分配至各个音乐通道中;
[0140]
音频节拍确定模块1030可以用于根据各个音乐通道中所分配的基础节拍数据,得
到音频文件对应的音频节拍数据。
[0141]
在本公开的一些示例性实施例中,基础节拍获取模块1010可以包括采样函数获取单元、采样密度确定单元以及节拍点采样单元。其中:
[0142]
采样函数获取单元可以用于获取采样函数,以及采样函数中的采样数组的数组长度;
[0143]
采样密度确定单元可以用于根据采样数组的数组长度确定音频文件中每一帧音频的采样密度;
[0144]
节拍点采样单元可以用于通过采样函数按照采样密度对音频文件中每一帧音频的节拍点进行采样,得到音频文件的基础节拍数据。
[0145]
在本公开的一些示例性实施例中,节拍点采样单元可以包括目标节拍点确定单元、目标节拍点采样单元、单帧数据获取单元以及基础节拍数据获取单元。其中:
[0146]
目标节拍点确定单元可以用于确定每一帧音频中的目标节拍点;
[0147]
目标节拍点采样单元可以用于通过采样函数按照采样密度对每一帧音频中的目标节拍点进行采样,得到目标节拍点的基础节拍数据;
[0148]
单帧数据获取单元可以用于根据目标节拍点的基础节拍数据得到每一帧音频中的所有节拍点的基础节拍数据;
[0149]
基础节拍数据获取单元可以用于根据每一帧音频中的所有节拍点的基础节拍数据得到音频文件的基础节拍数据。
[0150]
在本公开的一些示例性实施例中,基础节拍获取模块1010还可以包括窗函数获取单元、显示高度值确定单元以及节拍数据显示单元。其中:
[0151]
窗函数获取单元可以用于获取采样函数中的数据转换窗函数;
[0152]
显示高度值确定单元可以用于通过数据转换窗函数将音频文件的基础节拍数据转换为对应的显示高度值;
[0153]
节拍数据显示单元可以用于获取当前显示帧的基础节拍数据,并根据当前显示帧的基础节拍数据对应的显示高度值,将基础节拍数据显示在界面上。
[0154]
在本公开的一些示例性实施例中,节拍数据显示单元可以包括标准高度值获取单元、缩放比例确定单元以及显示高度值调整单元。其中:
[0155]
标准高度值获取单元可以用于获取基础节拍数据在界面上显示时的标准高度值;
[0156]
缩放比例确定单元可以用于根据基础节拍数据对应的显示高度值和标准高度值确定缩放比例;
[0157]
显示高度值调整单元可以用于根据缩放比例对基础节拍数据对应的显示高度值进行调整,并根据调整后的显示高度值将基础节拍数据显示在界面上。
[0158]
在本公开的一些示例性实施例中,音乐通道分配模块1020可以包括目标分配规则确定单元、分配顺序确定单元以及节拍数据分配单元。其中:
[0159]
目标分配规则确定单元可以用于获取音频文件的类型,并根据音频文件的类型从多个预设分配规则中确定一目标分配规则;
[0160]
分配顺序确定单元可以用于根据目标分配规则确定各个音乐通道的分配顺序;
[0161]
节拍数据分配单元可以用于根据音乐通道的分配顺序将基础节拍数据依次分配至空闲状态的音乐通道中。
[0162]
在本公开的一些示例性实施例中,节拍数据分配单元可以包括节拍点参数获取单元、通道状态判断单元、节拍点分配单元以及节拍点跳过单元。其中:
[0163]
节拍点参数获取单元可以用于获取基础节拍数据中的各个节拍点的出现时间,以及节拍点的持续时间;
[0164]
通道状态判断单元可以用于根据音乐通道中所分配的上一节拍点的出现时间和持续时间,判断在当前节拍点分配时音乐通道是否为空闲状态;
[0165]
节拍点分配单元可以用于若音乐通道为空闲状态,则将当前节拍点分配至音乐通道中;
[0166]
节拍点跳过单元可以用于若音乐通道为阻塞状态,则跳过当前节拍点,并继续进行下一节拍点的分配。
[0167]
上述节拍数据的提取装置中各模块/单元的具体细节在相应的方法实施例部分已有详细的说明,此处不再赘述。
[0168]
图11示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图。
[0169]
需要说明的是,图11示出的电子设备的计算机系统1100仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0170]
如图11所示,计算机系统1100包括中央处理单元(cpu)1101,其可以根据存储在只读存储器(rom)1102中的程序或者从存储部分1108加载到随机访问存储器(ram)1103中的程序而执行各种适当的动作和处理。在ram 1103中,还存储有系统操作所需的各种程序和数据。cpu 1101、rom 1102以及ram 1103通过总线1104彼此相连。输入/输出(i/o)接口1105也连接至总线1104。
[0171]
以下部件连接至i/o接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至i/o接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
[0172]
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。在该计算机程序被中央处理单元(cpu)1101执行时,执行本申请的系统中限定的各种功能。
[0173]
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程
序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0174]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0175]
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。
[0176]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化。反之,上文描述的一个模块的特征和功能可以进一步划分为由多个模块来具体化。
[0177]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
[0178]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1