一种歌曲分类方法及装置与流程

文档序号:20769443发布日期:2020-05-15 19:28阅读:248来源:国知局
一种歌曲分类方法及装置与流程
本申请涉及数据处理领域,尤其涉及一种歌曲分类方法及装置。
背景技术
:实际中,歌曲的风格和类别很多,不同歌曲的演唱难易程度也有差异,现有技术中音乐难度评价,通常采用人工标注的方式,邀请音乐家或专家依据经验,采用主观评价的方法进行人工的难度分级,例如国内外多个体系的考级教材定级,但是这种方式成本高,效率较低,并且由于人工主观性影响容易导致难度评价不一致或不准确的问题。另外,现有技术中还提供了一种音乐难度评价的方式,主要以乐谱文件作为输入,针对器乐乐曲进行难度自动分级,但是仅是针对乐谱文件,对于无乐谱文件场景无法适用,针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本申请实施例提供一种歌曲分类方法及装置,以实现高效、准确地对歌曲进行难度分级。本申请实施例提供的具体技术方案如下:一种歌曲分类方法,包括:获取歌曲的歌词文件和音高线文件,其中,所述音高线文件至少包括每个音符的开始时间、结束时间和对应的音高,所述歌词文件至少包括每个字的字长信息;根据所述音高线文件中每个音符的开始时间、结束时间和对应音高,以及所述歌词文件中每个字的字长信息,确定所述歌曲的多维乐理特征;利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别。可选的,所述获取歌曲的歌词文件,具体包括:获取所述歌曲的歌曲文件;识别出所述歌曲文件中所有歌词,并确定所述所有歌词中每个字的字长信息和开始时间,生成所述歌词文件。可选的,获取歌曲的音高线文件,具体包括:根据所述每个字的字长信息和开始时间,确定所述每个字的时间范围;基于所述歌词文件中每个字的所述时间范围,确定出所述每个字对应的音符的音高并生成音高线文件。可选的,所述多维乐理特征为以下一种或任意组合:歌曲音域跨度、歌曲平均气息长度、歌曲最长气息长度、歌曲音程难度、歌曲最快速度和歌曲平均速度,其中,所述歌曲音域跨度表征歌曲中最低音至最高音的范围,所述歌曲平均气息长度表征歌曲中各段未换气的气息的平均值,所述歌曲最长气息长度表征歌曲中各段未换气的气息的最大值、所述歌曲音程难度表征音程的难度等级值,所述歌曲最快速度表征歌曲中字演唱的最快速度,所述歌曲平均速度表征歌曲中所有字演唱的平均速度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述音高线文件中每个字符的音高,确定最大音高和最小音高;将所述最大音高和所述最小音高的差值,确定为所述歌曲的歌曲音域跨度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并计算确定的各差值的平均值,将所述平均值确定为所述歌曲的所述歌曲平均气息长度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并将确定的各差值中的最大值,确定为所述歌曲的歌曲最长气息长度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述音高线文件中每个字符的音高,确定各相邻音符的音高的差值;筛选出音高的差值符合预设音高阈值条件的数目,并根据筛选出的数目和总音高的差值的数目,确定所述歌曲的所述歌曲音程难度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述歌词文件中每个字的字长信息,筛选出字长信息最短的预设数目个字;确定筛选出的字长信息的平均值,作为所述歌曲的歌曲最快速度。可选的,确定所述歌曲的多维乐理特征,具体包括:根据所述歌词文件中每个字的字长信息,确定每个字的字长信息的平均值,作为所述歌曲的歌曲平均速度。可选的,利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别,具体包括:将所述多维乐理特征输入到经过训练的分类器中,对所述多维乐理特征进行分析,分别确定所述多维乐理特征的向量表示,根据所述多维乐理特征的向量表示,将所述多维乐理特征与目标分类位置进行对比,输出所述歌曲所属的难度类别,其中,所述目标分类位置用于划分不同难度类别。可选的,对所述分类器进行训练的方法包括:获取歌曲训练样本集,其中,所述歌曲训练样本集中每个歌曲训练样本包括歌词文件、音高线文件和标注的难度类别;根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值;根据所述每个歌曲训练样本的所述音高线文件和所述歌词文件,分别确定所述每个歌曲训练样本的多维乐理特征;根据所述每个歌曲训练样本的多维乐理特征和所述各标注的难度类别对应的权重值,训练所述分类器。可选的,根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值,具体包括:分别计算所述歌曲训练样本集中歌曲训练样本的总数量,与所述各标注的难度类别对应的歌曲训练样本的数量的比值,并将计算的比值作为对应标注的难度类别的权重值。一种歌曲分类装置,包括:获取模块,用于获取歌曲的歌词文件和音高线文件,其中,所述音高线文件至少包括每个音符的开始时间、结束时间和对应的音高,所述歌词文件至少包括每个字的字长信息;第一确定模块,用于根据所述音高线文件中每个音符的开始时间、结束时间和对应音高,以及所述歌词文件中每个字的字长信息,确定所述歌曲的多维乐理特征;第二确定模块,用于利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别。可选的,所述获取歌曲的歌词文件时,所述获取模块具体用于:获取所述歌曲的歌曲文件;识别出所述歌曲文件中所有歌词,并确定所述所有歌词中每个字的字长信息和开始时间,生成所述歌词文件。可选的,获取歌曲的音高线文件时,所述获取模块具体用于:根据所述每个字的字长信息和开始时间,确定所述每个字的时间范围;基于所述歌词文件中每个字的所述时间范围,确定出所述每个字对应的音符的音高并生成音高线文件。可选的,所述多维乐理特征为以下一种或任意组合:歌曲音域跨度、歌曲平均气息长度、歌曲最长气息长度、歌曲音程难度、歌曲最快速度和歌曲平均速度,其中,所述歌曲音域跨度表征歌曲中最低音至最高音的范围,所述歌曲平均气息长度表征歌曲中各段未换气的气息的平均值,所述歌曲最长气息长度表征歌曲中各段未换气的气息的最大值、所述歌曲音程难度表征音程的难度等级值,所述歌曲最快速度表征歌曲中字演唱的最快速度,所述歌曲平均速度表征歌曲中所有字演唱的平均速度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述音高线文件中每个字符的音高,确定最大音高和最小音高;将所述最大音高和所述最小音高的差值,确定为所述歌曲的歌曲音域跨度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并计算确定的各差值的平均值,将所述平均值确定为所述歌曲的所述歌曲平均气息长度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并将确定的各差值中的最大值,确定为所述歌曲的歌曲最长气息长度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述音高线文件中每个字符的音高,确定各相邻音符的音高的差值;筛选出音高的差值符合预设音高阈值条件的数目,并根据筛选出的数目和总音高的差值的数目,确定所述歌曲的所述歌曲音程难度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述歌词文件中每个字的字长信息,筛选出字长信息最短的预设数目个字;确定筛选出的字长信息的平均值,作为所述歌曲的歌曲最快速度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块具体用于:根据所述歌词文件中每个字的字长信息,确定每个字的字长信息的平均值,作为所述歌曲的歌曲平均速度。可选的,利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别时,所述第二确定模块具体用于:将所述多维乐理特征输入到经过训练的分类器中,对所述多维乐理特征进行分析,分别确定所述多维乐理特征的向量表示,根据所述多维乐理特征的向量表示,将所述多维乐理特征与目标分类位置进行对比,输出所述歌曲所属的难度类别,其中,所述目标分类位置用于划分不同难度类别。可选的,对所述分类器进行训练的方法,还包括训练模块,用于:获取歌曲训练样本集,其中,所述歌曲训练样本集中每个歌曲训练样本包括歌词文件、音高线文件和标注的难度类别;根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值;根据所述每个歌曲训练样本的所述音高线文件和所述歌词文件,分别确定所述每个歌曲训练样本的多维乐理特征;根据所述每个歌曲训练样本的多维乐理特征和所述各标注的难度类别对应的权重值,训练所述分类器。可选的,根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值时,训练模块具体用于:分别计算所述歌曲训练样本集中歌曲训练样本的总数量,与所述各标注的难度类别对应的歌曲训练样本的数量的比值,并将计算的比值作为对应标注的难度类别的权重值。一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种歌曲分类方法的步骤。一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种歌曲分类方法的步骤。本申请实施例中,获取歌曲的歌词文件和音高线文件,并基于歌词文件和音高线文件,从中确定出多维乐理特征,进而将多维乐理特征输入到经过训练的分类器中,将多维乐理特征与难度类别分类条件进行比对,确定歌曲所属的难度类别,这样,无需人工操作,可以自动进行歌曲难度评级,提高了效率和客观性,并且根据歌词文件和音高线文件,确定出更多维有效的、反映歌曲难度的客观的多维乐理特征,结合机器学习的分类器,从而确定出歌曲的难度类别,不需要依赖乐谱文件,适用于歌曲难度分级场景,实现了有效准确地对歌曲进行难度分级。附图说明图1为本申请实施例中歌曲分类方法流程图;图2为本申请实施例中歌词文件格式示意图;图3为本申请实施例中分类器原理示意图;图4为本申请实施例中歌曲分类方法原理框图;图5为本申请实施例中歌曲分类装置结构示意图;图6为本申请实施例中电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。为便于对本申请实施例的理解,下面先对几个概念进行简单介绍:音域:歌曲演唱中最高音到最低音的范围。音程:音符与音符在音高上的距离。字长:歌曲中一个字所占的时间长短。实际中,歌曲的风格和类别很多,不同歌曲的演唱难易程度也有差异,现有技术中音乐难度评价,通常采用人工标注的方式,成本高,效率较低,并且由于人工主观性影响容易导致难度评价不一致或不准确的问题。另外目前运用计算机技术进行自动音乐难度评价的方法中,主要是以乐谱文件作为输入,针对器乐乐曲进行难度自动分级,但是仅是针对乐谱文件,对于无乐谱文件场景无法适用,并且也不涉及歌曲难度的考虑。针对此,本申请实施例中提供了一种能够对歌曲进行难度评价的方法,获取歌曲的歌词文件和音高线文件,根据音高线文件中每个音符的开始时间、结束时间和对应音高,以及歌词文件中每个字的字长信息,确定歌曲的多维乐理特征,进而利用经过训练的分类器,将多维乐理特征与难度类别分类条件进行比对,确定歌曲所属的难度类别,这样,基于歌词文件和音高线文件,可以提取更多维的有效的、真实的反映歌曲难度的客观信息,从而确定歌曲的难度类别,不需要人工标注,并且不依赖乐谱文件,提高了效率,适用于歌唱场景,能够实现自动准确地对歌曲进行难度评价。基于上述实施例,下面对本申请实施例中的歌曲分类方法进行说明,参阅图1所示,为本申请实施例中歌曲分类方法流程图,该方法包括:步骤100:获取歌曲的歌词文件和音高线文件,其中,音高线文件至少包括每个音符的开始时间、结束时间和对应的音高,歌词文件至少包括每个字的字长信息。本申请实施例中,可以从歌曲文件中提取并获得歌词文件和音高线文件,其中,歌曲文件可以为歌曲的音频文件,并不进行限制,这样,本申请实施例中可以直接输入歌曲的音频文件,在仅有音频文件的情况下,也可以通过确定歌词文件和音高线文件,从而确定歌曲所属的难度类别,避免了对乐谱文件的依赖,可以适用于无乐谱的场景。其中,歌词文件即表示歌曲中歌词的描述信息,包括每个字的字长信息等,例如,还可以包括每句的开始时间和结束时间,每个字的开始时间和结束时间,本申请实施例中并不进行限制。音高线文件表示歌曲中音符的音高的描述信息,包括每个音符的开始时间、结束时间和对应的音高,当然对此本申请实施例中也不进行限制。具体地,执行步骤100时,包括以下两部分:第一部分:获取歌曲的歌词文件,具体包括:1)获取歌曲的歌曲文件。2)识别出歌曲文件中所有歌词,并确定所有歌词中每个字的字长信息和开始时间,生成歌词文件。例如,可以通过切字方法,标注出歌词中每个字的开始时间,从而形成歌词文件。例如,参阅图2所示,为本申请实施例中歌词文件格式示意图,图2中给出了某歌曲的部分歌词文件,如图2所示,方括号内为每句歌词的开始时间(单位:ms)和结束时间(单位:ms),尖括号内前两个数字为每个字在该句歌词的开始时间(单位:ms)和字长(单位:ms),从图2可知,每个字的开始时间是与其所在的一句歌词的开始时间相关的,这是因为,图2中每句歌词的第一个字的开始时间是在该句歌词的时间信息基础上计算得出,而且将每句歌词中第一个字的开始时间设置为从0开始计算,这样在生成歌词文件时,可以忽略每句歌词之间的间隔,计算效率更高,从而可以根据每个字在该句歌词的开始时间和对应的所在的一句歌词的开始时间,确定每个字的开始时间。第二部分:获取歌曲的音高线文件,具体包括:1)根据每个字的字长信息和开始时间,确定每个字的时间范围。2)基于歌词文件中每个字的时间范围,确定出每个字对应的音符的音高并生成音高线文件。例如,可以在每个字的时间范围内,使用pyin或dio等音高提取算法,计算每个字对应的音符的音高,形成音高线文件。例如参阅表1所示,为本申请实施例中音高线文件格式示意表,表1中列举了部分音符的音高。表1.音符开始时间音符结束时间音高245962495471249572534569253472573271257352616274261642662471269902735066273682772262277252797364如表1所示,音高线文件中包括音符的开始时间(start_time)、结束时间(end_time)和音高(pitch),其中,开始时间和结束时间的单位可以为毫秒(ms),音高的单位可以为乐器数字接口(musicalinstrumentdigitalinterface,midi)键号。当然也可以采用其它方式获得歌词文件和音高线文件,例如采用人工标注方式等,本申请实施例中并不进行限制。步骤110:根据音高线文件中每个音符的开始时间、结束时间和对应音高,以及歌词文件中每个字的字长信息,确定歌曲的多维乐理特征。其中,多维乐理特征为以下一种或任意组合:歌曲音域跨度、歌曲平均气息长度、歌曲最长气息长度、歌曲音程难度、歌曲最快速度和歌曲平均速度,其中,歌曲音域跨度表征歌曲中最低音至最高音的范围,歌曲平均气息长度表征歌曲中各段未换气的气息的平均值,歌曲最长气息长度表征歌曲中各段未换气的气息的最大值、歌曲音程难度表征音程的难度等级值,歌曲最快速度表征歌曲中字演唱的最快速度,歌曲平均速度表征歌曲中所有字演唱的平均速度。本申请实施例中,结合歌曲的特点,并基于获得的歌词文件和音高线文件,构建了多维乐理特征,考虑维度更多,也更加符合歌曲应用场景,当然对多维乐理特征并不仅限于上述几种,也可以根据实际情况和经验设置其它特征或更多特征,对此并不进行限制。步骤120:利用经过训练的分类器,将多维乐理特征与难度类别分类条件进行比对,确定歌曲所属的难度类别。执行步骤120时,具体包括:将多维乐理特征输入到经过训练的分类器中,对多维乐理特征进行分析,分别确定多维乐理特征的向量表示,根据多维乐理特征的向量表示,将多维乐理特征与目标分类位置进行对比,输出歌曲所属的难度类别,其中,目标分类位置用于划分不同难度类别。其中,分类器可以为支持向量机(supportvectormachine,svm)模型算法,本申请实施例中并不进行限制,也可以采用其它模型算法。进一步地,确定出歌曲所属的难度类别后,本申请实施例中还提供了可能的应用场景,根据歌曲的难度类别,对不同演唱水平的用户推荐不同难度类别的歌曲,例如在唱歌应用程序(application,app)中,可以根据用户针对不同难度类别的歌曲的演唱得分,推荐同等难度、高难度或低难度的歌曲,又例如,在唱歌app系统冷启动时,无法确定用户的演唱水平,可以先推荐难度类别较低的歌曲。当然,还可以应用于其它场景,只要是基于歌曲的难度类别的场景均可,本申请实施例中并不进行限制。本申请实施例中,获取歌曲的歌词文件和音高线文件,并确定歌曲的多维乐理特征,将多维乐理特征输入到经过训练的分类器,进行分析比对,从而确定歌曲所属的难度类别,这样,可以通过获取歌曲的歌词文件和音高线文件,进行歌曲的难度分级,不需要依赖乐谱文件,并且从歌词文件和音高线文件中提取有效、必要、能够真实反映歌曲难度的客观信息,构建多维乐理特征,从而基于分类器,获得歌曲的难度类别,实现对歌曲的演唱难度进行自动分级,不需要人工操作,提高了效率,并且提高了准确性。基于上述实施例,下面对本申请实施例中确定歌曲的多维乐理特征进行具体说明,具体地,基于不同的多维乐理特征,可以分为以下几种情况:第一种情况:多维乐理特征为歌曲音域跨度。确定歌曲的多维乐理特征,具体包括:s1、根据音高线文件中每个字符的音高,确定最大音高和最小音高。s2、将最大音高和最小音高的差值,确定为歌曲的歌曲音域跨度。例如,歌曲音域跨度为pitchrange,音高为pitch,最大音高为max(pitch),最小音高为min(pitch),则歌曲音域跨度的计算方式为:pitchrange=max(pitch)-min(pitch)其中,通常音域跨度大的歌曲,难度较大。第二种情况:多维乐理特征为歌曲平均气息长度。确定歌曲的多维乐理特征,具体包括:s1、根据音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔。s2、以筛选出的时间间隔对应的音符的位置为分割位置,将歌曲进行分句,获得分割的各个分句。本申请实施例中,歌曲演唱时会有换气,以一次换气所需的时长作为每段气息的边界,计算每段气息的平均长度,为便于计算,在分句时考虑大于预设阈值的时间间隔,例如预设阈值为100ms,可以根据时间经验设置,通常大于100ms就可以认为足以作为换气的气口。例如,分句的标准为:其中,start_timei+1为第i+1个音符的开始时间,表示第i个音符的结束时间。s3、分别确定各个分句对应的结束时间与开始时间的差值,并计算确定的各差值的平均值,将平均值确定为歌曲的歌曲平均气息长度。例如,meanbreath为歌曲平均气息长度,k为分句的数量,则歌曲平均气息长度的计算方式为:其中,通常平均气息长度越长,难度越大。第三种情况:多维乐理特征为歌曲最长气息长度。s1、根据音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔。s2、以筛选出的时间间隔对应的音符的位置为分割位置,将歌曲进行分句,获得分割的各个分句。其中,分句的标准和上述第二种情况中计算歌曲平均气息长度时的分句标准相同。s3、分别确定各个分句对应的结束时间与开始时间的差值,并将确定的各差值中的最大值,确定为歌曲的歌曲最长气息长度。例如,maxbreath为歌曲最长气息长度,k为分句的数量,则歌曲最长气息长度的计算方式为:其中,最长气息长度越长,难度越大。第四种情况:多维乐理特征为歌曲音程难度。确定歌曲的多维乐理特征,具体包括:s1、根据音高线文件中每个字符的音高,确定各相邻音符的音高的差值。s2、筛选出音高的差值符合预设音高阈值条件的数目,并根据筛选出的数目和总音高的差值的数目,确定歌曲的歌曲音程难度。本申请实施例,计算歌曲音程难度时,提取歌曲中相邻音符的音程,其中,为提高计算效率,减少计算量,相邻音符只考虑时间间隔在2s内的音符,从而统计所有音程的分布情况,计算演唱难度高的音程占所有音程的比例,作为音程难度,其中演唱难度高的音程可以采用相邻音符的音高的差值来确定。例如,本申请实施例中预设可用于自动难度评级的难音程包含:增四度、大六度、小六度、大七度、小七度和八度,其中,在音乐领域,增四度指两个音符的音高编号(midi标准)相差6,小六度音高编号相差8,大六度音高编号相差9,小七度音高编号相差10,大七度音高编号相差11,八度音高编号相差12。则例如预设音高阈值条件设置为大于等于8和等于6,歌曲的歌曲音程难度计算方式为:其中,interval_difficulty表示歌曲音程难度,ninterval为确定出的总音高的差值的数目,ninterval≥8表示相邻音符的音高的差值interval大于等于8的数目,ninterval=6表示相邻音符的音高的差值等于6的数目,intervali=abs|pitchi+1-pitchi|,pitchi+1为i+1音符的音高,pitchi为i音符的音高。其中,演唱难度高的音程越多,难度越大。第五种情况:多维乐理特征为歌曲最快速度。确定歌曲的多维乐理特征,具体包括:s1、根据歌词文件中每个字的字长信息,筛选出字长信息最短的预设数目个字。本申请实施例中,基于歌词文件,可以通过正则表达式抽取字长信息,例如图2所示,即获取图2中尖括号内第二项数据,进而统计歌曲中字长信息分布,计算最短的几个字的字长信息的平均值。s2、确定筛选出的字长信息的平均值,作为歌曲的歌曲最快速度。其中,预设数目例如为5,本申请实施例中并不进行限制,则歌曲最快速度的计算方式为:其中,max_speed为歌曲最快速度,表示字长信息最短的5个字的字长信息。其中,最短预设数目个字的字长信息的平均值越小,难度越大。第六种情况:多维乐理特征为歌曲平均速度。确定歌曲的多维乐理特征,具体包括:根据歌词文件中每个字的字长信息,确定每个字的字长信息的平均值,作为歌曲的歌曲平均速度。同样地,确定字长信息可以通过正则表达式从歌词文件中提取,从而统计歌曲字长信息分布,计算每个字的字长信息的平均值。例如,歌曲平均速度的计算方式为:其中,mean_speed表示歌曲平均速度,∑time字长表示字长信息的平均值,n字数表示计算字长信息的平均值对应的字的数目。其中,每个字的字长信息的平均值越短,难度越大。这样,本申请实施例中,基于歌词文件和音高线文件,可以计算获得上述几种多维乐理特征,自动提取计算,更加客观准确,并且也更加符合歌曲特点。基于上述实施例,下面对本申请实施例中分类器的训练过程进行说明。为便于理解,先对分类器的原理进行简单说明,以分类器为svm,并预设难度类别只有两类为例,参阅图3所示,为本申请实施例中分类器原理示意图,具体地,1)将输入数据(即本申请实施中的多维乐理特征)通过核函数映射到高维空间,使两个类别的数据线性可分,其中,线性可分可以理解为在高维空间中,存在一条直线,可以将两类数据尽可能的分到直线两侧,例如图3中,存在直线将“○”和“□”两类数据分在直线的两侧。2)在所有可将数据分为两类的直线中,计算两类数据距离直线的距离,即图3中箭头的长度,最终直线的选择标准为:该直线距离两类数据距离相同,且距离最大。3)将选出的直线映射回低维空间,作为分类函数。这样,经过训练,确定最合适的直线,最终训练好的模型即最终选取的直线,由参与距离计算的数据直接决定。基于上述实施例,本申请实施例中对分类器进行训练的方法包括:s1、获取歌曲训练样本集,其中,歌曲训练样本集中每个歌曲训练样本包括歌词文件、音高线文件和标注的难度类别。例如,歌曲训练样本集的获取方式为选取一些数目的歌曲进行标注,例如标注100首,歌曲的难度类别分为简单和中高级两类,则可以对这100首歌曲进行难度类别标注,每首歌的长度在3-5分钟,当然也不进行限制,从而基于本申请实施例中生成歌词文件和音高线文件的方法,分别获取这100首歌曲的歌词文件和音高线文件,例如,标注后难度类别为简单的歌曲训练样本的数目为58,难度类别为中高级的歌曲训练样本的数目为42。s2、根据歌曲训练样本集中歌曲训练样本的总数量,以及各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值。本申请实施例中,计算权重值的目的是由于在训练时,通常各类数据量有一定差异,使用机器学习模型训练时容易对数据较多的类别进行过拟合,因此在后续分类器模型训练与使用f1分数(f1-score)评估分类器效果时,对不同的难度类别赋予不同的权重,可以避免过拟合,平衡样本数量。具体地:分别计算歌曲训练样本集中歌曲训练样本的总数量,与各标注的难度类别对应的歌曲训练样本的数量的比值,并将计算的比值作为对应标注的难度类别的权重值。例如,权重值的计算方式为:其中,weight(i)表示难度类别i的权重值。则计算确定各难度类别的权重值,参阅表2所示,为本申请实施例中难度类别的权重值结果示例。表2.难度类别权重00.84711.219其中,表2中难度类别0表示中高级难度类别,难度类别1表示简单难度类别,通常样本数量多的难度类别的权重值越小。s3、根据每个歌曲训练样本的音高线文件和歌词文件,分别确定每个歌曲训练样本的多维乐理特征。其中,确定每个歌曲训练样本的多维乐理特征的具体计算方式,和上述实施例中的描述相同,这里就不再进行赘述了。s4、根据每个歌曲训练样本的多维乐理特征和各标注的难度类别对应的权重值,训练分类器。进一步地,训练完成后,还可以对训练的分类器的性能进行测试,通常在分类任务上,分类器的性能指标包括准确度(pricision)、召回率(recall)和f1-score,其中,准确度定义为,每类被正确分类的样本数与被识别为此类样本的样本数的比值。召回率定义为,每类被正确分类的样本数与此类样本总数的比值。f1-score是准确率与召回率的调和平均。以上三个指标越接近于1,说明分类器的预测效果越好。当然也可以使用这三个性能指标中的任意一个或多个来测试分类器的性能,例如,使用准确度性能指标,本申请实施例中并不进行限制。本申请实施例中,通过本申请实施例中的训练方法训练svm分类器后,通过测试试验,svm参数选择c=1,gamma=0.01,所达到的分类性能参阅表3所示。表3.分类器准确度1召回率0.833333f1-score0.909091从表3可知,本申请实施例中,训练后的分类器的准确度达到1,召回率达到0.833333,f1-score为0.909091,准确度、召回率和f1-score都比较高。进一步地,本申请实施例中基于训练后的分类器,扩大到7035首未经过标注的歌曲测试集进行分类试验,再从经过分类器获得分类结果的歌曲中随机抽出30首进行抽检,在扩大测试集中,训练的分类器的准确度可达到0.84,因此,本申请实施例中的歌曲分类方法和分类器具有很好的分类效果,提高了准确性。基于上述实施例,下面采用具体应用场景,对本申请实施例中歌曲分类方法原理进行简单说明,参阅图4所示,为本申请实施例中歌曲分类方法原理框图。具体地,针对歌曲,可以为歌曲音频文件,从中提取获得歌曲的歌词文件和音高线文件,并根据歌词文件和音高线文件,确定歌曲的多维乐理特征,本实施例中多维乐理特征为六维特征为例,则根据音高线文件,确定歌曲音域跨度、歌曲平均气息长度、歌曲最长气息长度、歌曲音程难度,并根据歌词文件,确定歌曲最快速度和歌曲平均速度,从而将这六维特征输入到经过训练的分类器中,输出歌曲所属的难度类别,这样,无需人工标注,提高了效率,更加客观和准确,并且适用于歌曲难度分级场景,不需要依赖乐谱文件,实现了高效准确地对歌曲进行难度分级。基于同一发明构思,本申请实施例中还提供了一种歌曲分类装置,基于上述实施例,参阅图5所示,本申请实施例中歌曲分类装置,具体包括:获取模块50,用于获取歌曲的歌词文件和音高线文件,其中,所述音高线文件至少包括每个音符的开始时间、结束时间和对应的音高,所述歌词文件至少包括每个字的字长信息;第一确定模块51,用于根据所述音高线文件中每个音符的开始时间、结束时间和对应音高,以及所述歌词文件中每个字的字长信息,确定所述歌曲的多维乐理特征;第二确定模块52,用于利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别。可选的,所述获取歌曲的歌词文件时,所述获取模块50具体用于:获取所述歌曲的歌曲文件;识别出所述歌曲文件中所有歌词,并确定所述所有歌词中每个字的字长信息和开始时间,生成所述歌词文件。可选的,获取歌曲的音高线文件时,所述获取模块50具体用于:根据所述每个字的字长信息和开始时间,确定所述每个字的时间范围;基于所述歌词文件中每个字的所述时间范围,确定出所述每个字对应的音符的音高并生成音高线文件。可选的,所述多维乐理特征为以下一种或任意组合:歌曲音域跨度、歌曲平均气息长度、歌曲最长气息长度、歌曲音程难度、歌曲最快速度和歌曲平均速度,其中,所述歌曲音域跨度表征歌曲中最低音至最高音的范围,所述歌曲平均气息长度表征歌曲中各段未换气的气息的平均值,所述歌曲最长气息长度表征歌曲中各段未换气的气息的最大值、所述歌曲音程难度表征音程的难度等级值,所述歌曲最快速度表征歌曲中字演唱的最快速度,所述歌曲平均速度表征歌曲中所有字演唱的平均速度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述音高线文件中每个字符的音高,确定最大音高和最小音高;将所述最大音高和所述最小音高的差值,确定为所述歌曲的歌曲音域跨度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并计算确定的各差值的平均值,将所述平均值确定为所述歌曲的所述歌曲平均气息长度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述音高线文件中每个音符的开始时间、结束时间,确定上一个音符的结束时间到下一个音符的开始时间的时间间隔,并筛选出大于预设阈值的时间间隔;以筛选出的时间间隔对应的音符的位置为分割位置,将所述歌曲进行分句,获得分割的各个分句;分别确定所述各个分句对应的结束时间与开始时间的差值,并将确定的各差值中的最大值,确定为所述歌曲的歌曲最长气息长度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述音高线文件中每个字符的音高,确定各相邻音符的音高的差值;筛选出音高的差值符合预设音高阈值条件的数目,并根据筛选出的数目和总音高的差值的数目,确定所述歌曲的所述歌曲音程难度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述歌词文件中每个字的字长信息,筛选出字长信息最短的预设数目个字;确定筛选出的字长信息的平均值,作为所述歌曲的歌曲最快速度。可选的,确定所述歌曲的多维乐理特征时,所述第一确定模块51具体用于:根据所述歌词文件中每个字的字长信息,确定每个字的字长信息的平均值,作为所述歌曲的歌曲平均速度。可选的,利用经过训练的分类器,将所述多维乐理特征与难度类别分类条件进行比对,确定所述歌曲所属的难度类别时,所述第二确定模块52具体用于:将所述多维乐理特征输入到经过训练的分类器中,对所述多维乐理特征进行分析,分别确定所述多维乐理特征的向量表示,根据所述多维乐理特征的向量表示,将所述多维乐理特征与目标分类位置进行对比,输出所述歌曲所属的难度类别,其中,所述目标分类位置用于划分不同难度类别。可选的,对所述分类器进行训练的方法,还包括训练模块53,用于:获取歌曲训练样本集,其中,所述歌曲训练样本集中每个歌曲训练样本包括歌词文件、音高线文件和标注的难度类别;根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值;根据所述每个歌曲训练样本的所述音高线文件和所述歌词文件,分别确定所述每个歌曲训练样本的多维乐理特征;根据所述每个歌曲训练样本的多维乐理特征和所述各标注的难度类别对应的权重值,训练所述分类器。可选的,根据所述歌曲训练样本集中歌曲训练样本的总数量,以及所述各标注的难度类别对应的歌曲训练样本的数量,分别确定各标注的难度类别对应的权重值时,训练模块53具体用于:分别计算所述歌曲训练样本集中歌曲训练样本的总数量,与所述各标注的难度类别对应的歌曲训练样本的数量的比值,并将计算的比值作为对应标注的难度类别的权重值。基于上述实施例,参阅图6所示为本申请实施例中电子设备的结构示意图。本申请实施例提供了一种电子设备,该电子设备可以包括处理器610(centerprocessingunit,cpu)、存储器620、输入设备630和输出设备640等,输入设备630可以包括键盘、鼠标、触摸屏等,输出设备640可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。存储器620可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器610提供存储器620中存储的程序指令和数据。在本申请实施例中,存储器620可以用于存储本申请实施例中任一种歌曲分类方法的程序。处理器610通过调用存储器620存储的程序指令,处理器610用于按照获得的程序指令执行本申请实施例中任一种歌曲分类方法。基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的歌曲分类方法。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1