歌曲的难度确定方法和装置的制造方法

文档序号:10472290阅读:424来源:国知局
歌曲的难度确定方法和装置的制造方法
【专利摘要】本发明公开了一种歌曲的难度确定方法和装置。其中,该方法包括:将第一歌曲的m个清唱数字信号划分为n个第一数字信号和m?n个第二数字信号,其中,n个第一数字信号与第一歌曲的标准数字信号的相似度高于m?n个第二数字信号与第一歌曲的标准数字信号的相似度;获取n个第一数字信号的第一音高指数和除第一歌曲以外的多个歌曲的清唱数字信号的第二音高指数,其中,第一音高指数用于指示n个第一数字信号与标准数字信号在音高上的差值,第二音高指数为多个歌曲的第一音高指数的平均值;将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数。本发明解决了确定歌曲的难度不准确的技术问题。
【专利说明】
歌曲的难度确定方法和装置
技术领域
[0001] 本发明设及数据处理领域,具体而言,设及一种歌曲的难度确定方法和装置。
【背景技术】
[0002] 歌曲的风格和类别有很多种,由于旋律的不同或者演唱者的声音的特点,不同歌 曲的演唱难度也有差别。在比较歌唱水平时(比如K歌时不同演唱者之间的比较),需要将每 首歌的演唱难度考虑在内。
[0003] 通常每首歌的演唱难度通过歌曲的难度系数体现,难度系数越大,表示歌曲的演 唱难度越大。现有技术中歌曲的难度系数都是采用人工标注的方式,但是,由于人工标注依 赖人的主观判断,而主观判断标准不同导致不同人给出的难度系数不同,最终导致确定出 的歌曲的难度不准确的问题。
[0004] 针对上述的问题,目前尚未提出有效的解决方案。

【发明内容】

[0005] 本发明实施例提供了一种歌曲的难度确定方法和装置,W至少解决确定歌曲的难 度不准确的技术问题。
[0006] 根据本发明实施例的一个方面,提供了一种歌曲的难度确定方法,包括:将第一歌 曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二数字信号,其中,η个所述第一 数字信号与所述第一歌曲的标准数字信号的相似度高于m-n个所述第二数字信号与所述第 一歌曲的标准数字信号的相似度;获取η个所述第一数字信号的第一音高指数和除所述第 一歌曲W外的多个歌曲的清唱数字信号的第二音高指数,其中,所述第一音高指数用于指 示η个所述第一数字信号与所述标准数字信号在音高上的差值,所述第二音高指数为所述 多个歌曲的第一音高指数的平均值;将所述第二音高指数与所述第一音高指数的比值作为 所述第一歌曲的难度系数。
[0007] 根据本发明实施例的另一方面,还提供了一种歌曲的难度确定装置,包括:划分单 元,用于将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二数字信号,其 中,η个所述第一数字信号与所述第一歌曲的标准数字信号的相似度高于m-n个所述第二数 字信号与所述第一歌曲的标准数字信号的相似度;获取单元,用于获取η个所述第一数字信 号的第一音高指数和除所述第一歌曲W外的多个歌曲的清唱数字信号的第二音高指数,其 中,所述第一音高指数用于指示η个所述第一数字信号与所述标准数字信号在音高上的差 值,所述第二音高指数为所述多个歌曲的第一音高指数的平均值;处理单元,用于将所述第 二音高指数与所述第一音高指数的比值作为所述第一歌曲的难度系数。
[0008] 在本发明实施例中,将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m- n个第二数字信号,其中,η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个 第二数字信号与第一歌曲的标准数字信号的相似度;获取η个第一数字信号的第一音高指 数和除第一歌曲W外的多个歌曲的清唱数字信号的第二音高指数,其中,第一音高指数用 于指示η个第一数字信号与标准数字信号在音高上的差值,第二音高指数为多个歌曲的第 一音高指数的平均值;将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数。 通过从歌曲的多个清唱数字信号中提取出与标准数字信号的相似度较高的一部分清唱数 字信号,根据运部分清唱数字信号与歌曲的标准数字信号之间的相似度计算歌曲的第一音 高指数,获取多首歌曲的清唱数字信号的第一音高指数的平均值(第二音高指数),将第二 音高指数除W第一音高指数,得到歌曲的难度系数,达到了准确确定歌曲的难度的技术效 果,进而解决了确定歌曲的难度不准确的技术问题。
【附图说明】
[0009] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0010] 图1是根据本发明实施例的用于应用歌曲的难度确定方法的硬件结构的示意图;
[0011] 图2是根据本发明实施例的一种歌曲的难度确定方法的流程图;
[0012] 图3是根据本发明实施例的使用动态时间规整算法计算两个清唱数字信号的音符 距离的示意图;
[OOK]图4是根据本发明实施例的一种歌曲的难度确定装置的示意图;W及
[0014] 图5是根据本发明实施例的一种用于实施歌曲的难度确定方法的移动终端的示意 图。
【具体实施方式】
[0015] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人 员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0016] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解运样使用 的数据在适当情况下可W互换,W便运里描述的本发明的实施例能够W除了在运里图示或 描述的那些W外的顺序实施。此外,术语"包括"和"具有及他们的任何变形,意图在于覆 盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于 清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于运些过程、方法、产品 或设备固有的其它步骤或单元。
[0017]实施例1
[0018] 根据本发明实施例,提供了一种可W通过本申请装置实施例执行的方法实施例, 需要说明的是,在附图的流程图示出的步骤可W在诸如一组计算机可执行指令的计算机系 统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可不同于此处 的顺序执行所示出或描述的步骤。
[0019] 根据本发明实施例,提供了 一种歌曲的难度确定方法。
[0020] 可选地,在本实施例中,上述歌曲的难度确定方法可W应用于如图1所示的移动终 端102和服务器104所构成的硬件环境中。如图1所示,移动终端102通过网络与服务器104进 行连接,上述网络包括但不限于:移动通信网络、广域网、城域网或局域网,移动终端102可 W是手机终端,也可W是PC终端、笔记本终端或平板电脑终端。
[0021] 图2是根据本发明实施例的一种歌曲的难度确定方法的流程图,W下结合图2对本 发明实施例所提供的歌曲的难度确定方法做具体介绍,如图2所示,该歌曲的难度确定方法 主要包括如下步骤S102至步骤S106:
[0022] 步骤S102,将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二 数字信号,其中,η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个第二数 字信号与第一歌曲的标准数字信号的相似度。
[0023] 步骤S104,获取η个第一数字信号的第一音高指数和除第一歌曲W外的多个歌曲 的清唱数字信号的第二音高指数,其中,第一音高指数用于指示η个第一数字信号与标准数 字信号在音高上的差值,第二音高指数为多个歌曲的第一音高指数的平均值。
[0024] 步骤S106,将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数。
[0025] 通过从歌曲的多个清唱数字信号中提取出与标准数字信号的相似度较高的一部 分清唱数字信号,根据运部分清唱数字信号与歌曲的标准数字信号之间的相似度计算歌曲 的第一音高指数,获取多首歌曲的清唱数字信号的第一音高指数的平均值(第二音高指 数),将第二音高指数除W第一音高指数,得到歌曲的难度系数,解决了确定歌曲的难度不 准确的技术问题,达到了准确确定歌曲的难度的技术效果。
[0026] 当用户清唱了一首歌曲后,得到了一个清唱模拟信号(清唱数据),将清唱模拟信 号转换为清唱数字信号(将清唱模拟信号转换为清唱数字信号的过程在下文有详细描述)。 歌曲的原唱的数字信号称为标准数字信号。清唱数字信号与标准数字信号偏离程度越小, 则清唱数字信号与标准数字信号之间的相似度越高,则认为唱得越好。清唱数字信号与标 准数字信号偏离程度越大,则清唱数字信号与标准数字信号之间的相似度越低,则认为唱 得越差。
[0027] 不同用户的唱歌水平是参差不齐的,多个用户都唱了某一首相同的歌曲时,不同 用户的清唱数字信号与标准数字信号之间的偏离程度不相同。但是,当同一个用户清唱不 同的歌曲时,歌曲难度系数越大,清唱数字信号与标准数字信号偏离程度越大;歌曲难度系 数越小,清唱数字信号与标准数字信号偏离程度越小。当歌曲难度较小时,用户的清唱数字 信号与标准数字信号偏离程度普遍较小;当歌曲难度较大时,用户的清唱数字信号与标准 数字信号偏离程度普遍较大。因此,可W根据大量用户的清唱数字信号与标准数字信号偏 离程度,来判断歌曲的难度系数。
[0028] 可W通过统计大量用户清唱某一首歌曲的清唱数字信号与标准数字信号之间的 偏离程度来计算运一首歌的难度系数。将需要标注难度系数的歌曲称为第一歌曲。假设有m 个用户,每个用户都清唱了第一歌曲,因此,得到了m个清唱数字信号。但是运m个清唱数字 信号中,有一部分是用户没有认真唱时得到的清唱数字信号,或者演唱得到清唱数字信号 与第一歌曲相差太多,运一部分清唱数字信号不能代表第一歌曲的真实难度,需要将运一 部分清唱数字信号过滤掉,W避免运部分清唱数字信号对计算歌曲的难度系数造成干扰。
[0029] 从运m个清唱数字信号中筛选出η个与第一歌曲的标准数字信号的相似度较高的 清唱数字信号,运η个清唱数字信号即为第一数字信号。运η个第一数字信号与第一歌曲的 标准数字信号的相似度较高,可w认为是用户认真唱歌得到的清唱数字信号,能够代表第 一歌曲的真实难度。将运η个清唱数字信号称为第一数字信号。将剩余的m-n个清唱数字信 号称为第二数字信号。η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个第 二数字信号与第一歌曲的标准数字信号的相似度。
[0030] 用户的清唱数字信号与标准数字信号之间的偏离表现在用户的清唱数字信号与 标准数字信号之间存在音高上的差值。
[0031] 使用第一音高指数来表示上述η个清唱数字信号与标准数字信号在音高上的差 值。
[0032] 需要注意的是,第一音高指数是平均意义上的,是将η个清唱数字信号作为一个整 体,运个整体与标准数字信号之间的偏离程度的大小。
[0033] -首歌的难度是高还是低,是建立在比较的基础上的,可W先确定出可供比较的 对象。随机选取大量的歌曲,选取的歌曲包括不同难度的歌曲,运些选取的歌曲中每首歌曲 与其余的多个歌曲进行比较,从而确定每首歌的难度系数。计算每首歌曲的第一音高指数, 将运些歌曲的第一音高指数的平均值作为第二音高指数。
[0034] 当需要计算某一首歌曲的难度系数时,只需要将运首歌曲的第一音高指数与第二 音高指数进行比较,即可知道运首歌曲的难度系数是高还是低。
[0035] 第一音高指数的设置可W有两种方式:
[0036] 方式一:第一音高指数的大小与歌曲的难度系数呈正相关的关系,即第一音高指 数越大,说明歌曲的难度系数越大;第一音高指数越小,说明歌曲的难度系数越小。
[0037] 方式二:第一音高指数的大小与歌曲的难度系数呈负相关的关系,即第一音高指 数越大,说明歌曲的难度系数越小;第一音高指数越小,说明歌曲的难度系数越大。
[0038] 运两种方式都是可W的,本申请实施例如无特殊说明,均采用方式二的设置方式。 例如,用下式计算歌曲的难度系数。
[0039] 歌曲的难度系数=第二音高指数/歌曲的第一音高指数。
[0040] 由于清唱数据在不断地积累,清唱数据新增预设数量之后,利用上述方法重新计 算歌曲的难度系数,W对歌曲的难度系数及时进行更新。
[0041] 如果用户唱了某首歌,计算出运首歌的难度系数后,在向用户推荐歌曲时,可W推 荐难度系数相近的歌曲,W使得向用户推荐的歌曲与用户的唱歌实力相匹配。
[0042] 例如,需要计算韩红的《青藏高原》运首歌的难度系数。一共有一万个用户清唱过 运首歌,有一万个清唱数字信号(即m=10000)。计算运一万个清唱数字信号与标准数字信 号之间的相似度,按照相似度由大到小的顺序,对运一万个清唱数字信号进行排列,选取前 10%的清唱数字信号(前10%即为上述预设比例),即选取前一千个清唱数字信号(即n = 1000)。根据前一千个清唱数字信号与标准数字信号之间的相似度计算运首歌的第一音高 指数,计算出运首歌的第一音高指数为A。
[0043] 随机选取1000首歌曲,使用同样的方法,计算运1000首歌曲的每一首歌曲的第一 音高指数,将运1000首歌曲的每一首歌曲的第一音高指数求平均值,得到第二音高指数,假 设第二音高指数为0.8A。
[0044] 《青藏高原》的难度系数=第二音高指数/《青藏高原》的第一音高指数= A/0.8A = 1.25。
[0045] 因此,《青藏高原》的难度系数为1.25。假如一位用户唱了《青藏高原》运首歌,则可 W向运位用户推荐难度系数为1.25左右的其他歌曲。
[0046] 当计算出歌曲的难度系数之后,可W据此优化歌曲的打分方式。例如,将用户的清 唱数字信号与标准数字信号之间的相似度归一化,并乘W100,再与歌曲的难度系数相乘, 将结果展示给用户,作为用户的得分。运样能够使得用户在唱不同的歌曲时进行横向的水 平对比。
[0047] 例如,如表1所示,用户甲清唱了《泡沫Μ国际歌Μ我屯、永恒Μ在他乡》运四首歌, 使用上述方法计算出运四首歌的难度系数分别为1.3、0.8、1.4、和1。用户甲清唱运四首歌 的清唱数字信号与标准数字信号之间的相似度分别为63%、90%、58%和82%。
[004引 表1
[0049]
[0050] ~经过计算,得到用户清唱运四首歌的得分分别为82、81、81和82。尽管用户甲清唱 的运四首歌的难度各不相同,但是用户的得分却相差很少,运说明了对于同一个用户来说, 唱歌水平是恒定的,无论唱什么难度的歌曲,得分都维持在一个恒定值的附近。运就为不同 用户唱不同歌曲时,水平的比较提供了条件。
[0051] 例如,如表2所示,用户乙、用户丙、用户下各唱了一首歌曲,用户乙唱了《泡沫》,清 唱数字信号与标准数字信号之间的相似度为74%,得分为96;用户丙唱了《国际歌》,清唱数 字信号与标准数字信号之间的相似度为85%,得分为77;用户下唱了《在他乡》,清唱数字信 号与标准数字信号之间的相似度为69%,得分为69。
[0化2] 表2 [0化3]
'[0054]~虽然户乙、用户丙和用户下唱了不同的歌曲,?些歌曲的难度系数也都不同,但 是可W看出,将歌曲的难度系数运个因素考虑在内之后,能够对不同用户的唱歌水平进行 比较。
[0055] 可选地,在将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数之 后,方法还包括:根据难度系数推送歌曲;或者根据难度系数对第一歌曲的多个清唱数据进 行打分。
[0056] 当知道用户的已唱歌曲的难度系数之后,向用户推送歌曲的过程中,可W向用户 推送难度系数与用户的已唱歌曲的难度系数相同或者相近的歌曲。
[0057] 如果某个用户的已唱歌曲都是一些难度系数较低的歌曲,则向运位用户推送难度 系数较低的歌曲;如果某个用户的已唱歌曲都是一些难度系数较高的歌曲,则向运位用户 推送难度系数较高的歌曲;如果某个用户的已唱歌曲都是一些难度系数中等的歌曲,则向 运位用户推送难度系数中等的歌曲。运样可W使得推送的歌曲的难度系数与用户的唱歌水 平相匹配。
[0058] 当计算出歌曲的难度系数之后,可W根据难度系数将歌曲的难度分成若干等级, 例如,将难度系数在(0,0.8)之间的歌曲标注上一星级难度,将难度系数在[0.8,1)之间的 歌曲标注上二星级难度,将难度系数在[1,1.2)之间的歌曲标注上Ξ星级难度,将难度系数 在[1.2,1.4)之间的歌曲标注上四星级难度,将难度系数大于或者等于1.4的歌曲标注上五 星级难度。
[0059] 当知道用户的已唱歌曲的星级难度之后,向用户推送歌曲的过程中,可W向用户 推送星级难度与用户的已唱歌曲的星级难度相同的歌曲。
[0060] 在向用户推送歌曲时,可W同时显示歌曲的星级难度。例如,某个用户的已唱歌曲 大部分是五星级难度的歌曲,则向运位用户推送其他五星级难度的歌曲,并在推送歌曲的 同时显示:"运首歌曲为五星级难度,你真棒,加油r
[0061] 当计算出歌曲的难度系数之后,可W据此优化歌曲的打分方式。例如,将用户的清 唱数字信号与标准数字信号之间的相似度归一化,并乘W100,再与歌曲的难度系数相乘, 将结果展示给用户,作为用户的得分。运样能够使得用户在唱不同的歌曲时进行横向的水 平对比。根据难度系数的打分可W在用户歌唱的过程中实时打分,实时显示歌唱得分,也可 W在歌唱结束后显示最终的歌唱得分。
[0062] 需要说明的是,确定出的难度系数可W应用在向用户推送歌曲、对用户的歌唱进 行打分、为歌曲标注难度星级,还可W应用到根据难度系数生成歌单等,此处不对难度系数 的应用做过多的限制。
[0063] 从一首歌曲的m个清唱数字信号中划分η个第一数字信号和m-n个第二数字信号的 过程可W是运样的:获取m个清唱数字信号中每个清唱数字信号与其他m-1个清唱数字信号 的音符距离之和,其中,音符距离用于表示两个清唱数字信号的相似度;按照m个清唱数字 信号的音符距离之和由小到大的顺序排列,得到排列后的m个清唱数字信号;从排列后的m 个清唱数字信号中划分预设比例的清唱数字信号,得到η个第一数字信号。音符包含时长和 首局两个?目息。
[0064] 两个清唱数字信号的相似度即为两个清唱数字信号的音符距离。假设m个清唱数 字信号分别为清唱数字信号XI、清唱数字信号X2、……清唱数字信号Xm。清唱数字信号Xi和 清唱数字信号、之间的音符距离可W用L(Xi,Xj)来表示。使用Uk)表示第k个清唱数字信号 与其余m-1个清唱数字信号之间存在的音符距离之和。Uk)按照下述公式计算:
[00化]L(k) = L(Xk,Xi)+L(Xk,拉)+L(Xk,X3)+......+L(Xk,Xk-i)+L(Xk,Xk+i)+L(Xk,Xk+2)......+ L(Xk,Xm-l)
[0066] 例如,一共有10000个(即上述m个)清唱数字信号,分别为清唱数字信号Xi、清唱数 字信号X2、……、清唱数字信号Xioooo。运10000个清唱数字信号中每个清唱数字信号与其余 9999个清唱数字信号均存在音符距离。
[0067] 在公式 L(k) = L(Xk,Xi)+L(Xk,X2)+L(Xk,X3) +......+L(Xk,Xk-i)+L(Xk,Xk+i)+L(Xk, Xk+2)……+L(Xk,Xioooo)中,令k依次取1,2,3,4,……,10000,分别得到L( 1)、L(2)、L(3)、…… L( 10000),即得出运10000个清唱数字信号中每个清唱数字信号与其余9999个清唱数字信 号之间的音符距离之和。
[0068] 按照音符距离之和L(l)、音符距离之和L(2)、音符距离之和L(3)、……、音符距离 之和U 10000)由小到大的顺序对清唱数字信号XI、清唱数字信号X2、……、清唱数字信号 Xioooo排列,得到排列后的10000个清唱数字信号。从排列后的10000个清唱数字信号中划分 前5% (即上述预设比例)的清唱数字信号,得到500个第一数字信号,其余9500个清唱数字 信号为第二数字信号。
[0069] 对于不同的歌曲,唱的人数是不同的,因此得到的清唱数字信号的数量是不同的, 良Pm值是不同的。清唱数据越多,聚类后靠近中屯、点的数据就会更多,如果对于不同的歌曲 都取相同的η值,则唱的人多的歌曲与唱的人少的歌曲计算难度系数时会有偏差。
[0070] 在本实施例中,从m个清唱数字信号中按照预设百分比,选取得到了η个第一数字 信号。假定预设百分比为10%。当m=100万时,η=10万;当m=10万时,n=l万;当m=l万时, n = 1000。根据同一个预设百分比对不同的歌曲取不同的η值,唱的人多的歌曲与唱的人少 的歌曲计算难度系数时没有偏差,增加了计算歌曲难度系数时的准确性。
[0071] 向用户推送歌曲时,一般推送的歌曲的难度系数与用户的已唱歌曲的难度系数相 当,由于本实施例中唱的人多的歌曲与唱的人少的歌曲计算难度系数时没有偏差,计算歌 曲难度系数更加准确,因此,提升了向用户推送歌曲的准确性。
[0072] 两个清唱数字信号的音符距离的具体计算过程可W是运样的:为方便叙述,将需 要计算音符距离的两个清唱数字信号称为第一个清唱数字信号和第二个清唱数字信号。第 一个清唱数字信号和第二个清唱数字信号均包含多个音符,由于运是同一首歌曲的清唱数 字信号,因此第一个清唱数字信号和第二个清唱数字信号包含的音符的数量是相同的。获 取第一个清唱数字信号和第二个清唱数字信号中对应的两个音符之间音符差。将第一个清 唱数字信号和第二个清唱数字信号中对应的两个音符之间音符差之和作为第一个清唱数 字信号和第二个清唱数字信号之间的音符距离。
[0073] 需要注意的是,在计算第一个清唱数字信号和第二个清唱数字信号中对应的两个 音符之间音符差的过程中,需要使用动态时间规整算法。
[0074] 例如,歌曲Q有两个版本,分别为Q1版本和Q2版本,运两个版本的前奏的长度不相 同,其余部分均相同。Q1版本的前奏比Q2版本的前奏短,用户甲清唱了Q1版本,得到了第一 个清唱数字信号。用户乙清唱了 Q2版本,得到了第二个清唱数字信号。
[0075] 如图3所示,第一个清唱数字信号包含前奏1、音符Α( 1,1)、音符Α( 1,2)、音符Α( 1, 3)、音符4(1,4)、……、音符Α(1,η-1)、音符Α(1,η),第二个清唱数字信号包含前奏2、音符A (2,1)、音符4(2,2)、音符4(2,3)、音符4(2,4)、……、音符A(2,n-l)、音符A(2,n)。第一个清 唱数字信号和第二个清唱数字信号中前奏的长度是不相同的,音符的数量是相同的,均为η 个。
[0076] 令C(i)为音符A(l,i)与音符A(2,i)之间的音符差。
[0077] 通过使用动态时间规整算法,将第一个清唱数字信号中的音符A(l,i)与第二个清 唱数字信号中的音符A(2,i)对应起来,i依次取1至n,计算音符A(l,i)与音符A(2,i)之间的 音符差C(i)。将求得的C(l)至C(n)相加求和,即得到第一个清唱数字信号和第二个清唱数 字信号之间的音符距离。
[0078] 通过使用动态时间规整算法,使计算对应的两个音符之间音符差的结果的误差更 小,计算歌曲难度系数更加准确。
[0079] 获取第一个清唱数字信号和第二个清唱数字信号中对应的两个音符之间音符差 的具体过程可W是运样的:采用W下方式计算音符差D(Si,Sj):
[0080]
[0081] 其中,Si表示第i个音符,?表示第j个音符,Δ P表示第i个音符和第j个音符的音高 差,Ad表示第i个音符和第j个音符的时间差,0.4表示时间差的权重,音高差采用W下方式 计算:
[0082] Δ p=min(abs(pi-pj) ,abs(pi_p广24)+1.0 ,abs(pi_pj+24)+l .0)
[0083] 其中,Pi表示第i个音符的音高,Pj表示第j个音符的音高,1.0表示半倍频惩罚。音 高差主要指用户的清唱数字信号与标准数字信号之间的基调差。abs(pi-pj)表示(Pi-W)的 绝对值,abs(pi-pj-24)表示(pi-pj-24)绝对值,abs(pi-pj+24)表示(pi-pj+24)的绝对值。出 现半频或者倍频时,在计算音高差时增加数值1。
[0084] 由于男女的发音频率相差较大,在男用户清唱女歌手的歌曲,或者女用户清唱男 歌手的歌曲时,存在整体的基调偏差,而运并非是因为唱得不好,所W需要对运种情况进行 补偿。此外,即使是男用户清唱男歌手的歌曲,或者女用户清唱女歌手的歌曲,由于每个人 的发音频率与其他人不同,也存在整体的基调偏差,也需要进行补偿。所W,在计算η个第一 数字信号的第一音高指数之前,可W先利用基调偏差补偿η个第一数字信号中每个音符的 基频,其中,基调偏差为η个第一数字信号中所有音符的音高平均值与标准数字信号中所有 音符的音高平均值的差值。
[0085] 在利用基调偏差补偿η个第一数字信号中每个音符的基频之前,采用W下方式将 第一数字信号中每个音符的基频转换成音高值r,其中,音高值用于计算基调偏差:
[0086]
[0087] 其中,t为第一数字信号中音符的频率。
[0088] 之后,获取补偿后的η个第一数字信号的第一音高指数。获取补偿后的η个第一数 字信号的第一音高指数的过程具体是运样的:先获取η个第一数字信号中的第k个第一数字 信号中第i个音符的音高指数Ti,再采用W下方式获取第一音高指数:
[0089]
[0090] 其中,N为第k个第一数字信号中音符的总数。
[0091] 可W采用W下方式获取η个第一数字信号中的第k个第一数字信号中第i个音符的 首局指数Ti:
[0092]
[0093] 其中,Z为音高最大惩罚值,XI为第i个音符的稳定段的开始时间,yi为第i个音符的 稳定段的结束时间,稳定段为第k个第一数字信号中与标准数字信号的基频为ο的信号对应 的信号段,W为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音高,为位 于第i个音符的稳定段的开始时间和结束时间之间的时间j的标准数字信号的音高。其中, 在第一数字信号中第i个音符的音高与标准数字信号中第i个音符的音高差距越大,惩罚值 越大。在本实施例中,音高最大惩罚值为6。
[0094]在一首歌曲中,由于歌曲不是从开始到结束毫不停歇唱完,而是存在一部分间歇 的,所W标准数字信号的某些部分是不存在数字信号的,运些不存在数字信号的部分称为 基频为0的信号对应的信号段。
[00%]通过利用基调偏差补偿音符的基频,使得计算歌曲难度系数更加准确。
[0096] 有一个用户清唱了一首歌曲,因此得到了一个清唱数据(清唱模拟信号),将清唱 模拟信号转换为清唱数字信号的过程具体是运样的:
[0097] 1.将音频规整为16kl化it pcm格式。
[0098] 2.提取清唱数据的基频信息(帖移10ms,帖长30ms),由于人在发声时声带震动产 生的频率经过声道过滤后会产生大量泛音,为了便于后续操作,我们需要从音频中提取直 接表现声带震动频率的基音,基音也决定了整个音符的音高。
[0099] 3.中值滤波:基频段长度小于35帖,直接进行窗长为基频段长度的中值滤波;基频 长度大于等于35帖时,每帖做10点中值滤波。中值滤波的作用是使曲线平滑。
[0100] 4.每5个基频点取第一个基频点的基频值,基频长度压缩5倍。
[0101] 5.奇异基频点置零。根据与前后基频点基频值的差异检测奇异基频点,并置零。
[0102] 6.零基频点填充:基频段后面小于15帖的零基频段的基频值都置为基频段最后一 帖基频值。
[0103] 7.基频值取log后计算均值,并进行均值规整。均值规整的作用是使曲线平滑。
[0104] 8.最后对基频段再进行10点中值滤波。
[0105] 9.Ξ点平滑:比较中间点与前后两点之间的基频值差,当差异大于0.01时,将中间 点基频值置为与其差异最小的前一点或后一点的基频值。
[0106] 10.基频量化:在前后基频值差异大于0.05时间点将基频序列分段,每一段基频值 都表示为其基频中值,由于起调不同,不同人唱同一首歌时基频存在偏置,使用音符切分后 的基频绝对值会产生巨大差异。本系统采取对音符序列的基频值进行差分的方法解决起调 问题。由于音符切分时存在误切错误,除了对相邻音符之间的音高差进行量化,还考虑将相 邻两个音符合并后再与后面音符音高差进行量化,量化的音高精度为0.5半音,最大值为 23,音符时长量化精度为10帖(0.1s),最大值为19。即,先按照预设音高差对每个清唱数字 信号进行切分,再按照预设时长对每个清唱数字信号进行切分,得到清唱数字信号的音符, 其中,预设音高差的范围为0至23个半音,预设时长的范围为0.1至1.9秒。
[0107] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列 的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为 依据本发明,某些步骤可W采用其他顺序或者同时进行。其次,本领域技术人员也应该知 悉,说明书中所描述的实施例均属于优选实施例,所设及的动作和模块并不一定是本发明 所必须的。
[0108] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到根据上述实施 例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可w通过硬件,但很多 情况下前者是更佳的实施方式。基于运样的理解,本发明的技术方案本质上或者说对现有 技术做出贡献的部分可软件产品的形式体现出来,该计算机软件产品存储在一个存储 介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用W使得一台终端设备(可W是手机,计算 机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0109] 实施例2
[0110] 根据本发明实施例,还提供了一种用于实施上述歌曲的难度确定方法的歌曲的难 度确定装置,该歌曲的难度确定装置主要用于执行本发明实施例上述内容所提供的歌曲的 难度确定方法,W下对本发明实施例所提供的歌曲的难度确定装置做具体介绍:
[0111] 图4是根据本发明实施例的歌曲的难度确定装置的示意图,如图4所示,该歌曲的 难度确定装置主要包括划分单元20、获取单元30和处理单元40。
[0112] 划分单元20,用于将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n 个第二数字信号,其中,η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个 第二数字信号与第一歌曲的标准数字信号的相似度。
[0113] 获取单元30,用于获取η个第一数字信号的第一音高指数和除第一歌曲W外的多 个歌曲的清唱数字信号的第二音高指数,其中,第一音高指数用于指示η个第一数字信号与 标准数字信号在音高上的差值,第二音高指数为多个歌曲的第一音高指数的平均值。
[0114] 处理单元40,用于将第二音高指数与第一音高指数的比值作为第一歌曲的难度系 数。
[0115] 通过从歌曲的多个清唱数字信号中提取出与标准数字信号的相似度较高的一部 分清唱数字信号,根据运部分清唱数字信号与歌曲的标准数字信号之间的相似度计算歌曲 的第一音高指数,获取多首歌曲的清唱数字信号的第一音高指数的平均值(第二音高指 数),将第二音高指数除W第一音高指数,得到歌曲的难度系数,解决了确定歌曲的难度不 准确的技术问题,达到了准确确定歌曲的难度的技术效果。
[0116] 当用户清唱了一首歌曲后,得到了一个清唱模拟信号(清唱数据),将清唱模拟信 号转换为清唱数字信号(将清唱模拟信号转换为清唱数字信号的过程在下文有详细描述)。 歌曲的原唱的数字信号称为标准数字信号。清唱数字信号与标准数字信号偏离程度越小, 则清唱数字信号与标准数字信号之间的相似度越高,则认为唱得越好。清唱数字信号与标 准数字信号偏离程度越大,则清唱数字信号与标准数字信号之间的相似度越低,则认为唱 得越差。
[0117] 不同用户的唱歌水平是参差不齐的,多个用户都唱了某一首相同的歌曲时,不同 用户的清唱数字信号与标准数字信号之间的偏离程度不相同。但是,当同一个用户清唱不 同的歌曲时,歌曲难度系数越大,清唱数字信号与标准数字信号偏离程度越大;歌曲难度系 数越小,清唱数字信号与标准数字信号偏离程度越小。当歌曲难度较小时,用户的清唱数字 信号与标准数字信号偏离程度普遍较小;当歌曲难度较大时,用户的清唱数字信号与标准 数字信号偏离程度普遍较大。因此,可W根据大量用户的清唱数字信号与标准数字信号偏 离程度,来判断歌曲的难度系数。
[0118] 可W通过统计大量用户清唱某一首歌曲的清唱数字信号与标准数字信号之间的 偏离程度来计算运一首歌的难度系数。将需要标注难度系数的歌曲称为第一歌曲。假设有m 个用户,每个用户都清唱了第一歌曲,因此,得到了m个清唱数字信号。但是运m个清唱数字 信号中,有一部分是用户没有认真唱时得到的清唱数字信号,或者演唱得到清唱数字信号 与第一歌曲相差太多,运一部分清唱数字信号不能代表第一歌曲的真实难度,需要将运一 部分清唱数字信号过滤掉,W避免运部分清唱数字信号对计算歌曲的难度系数造成干扰。
[0119] 从运m个清唱数字信号中筛选出η个与第一歌曲的标准数字信号的相似度较高的 清唱数字信号,运η个清唱数字信号即为第一数字信号。运η个第一数字信号与第一歌曲的 标准数字信号的相似度较高,可W认为是用户认真唱歌得到的清唱数字信号,能够代表第 一歌曲的真实难度。将运η个清唱数字信号称为第一数字信号。将剩余的m-n个清唱数字信 号称为第二数字信号。η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个第 二数字信号与第一歌曲的标准数字信号的相似度。
[0120] 用户的清唱数字信号与标准数字信号之间的偏离表现在用户的清唱数字信号与 标准数字信号之间存在音高上的差值。
[0121] 使用第一音高指数来表示上述η个清唱数字信号与标准数字信号在音高上的差 值。
[0122] 需要注意的是,第一音高指数是平均意义上的,是将η个清唱数字信号作为一个整 体,运个整体与标准数字信号之间的偏离程度的大小。
[0123] -首歌的难度是高还是低,是建立在比较的基础上的,可W先确定出可供比较的 对象。随机选取大量的歌曲,选取的歌曲包括不同难度的歌曲,运些选取的歌曲中每首歌曲 与其余的多个歌曲进行比较,从而确定每首歌的难度系数。计算每首歌曲的第一音高指数, 将运些歌曲的第一音高指数的平均值作为第二音高指数。
[0124] 当需要计算某一首歌曲的难度系数时,只需要将运首歌曲的第一音高指数与第二 音高指数进行比较,即可知道运首歌曲的难度系数是高还是低。
[0125] 第一音高指数的设置可W有两种方式:
[0126] 方式一:第一音高指数的大小与歌曲的难度系数呈正相关的关系,即第一音高指 数越大,说明歌曲的难度系数越大;第一音高指数越小,说明歌曲的难度系数越小。
[0127] 方式二:第一音高指数的大小与歌曲的难度系数呈负相关的关系,即第一音高指 数越大,说明歌曲的难度系数越小;第一音高指数越小,说明歌曲的难度系数越大。
[0128] 运两种方式都是可W的,本申请实施例如无特殊说明,均采用方式二的设置方式。 例如,用下式计算歌曲的难度系数。
[0129] 歌曲的难度系数=第二音高指数/歌曲的第一音高指数。
[0130] 由于清唱数据在不断地积累,清唱数据新增预设数量之后,利用上述方法重新计 算歌曲的难度系数,W对歌曲的难度系数及时进行更新。
[0131] 如果用户唱了某首歌,计算出运首歌的难度系数后,在向用户推荐歌曲时,可W推 荐难度系数相近的歌曲,W使得向用户推荐的歌曲与用户的唱歌实力相匹配。
[0132] 例如,需要计算韩红的《青藏高原》运首歌的难度系数。一共有一万个用户清唱过 运首歌,有一万个清唱数字信号(即m=10000)。计算运一万个清唱数字信号与标准数字信 号之间的相似度,按照相似度由大到小的顺序,对运一万个清唱数字信号进行排列,选取前 10%的清唱数字信号(前10%即为上述预设比例),即选取前一千个清唱数字信号(即n = 1000)。根据前一千个清唱数字信号与标准数字信号之间的相似度计算运首歌的第一音高 指数,计算出运首歌的第一音高指数为A。
[0133] 随机选取1000首歌曲,使用同样的方法,计算运1000首歌曲的每一首歌曲的第一 音高指数,将运1000首歌曲的每一首歌曲的第一音高指数求平均值,得到第二音高指数,假 设第二音高指数为0.8A。
[0134] 《青藏高原》的难度系数=第二音高指数/《青藏高原》的第一音高指数= A/0.8A = 1.25。
[0135] 因此,《青藏高原》的难度系数为1.25。假如一位用户唱了《青藏高原》运首歌,则可 W向运位用户推荐难度系数为1.25左右的其他歌曲。
[0136] 当计算出歌曲的难度系数之后,可W据此优化歌曲的打分方式。例如,将用户的清 唱数字信号与标准数字信号之间的相似度归一化,并乘W100,再与歌曲的难度系数相乘, 将结果展示给用户,作为用户的得分。运样能够使得用户在唱不同的歌曲时进行横向的水 平对比。
[0137] 例如,如表1所示,用户甲清唱了《泡沫Μ国际歌Μ我屯、永恒Μ在他乡》运四首歌, 使用上述方法计算出运四首歌的难度系数分别为1.3、0.8、1.4、和1。用户甲清唱运四首歌 的清唱数字信号与标准数字信号之间的相似度分别为63%、90%、58%和82%。
[0138] 经过计算,得到用户清唱运四首歌的得分分别为82、81、81和82。尽管用户甲清唱 的运四首歌的难度各不相同,但是用户的得分却相差很少,运说明了对于同一个用户来说, 唱歌水平是恒定的,无论唱什么难度的歌曲,得分都维持在一个恒定值的附近。运就为不同 用户唱不同歌曲时,水平的比较提供了条件。
[0139] 例如,如表2所示,用户乙、用户丙、用户下各唱了一首歌曲,用户乙唱了《泡沫》,清 唱数字信号与标准数字信号之间的相似度为74%,得分为96;用户丙唱了《国际歌》,清唱数 字信号与标准数字信号之间的相似度为85%,得分为77;用户下唱了《在他乡》,清唱数字信 号与标准数字信号之间的相似度为69%,得分为69。
[0140] 虽然用户乙、用户丙和用户下唱了不同的歌曲,运些歌曲的难度系数也都不同,但 是可W看出,将歌曲的难度系数运个因素考虑在内之后,能够对不同用户的唱歌水平进行 比较。
[0141] 当知道用户的已唱歌曲的难度系数之后,向用户推送歌曲的过程中,可W向用户 推送难度系数与用户的已唱歌曲的难度系数相同或者相近的歌曲。
[0142] 如果某个用户的已唱歌曲都是一些难度系数较低的歌曲,则向运位用户推送难度 系数较低的歌曲;如果某个用户的已唱歌曲都是一些难度系数较高的歌曲,则向运位用户 推送难度系数较高的歌曲;如果某个用户的已唱歌曲都是一些难度系数中等的歌曲,则向 运位用户推送难度系数中等的歌曲。运样可W使得推送的歌曲的难度系数与用户的唱歌水 平相匹配。
[0143] 当计算出歌曲的难度系数之后,可W根据难度系数将歌曲的难度分成若干等级, 例如,将难度系数在(0,0.8)之间的歌曲标注上一星级难度,将难度系数在[0.8,1)之间的 歌曲标注上二星级难度,将难度系数在[1,1.2)之间的歌曲标注上Ξ星级难度,将难度系数 在[1.2,1.4)之间的歌曲标注上四星级难度,将难度系数大于或者等于1.4的歌曲标注上五 星级难度。
[0144] 当知道用户的已唱歌曲的星级难度之后,向用户推送歌曲的过程中,可W向用户 推送星级难度与用户的已唱歌曲的星级难度相同的歌曲。
[0145] 在向用户推送歌曲时,可W同时显示歌曲的星级难度。例如,某个用户的已唱歌曲 大部分是五星级难度的歌曲,则向运位用户推送其他五星级难度的歌曲,并在推送歌曲的 同时显示:"运首歌曲为五星级难度,你真棒,加油r
[0146] 可选地,划分单元20包括第一获取子单元、排序子单元和划分子单元。第一获取子 单元用于获取m个清唱数字信号中每个清唱数字信号与其他m-1个清唱数字信号的音符距 离之和,其中,音符距离用于表示两个清唱数字信号的相似度。排序子单元用于按照m个清 唱数字信号的音符距离之和由小到大的顺序排列,得到排列后的m个清唱数字信号。划分子 单元用于从排列后的m个清唱数字信号中划分预设比例的清唱数字信号,得到η个第一数字 信号。音符包含时长和音高两个信息。
[0147] 两个清唱数字信号的相似度即为两个清唱数字信号的音符距离。假设m个清唱数 字信号分别为清唱数字信号XI、清唱数字信号X2、……清唱数字信号Xm。清唱数字信号Xi和 清唱数字信号、之间的音符距离可W用L(Xi,Xj)来表示。使用Uk)表示第k个清唱数字信号 与其余m-1个清唱数字信号之间存在的音符距离之和。Uk)按照下述公式计算:
[014 引 L(k) = L(Xk,Xi)+L(Xk,拉)+L(Xk,X3)+......+L(Xk,Xk-i)+L(Xk,Xk+i)+L(Xk,Xk+2)......+ L(Xk,Xm-l)
[0149] 例如,一共有10000个(即上述m个)清唱数字信号,分别为清唱数字信号Xi、清唱数 字信号X2、……、清唱数字信号Xioooo。运10000个清唱数字信号中每个清唱数字信号与其余 9999个清唱数字信号均存在音符距离。
[0150] 在公式 L(k) = L(Xk,Xi)+L(Xk,X2)+L(Xk,X3) +......+L(Xk,Xk-i)+L(Xk,Xk+i)+L(Xk, Xk+2)……+L(Xk,Xioooo)中,令k依次取1,2,3,4,……,10000,分别得到L( 1)、L(2)、L(3)、…… L( 10000),即得出运10000个清唱数字信号中每个清唱数字信号与其余9999个清唱数字信 号之间的音符距离之和。
[0151] 按照音符距离之和L(l)、音符距离之和L(2)、音符距离之和L(3)、……、音符距离 之和U 10000)由小到大的顺序对清唱数字信号XI、清唱数字信号X2、……、清唱数字信号 Xioooo排列,得到排列后的10000个清唱数字信号。从排列后的10000个清唱数字信号中划分 前5% (即上述预设比例)的清唱数字信号,得到500个第一数字信号,其余9500个清唱数字 信号为第二数字信号。
[0152] 对于不同的歌曲,唱的人数是不同的,因此得到的清唱数字信号的数量是不同的, 良Pm值是不同的。清唱数据越多,聚类后靠近中屯、点的数据就会更多,如果对于不同的歌曲 都取相同的η值,则唱的人多的歌曲与唱的人少的歌曲计算难度系数时会有偏差。
[0153] 在本实施例中,从m个清唱数字信号中按照预设百分比,选取得到了η个第一数字 信号。假定预设百分比为10%。当m=100万时,η=10万;当m=10万时,n=l万;当m=l万时, n = 1000。根据同一个预设百分比对不同的歌曲取不同的η值,唱的人多的歌曲与唱的人少 的歌曲计算难度系数时没有偏差,增加了计算歌曲难度系数时的准确性。
[0154] 可选地,两个清唱数字信号包括第一个清唱数字信号和第二个清唱数字信号,第 一获取子单元包括第一获取模块和处理模块。第一获取模块用于获取第一个清唱数字信号 和第二个清唱数字信号中对应的两个音符之间音符差。处理模块用于将第一个清唱数字信 号和第二个清唱数字信号中对应的两个音符之间音符差之和作为第一个清唱数字信号和 第二个清唱数字信号之间的音符距离。
[0155] 需要注意的是,在计算第一个清唱数字信号和第二个清唱数字信号中对应的两个 音符之间音符差的过程中,需要使用动态时间规整算法。
[0156] 例如,歌曲Q有两个版本,分别为Q1版本和Q2版本,运两个版本的前奏的长度不相 同,其余部分均相同。Q1版本的前奏比Q2版本的前奏短,用户甲清唱了Q1版本,得到了第一 个清唱数字信号。用户乙清唱了 Q2版本,得到了第二个清唱数字信号。
[0157] 如图3所示,第一个清唱数字信号包含前奏1、音符A(l,l)、音符A(l,2)、音符A(l, 3)、音符4(1,4)、……、音符A(l,n-1)、音符A(l,n),第二个清唱数字信号包含前奏2、音符A (2,1)、音符4(2,2)、音符4(2,3)、音符4(2,4)、……、音符A(2,n-l)、音符A(2,n)。第一个清 唱数字信号和第二个清唱数字信号中前奏的长度是不相同的,音符的数量是相同的,均为η 个。
[015引令C(i)为音符A(l,i)与音符A(2,i)之间的音符差。
[0159] 通过使用动态时间规整算法,将第一个清唱数字信号中的音符A(l,i)与第二个清 唱数字信号中的音符A(2,i)对应起来,i依次取1至n,计算音符A(l,i)与音符A(2,i)之间的 音符差C(i)。将求得的C(l)至C(n)相加求和,即得到第一个清唱数字信号和第二个清唱数 字信号之间的音符距离。
[0160] 可选地,第一获取模块包括计算子模块。计算子模块用于采用W下方式计算音符 差 D(Si,Sj):
[0161]
[0162] 其中,Si表示第i个音符,?表示第j个音符,Δ P表示第i个音符和第j个音符的音高 差,Ad表示第i个音符和第j个音符的时间差,0.4表示时间差的权重,音高差采用W下方式 计算:Δ p=min(abs(pi-pj) ,abs(pi-pj-24+l .0,abspi-pj+24+l .0,其中,pi表示第i个音符 的音高,pj表示第j个音符的音高,1.0表示半倍频惩罚。
[0163] 可选地,获取单元30包括补偿子单元和第二获取子单元。补偿子单元用于利用基 调偏差补偿η个第一数字信号中每个音符的基频,其中,基调偏差为η个第一数字信号中所 有音符的音高平均值与标准数字信号中所有音符的音高平均值的差值。第二获取子单元用 于获取补偿后的η个第一数字信号的第一音高指数。
[0164] 由于男女的发音频率相差较大,在男用户清唱女歌手的歌曲,或者女用户清唱男 歌手的歌曲时,存在整体的基调偏差,而运并非是因为唱得不好,所W需要对运种情况进行 补偿。此外,即使是男用户清唱男歌手的歌曲,或者女用户清唱女歌手的歌曲,由于每个人 的发音频率与其他人不同,也存在整体的基调偏差,也需要进行补偿。所W,在计算η个第一 数字信号的第一音高指数之前,可W先利用基调偏差补偿η个第一数字信号中每个音符的 基频,其中,基调偏差为η个第一数字信号中所有音符的音高平均值与标准数字信号中所有 音符的音高平均值的差值。
[0165] 可选地,第二获取子单元包括第二获取模块。第二获取模块用于采用W下方式获 取η个第一数字信号中的第k个第一数字信号中第i个音符的音高指数Τι:
[0166]
[0167] 其中,Z为音高最大惩罚值,xi为第i个音符的稳定段的开始时间,yi为第i个音符的 稳定段的结束时间,稳定段为第k个第一数字信号中与标准数字信号的基频为0的信号对应 的信号段,W为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音高,为位 于第i个音符的稳定段的开始时间和结束时间之间的时间j的标准数字信号的音高,采用W 下方式获取第一音高指数:
i中,N为第k个第一数字信号中音符的总数。
[0168] 可选地,在利用基调偏差补偿η个第一数字信号中每个音符的基频之前,装置还包 括转换单元。转换单元用于采用W下方式将第一数字信号中每个音符的基频转换成音高值 r,其中,音高值用于计算基调偏差:1: = 12 '1〇醉^ + 69,其中,*为第一数字信号中音符的频 率。
[0169] 可选地,在选择第一歌曲的m个清唱数字信号中的η个第一数字信号之前,装置还 包括切分单元。切分单元用于先按照预设音高差对每个清唱数字信号进行切分,再按照预 设时长对每个清唱数字信号进行切分,得到清唱数字信号的音符,其中,预设音高差的范围 为0至23个半音,预设时长的范围为0.1至1.9秒。
[0170] 实施例3
[0171] 根据本发明实施例,还提供了一种用于实施上述歌曲的难度确定方法的移动终 端,如图5所示,该移动终端主要包括处理器401、显示器403、数据接口 404、存储器405和网 络接口 406,其中:
[0172] 数据接口 404则主要通过数据传输的方式将歌曲的难度系数的计算方法传输给处 理器401。
[0173] 存储器405主要用于存储歌曲、存储歌曲的难度系数、存储歌曲的星级难度、存储 用户的已唱歌曲、存储向用户推送的歌曲等。
[0174] 网络接口 406主要用于与服务器进行网络通信,接收服务器发送的歌曲。
[0175] 显示器403主要用于显示歌曲、显示歌曲的难度系数、显示歌曲的星级难度、显示 用户的已唱歌曲、显示向用户推送的歌曲。
[0176] 处理器401主要用于执行如下操作:
[0177] 将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二数字信号, 其中,η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个第二数字信号与第 一歌曲的标准数字信号的相似度;获取η个第一数字信号的第一音高指数和除第一歌曲W 外的多个歌曲的清唱数字信号的第二音高指数,其中,第一音高指数用于指示η个第一数字 信号与标准数字信号在音高上的差值,第二音高指数为多个歌曲的第一音高指数的平均 值;将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数。
[0178] 处理器401还用于获取m个清唱数字信号中每个清唱数字信号与其他m-1个清唱数 字信号的音符距离之和,其中,音符距离用于表示两个清唱数字信号的相似度;按照m个清 唱数字信号的音符距离之和由小到大的顺序排列,得到排列后的m个清唱数字信号;从排列 后的m个清唱数字信号中划分预设比例的清唱数字信号,得到η个第一数字信号。
[0179] 处理器401还用于获取第一个清唱数字信号和第二个清唱数字信号中对应的两个 音符之间音符差;将第一个清唱数字信号和第二个清唱数字信号中对应的两个音符之间音 符差之和作为第一个清唱数字信号和第二个清唱数字信号之间的音符距离。
[0180] 处理器401还用于采用W下方式计算音符差D(Si,Sj):
[0181]
[0182] 其中,Si表示第i个音符,?表示第j个音符,Δ p表示第i个音符和第j个音符的音高 差,Ad表示第i个音符和第j个音符的时间差,0.4表示时间差的权重,音高差采用W下方式 计算:Δ p=min(abs(pi-pj) ,abs(pi-pj-24+l .0,abspi-pj+24+l .0,其中,pi表示第i个音符 的音高,pj表示第j个音符的音高,1.0表示半倍频惩罚。
[0183] 处理器401还用于利用基调偏差补偿η个第一数字信号中每个音符的基频,其中, 基调偏差为η个第一数字信号中所有音符的音高平均值与标准数字信号中所有音符的音高 平均值的差值;获取补偿后的η个第一数字信号的第一音高指数。
[0184] 处理器401还用于采用W下方式获取η个第一数字信号中的第k个第一数字信号中 第i个音符的音高指数Τι:
[0185]
[0186] 其中,Ζ为音高最大惩罚值,XI为第i个音符的稳定段的开始时间,yi为第i个音符的 稳定段的结束时间,稳定段为第k个第一数字信号中与标准数字信号的基频为0的信号对应 的信号段,W为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音高,为位 于第i个音符的稳定段的开始时间和结束时间之间的时间j的标准数字信号的音高,采用W 下方式获取第一音高指数:T = ^f=ir;,其中,N为第k个第一数字信号中音符的总数。
[0187] 处理器401还用于采用W下方式将第一数字信号中每个音符的基频转换成音高值 r,其中,音高值用于计算基调偏差:
[0188]
其中,t为第一数字信号中音符的频率。
[0189] 处理器401还用于先按照预设音高差对每个清唱数字信号进行切分,再按照预设 时长对每个清唱数字信号进行切分,得到清唱数字信号的音符,其中,预设音高差的范围为 0至23个半音,预设时长的范围为0.1至1.9秒。
[0190] 可选地,本实施例中的具体示例可W参考上述实施例1和实施例2中所描述的示 例,本实施例在此不再寶述。
[0191] 实施例4
[0192] 本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可 W用于存储本发明实施例的歌曲的难度确定方法的程序代码。
[0193] 可选地,在本实施例中,上述存储介质可W位于移动通信网络、广域网、城域网或 局域网的网络中的m个网络设备中的至少一个网络设备。
[0194] 可选地,在本实施例中,存储介质被设置为存储用于执行W下步骤的程序代码:
[01M] S1,将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二数字信 号,其中,η个第一数字信号与第一歌曲的标准数字信号的相似度高于m-n个第二数字信号 与第一歌曲的标准数字信号的相似度;
[0196] S2,获取η个第一数字信号的第一音高指数和除第一歌曲W外的多个歌曲的清唱 数字信号的第二音高指数,其中,第一音高指数用于指示η个第一数字信号与标准数字信号 在音高上的差值,第二音高指数为多个歌曲的第一音高指数的平均值;
[0197] S3,将第二音高指数与第一音高指数的比值作为第一歌曲的难度系数。
[0198] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:获取m个 清唱数字信号中每个清唱数字信号与其他m-1个清唱数字信号的音符距离之和,其中,音符 距离用于表示两个清唱数字信号的相似度;按照m个清唱数字信号的音符距离之和由小到 大的顺序排列,得到排列后的m个清唱数字信号;从排列后的m个清唱数字信号中划分预设 比例的清唱数字信号,得到η个第一数字信号。
[0199] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:获取第一 个清唱数字信号和第二个清唱数字信号中对应的两个音符之间音符差;将第一个清唱数字 信号和第二个清唱数字信号中对应的两个音符之间音符差之和作为第一个清唱数字信号 和第二个清唱数字信号之间的音符距离。
[0200] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:采用W下 方式计算音符差D(Si,Sj):
[0201]
[0202] 其中,Si表示第i个音符,?表示第j个音符,Δρ表示第i个音符和第j个音符的音高 差,Ad表示第i个音符和第j个音符的时间差,0.4表示时间差的权重,音高差采用W下方式 计算:
[0203] Δ p=min(abs(pi-pj) ,abs(pi_p广24)+1.0 ,abs(pi_pj+24)+l .0)
[0204] 其中,Pi表示第i个音符的音高,pj表示第j个音符的音高,1.0表示半倍频惩罚。
[0205] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:利用基调 偏差补偿η个第一数字信号中每个音符的基频,其中,基调偏差为η个第一数字信号中所有 音符的音高平均值与标准数字信号中所有音符的音高平均值的差值;获取补偿后的η个第 一数字信号的第一音高指数。
[0206] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:采用W下 方式获取η个第一数字信号中的第k个第一数字信号中第i个音符的音高指数Τι:
[0207]
[0208] 其中,Ζ为音高最大惩罚值,XI为第i个音符的稳定段的开始时间,yi为第i个音符的 稳定段的结束时间,稳定段为第k个第一数字信号中与标准数字信号的基频为0的信号对应 的信号段,W为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音高,为位 于第i个音符的稳定段的开始时间和结束时间之间的时间j的标准数字信号的音高,采用W 下方式获取第一音高指数:
[0209]
[0210] 其中,N为第k个第一数字信号中音符的总数。
[0211] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:采用W下 方式将第一数字信号中每个音符的基频转换成音高值r,其中,音高值用于计算基调偏差:
[0212]
[0213] 其中,t为第一数字信号中音符的频率。
[0214] 可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:先按照预 设音高差对每个清唱数字信号进行切分,再按照预设时长对每个清唱数字信号进行切分, 得到清唱数字信号的音符,其中,预设音高差的范围为0至23个半音,预设时长的范围为0.1 至1.9秒。
[0215] 可选地,本实施例中的具体示例可W参考上述实施例1和实施例2中所描述的示 例,本实施例在此不再寶述。
[0216] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0217] 可选地,在本实施例中,上述存储介质可W包括但不限于:U盘、只读存储器(ROM, Read-Only Memoir)、随机存取存储器(RAM,Random Access Memoir)、移动硬盘、磁碟或者 光盘等各种可W存储程序代码的介质。
[0218] 上述实施例中的集成的单元如果W软件功能单元的形式实现并作为独立的产品 销售或使用时,可W存储在上述计算机可读取的存储介质中。基于运样的理解,本发明的技 术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可软 件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用W使得一 台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所 述方法的全部或部分步骤。
[0219] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有 详述的部分,可W参见其他实施例的相关描述。
[0220] 在本申请所提供的几个实施例中,应该理解到,所掲露的客户端,可通过其它的方 式实现。其中,W上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一 种逻辑功能划分,实际实现时可W有另外的划分方式,例如m个单元或组件可W结合或者可 W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或讨论的相互之间 的禪合或直接禪合或通信连接可W是通过一些接口,单元或模块的间接禪合或通信连接, 可W是电性或其它的形式。
[0221] 所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显 示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到m个网 络单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目 的。
[0222] 另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W 是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。上述集成的单 元既可W采用硬件的形式实现,也可W采用软件功能单元的形式实现。
[0223] W上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可W做出若干改进和润饰,运些改进和润饰也应 视为本发明的保护范围。
【主权项】
1. 一种歌曲的难度确定方法,其特征在于,包括: 将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二数字信号,其中, η个所述第一数字信号与所述第一歌曲的标准数字信号的相似度高于m-n个所述第二数字 信号与所述第一歌曲的标准数字信号的相似度; 获取η个所述第一数字信号的第一音高指数和除所述第一歌曲以外的多个歌曲的清唱 数字信号的第二音高指数,其中,所述第一音高指数用于指示η个所述第一数字信号与所述 标准数字信号在音高上的差值,所述第二音高指数为所述多个歌曲的第一音高指数的平均 值; 将所述第二音高指数与所述第一音高指数的比值作为所述第一歌曲的难度系数。2. 根据权利要求1所述的方法,其特征在于,将第一歌曲的m个清唱数字信号划分为η个 第一数字信号和m-n个第二数字信号包括: 获取m个所述清唱数字信号中每个所述清唱数字信号与其他m-Ι个所述清唱数字信号 的音符距离之和,其中,所述音符距离用于表示两个所述清唱数字信号的相似度; 按照m个所述清唱数字信号的音符距离之和由小到大的顺序排列,得到排列后的m个所 述清唱数字信号; 从排列后的m个所述清唱数字信号中划分预设比例的清唱数字信号,得到η个所述第一 数字信号。3. 根据权利要求2所述的方法,其特征在于,两个所述清唱数字信号包括第一个所述清 唱数字信号和第二个所述清唱数字信号,获取m个所述清唱数字信号中每个所述清唱数字 信号与其他m-Ι个所述清唱数字信号的音符距离包括: 获取第一个所述清唱数字信号和第二个所述清唱数字信号中对应的两个音符之间音 符差; 将第一个所述清唱数字信号和第二个所述清唱数字信号中对应的两个音符之间音符 差之和作为第一个所述清唱数字信号和第二个所述清唱数字信号之间的音符距离。4. 根据权利要求3所述的方法,其特征在于,获取第一个所述清唱数字信号和第二个所 述清唱数字信号中对应的两个音符之间音符差包括: 采用以下方式计算音符差D(&,&):其中,Si表示第i个音符,?表示第j个音符,△ p表示所述第i个音符和所述第j个音符的 音高差,Ad表示所述第i个音符和所述第j个音符的时间差,0.4表示时间差的权重,所述音 高差采用以下方式计算: Δ p=min(abs(pi_pj),abs(pi_pj-24)+l .0,abs(pi_pj+24)+l ·0) 其中,Pi表示所述第i个音符的音高,Pj表示所述第j个音符的音高,1.0表示半倍频惩 罚。5. 根据权利要求1所述的方法,其特征在于,获取η个所述第一数字信号的第一音高指 数包括: 利用基调偏差补偿η个所述第一数字信号中每个音符的基频,其中,所述基调偏差为η 个所述第一数字信号中所有音符的音高平均值与所述标准数字信号中所有音符的音高平 均值的差值; 获取补偿后的η个所述第一数字信号的所述第一音高指数。6. 根据权利要求5所述的方法,其特征在于,获取补偿后的η个所述第一数字信号的所 述第一音高指数包括: 采用以下方式获取η个所述第一数字信号中的第k个第一数字信号中第i个音符的音高 指数T1:其中,Ζ为音高最大惩罚值,Xl为第i个音符的稳定段的开始时间,yi为第i个音符的稳定 段的结束时间,所述稳定段为所述第k个第一数字信号中与所述标准数字信号的基频为0的 信号对应的信号段,为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音 高,M」为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的所述标准数字信号 的音高, 采用以下方式获取所述第一音高指数:其中,N为所述第k个第一数字信号中音符的总数。7. 根据权利要求5所述的方法,其特征在于,在利用基调偏差补偿η个所述第一数字信 号中每个音符的基频之前,所述方法还包括: 采用以下方式将所述第一数字信号中每个音符的基频转换成音高值r,其中,所述音高 值用于计算所述基调偏差:其中,t为所述第一数字信号中音符的频率。8. 根据权利要求1所述的方法,其特征在于,在选择第一歌曲的m个清唱数字信号中的η 个第一数字信号之前,所述方法还包括: 先按照预设音高差对每个所述清唱数字信号进行切分,再按照预设时长对每个所述清 唱数字信号进行切分,得到所述清唱数字信号的音符,其中,所述预设音高差的范围为〇至 23个半音,所述预设时长的范围为0.1至1.9秒。9. 根据权利要求1所述的方法,其特征在于,在将所述第二音高指数与所述第一音高指 数的比值作为所述第一歌曲的难度系数之后,所述方法还包括: 根据所述难度系数推送歌曲;或者 根据所述难度系数对所述第一歌曲的多个清唱数据进行打分。10. -种歌曲的难度确定装置,其特征在于,包括: 划分单元,用于将第一歌曲的m个清唱数字信号划分为η个第一数字信号和m-n个第二 数字信号,其中,η个所述第一数字信号与所述第一歌曲的标准数字信号的相似度高于m-n 个所述第二数字信号与所述第一歌曲的标准数字信号的相似度; 获取单元,用于获取η个所述第一数字信号的第一音高指数和除所述第一歌曲以外的 多个歌曲的清唱数字信号的第二音高指数,其中,所述第一音高指数用于指示η个所述第一 数字信号与所述标准数字信号在音高上的差值,所述第二音高指数为所述多个歌曲的第一 音高指数的平均值; 处理单元,用于将所述第二音高指数与所述第一音高指数的比值作为所述第一歌曲的 难度系数。11. 根据权利要求10所述的装置,其特征在于,所述划分单元包括: 第一获取子单元,用于获取m个所述清唱数字信号中每个所述清唱数字信号与其他m-1 个所述清唱数字信号的音符距离之和,其中,所述音符距离用于表示两个所述清唱数字信 号的相似度; 排序子单元,用于按照m个所述清唱数字信号的音符距离之和由小到大的顺序排列,得 到排列后的m个所述清唱数字信号; 划分子单元,用于从排列后的m个所述清唱数字信号中划分预设比例的清唱数字信号, 得到η个所述第一数字信号。12. 根据权利要求11所述的装置,其特征在于,两个所述清唱数字信号包括第一个所述 清唱数字信号和第二个所述清唱数字信号,所述第一获取子单元包括: 第一获取模块,用于获取第一个所述清唱数字信号和第二个所述清唱数字信号中对应 的两个音符之间音符差; 处理模块,用于将第一个所述清唱数字信号和第二个所述清唱数字信号中对应的两个 音符之间音符差之和作为第一个所述清唱数字信号和第二个所述清唱数字信号之间的音 符距离。13. 根据权利要求12所述的装置,其特征在于,所述第一获取模块包括: 计算子模块,用于采用以下方式计算音符差D (&,&):其中,Si表示第i个音符,?表示第j个音符,△ p表示所述第i个音符和所述第j个音符的 音高差,Ad表示所述第i个音符和所述第j个音符的时间差,0.4表示时间差的权重,所述音 高差采用以下方式计算: Δ p=min(abs(pi_pj),abs(pi_pj-24)+l .0,abs(pi_pj+24)+l ·0) 其中,Pi表示所述第i个音符的音高,Pj表示所述第j个音符的音高,1.0表示半倍频惩 ill 〇14. 根据权利要求10所述的装置,其特征在于,所述获取单元包括: 补偿子单元,用于利用基调偏差补偿η个所述第一数字信号中每个音符的基频,其中, 所述基调偏差为η个所述第一数字信号中所有音符的音高平均值与所述标准数字信号中所 有音符的音高平均值的差值; 第二获取子单元,用于获取补偿后的η个所述第一数字信号的所述第一音高指数。15. 根据权利要求14所述的装置,其特征在于,所述第二获取子单元包括: 第二获取模块,用于采用以下方式获取η个所述第一数字信号中的第k个第一数字信号 中第i个音符的音高指数Ti:其中,Z为音高最大惩罚值,Xl为第i个音符的稳定段的开始时间,yi为第i个音符的稳定 段的结束时间,所述稳定段为所述第k个第一数字信号中与所述标准数字信号的基频为0的 信号对应的信号段,为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的音 高,Mj为位于第i个音符的稳定段的开始时间和结束时间之间的时间j的所述标准数字信号 的音高, 采用以下方式获取所述第一音高指数:其中,N为所述第k个第一数字信号中音符的总数。16. 根据权利要求14所述的装置,其特征在于,在利用基调偏差补偿η个所述第一数字 信号中每个音符的基频之前,所述装置还包括: 转换单元,用于采用以下方式将所述第一数字信号中每个音符的基频转换成音高值r, 其中,所述音高值用于计算所述基调偏差:其中,t为所述第一数字信号中音符的频率。17. 根据权利要求10所述的装置,其特征在于,在选择第一歌曲的m个清唱数字信号中 的n个第一数字信号之前,所述装置还包括: 切分单元,用于先按照预设音高差对每个所述清唱数字信号进行切分,再按照预设时 长对每个所述清唱数字信号进行切分,得到所述清唱数字信号的音符,其中,所述预设音高 差的范围为0至23个半音,所述预设时长的范围为0.1至1.9秒。
【文档编号】G10L25/90GK105825872SQ201610147409
【公开日】2016年8月3日
【申请日】2016年3月15日
【发明人】赵伟峰
【申请人】腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1