一种音频文件的节奏感强度获取方法及装置
技术领域
本发明涉及音频处理技术领域,尤其涉及一种音频文件的节奏感强度获取方法及装置。
背景技术
随着互联网的发展,互联网提供的歌曲的数量越来越多,动辄几百万,甚至上千万。而随着用户对音乐的需求不断的提高,用户从互联网上获取歌曲的方式也有所变化,从最初用户通过互联网主动找歌,到现在音乐网站主动向用户推荐歌曲,用户对音乐网站提出的要求越来越高。
音乐网站通过歌曲的曲风、流派等信息,或者通过文本挖掘的方式,为用户推荐歌曲,例如,通过用户的标注信息、歌单以及用户评论信息等,挖掘出歌曲的节奏信息,为用户提供曲风类似的歌曲。由于互联网上,很多歌曲的曲风、流派等信息不全,因而通过曲风、流派只能对用户提供较为粗放的选歌方式,通过文本挖掘的方式,不能准确地对歌曲的节奏感强度进行量化,从而使得文本挖掘的方式应用面受限。
发明内容
本发明实施例提供一种音频文件的节奏感强度获取方法及装置,通过对歌曲的节奏感强度进行量化,为用户通过节奏感强度选歌提供依据。
为达到上述目的,本发明的实施例采用如下技术方案:
一种音频文件的节奏感强度获取方法,该方法包括:
获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值;
获取音频文件中的所有帧的总频谱能量;
获取第一频谱能量之和与总频谱能量的比值,得到所述音频文件的频谱能量比;
根据频谱能量均值与频谱能量比获取所述音频文件的节奏感强度值。
一种音频文件的节奏感强度获取装置,该装置包括:
第一获取模块,用于获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值;
第二获取模块,用于获取音频文件中的所有帧的总频谱能量;
第三获取模块,用于获取第一频谱能量之和与总频谱能量的比值,得到音频文件的频谱能量比;
第四获取模块,用于根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值。
本发明实施例提供的音频文件的节奏感强度获取方法及装置,通过获得设定频段的频谱能量均值和音频文件的频谱能量比,然后根据频谱能量均值与频谱能量比获取所述音频文件的节奏感强度值,实现对歌曲的节奏感强度进行量化,为用户通过节奏感强度选歌提供依据。
附图说明
图1为本发明实施例一提供的音频文件的节奏感强度获取方法的流程示意图。
图2为本发明实施例二提供的音频文件的节奏感强度获取方法的流程示意图。
图3为图2所示实施例中步骤230具体实现的一个流程示意图。
图4为图3所示实施例中经过步骤231处理后的频谱能量示意图。
图5为图3所示实施例中经过步骤232处理后的频谱能量示意图。
图6为本发明实施例三提供的音频文件的节奏感强度获取装置的结构示意图。
图7为本发明实施例四提供的音频文件的节奏感强度获取装置的结构示意图。
具体实施方式
下面结合附图对本发明实施例提供的音频文件的节奏感强度获取方法及装置进行详细描述。
很多歌曲听起来具有明显的节奏感,一般是通过鼓声或者其它节奏乐器来表现的。而具有节奏感的歌曲,其节奏感强度也是不一样的,例如,摇滚类歌曲具有很强的节奏感,而抒情歌曲的节奏感稍弱,还有的歌曲没有鼓声作为点缀,更有的歌曲几乎没有节奏感。本发明实施例通过对歌曲的节奏感强度进行检测,将检测结果作为一个明确的描述节奏强度的数值,从而满足用户检索歌曲的泛需求。
本发明实施例通过对歌曲的音频进行分析,能够得到该歌曲的节奏感强度信息,从而使得用户通过本发明实施例提供的节奏感强度检索适合跳舞的歌曲。本发明实施例还可用于为用户推荐某一类的歌曲,还可以根据用户收藏的歌曲向用户推荐用户喜欢的歌曲,从而实现了用户检索歌曲的泛需求、场景分类、用户的个性化推荐等。
实施例一:
图1为本发明实施例一提供的音频文件的节奏感强度获取方法的流程示意图,如图1所示,本发明实施例的音频文件的节奏感强度获取方法包括如下步骤:
步骤110,获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值。
步骤120,获取音频文件中的所有帧的总频谱能量。
步骤130,获取第一频谱能量之和与总频谱能量的比值,得到音频文件的频谱能量比。
步骤140,根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值。
在步骤110中,获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值的具体处理可以为:首先对音频文件进行解码,以及重采样,重采样可直接采用国内音乐的标准频率44100Hz,之后对重采样的音频进行分帧(可设置帧长为2048,帧间隔为256),然后进行汉宁窗处理,去除汉宁窗的边界影响,再对分帧后的音频进行快速傅立叶变换,得到每帧音频数据的频谱,然后根据每帧音频数据的频谱计算所有帧在设定频段的第一频谱能量之和以及设定频段的频谱能量均值。其中,设定频段的频率范围可以为50-150Hz,该频段属于语音频谱的低频范围。
在步骤120中,先获得每帧音频数据的频谱,然后获取音频文件中的所有帧的总频谱能量。其中,获得每帧音频数据的频谱可参考步骤110中相关的描述,在此不再对其进行详细描述。
需要说明的是,本发明实施例对步骤110与步骤120的执行顺序不做限制,步骤110和步骤120的执行顺序可以互换,可以不分先后。
本发明实施例提供的音频文件的节奏感强度获取方法,通过获得设定频段的频谱能量均值和音频文件的频谱能量比,然后根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值,实现对歌曲的节奏感强度进行量化,为用户通过节奏感强度选歌提供依据。
实施例二:
图2为本发明实施例二提供的音频文件的节奏感强度获取方法的流程示意图,如图2所示,本发明实施例的音频文件的节奏感强度获取方法包括如下步骤:
步骤210,获取音频文件中的每一帧在设定频段的频谱能量。
步骤220,通过音频文件中的所有帧对应的频谱能量获取设定频段的频谱能量的变化曲线。
步骤230,通过变化曲线获取设定频段的频谱能量均值。
步骤240,获取音频文件中的所有帧在设定频段的第一频谱能量之和。
步骤250,获取音频文件中的所有帧的总频谱能量。
步骤260,获取第一频谱能量之和与总频谱能量的比值,得到音频文件的频谱能量比。
步骤270,根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值。
本发明实施例中,设定频段的频率范围可以为50-150Hz。
在步骤210中,获取音频文件中的每一帧在设定频段的频谱能量的具体处理步骤可以为:先获得每帧音频数据的频谱,然后获取音频文件中的每一帧在设定频段的频谱能量。其中,获得每帧音频数据的频谱可参考实施例一的步骤110中相关的描述,在此不再进行详细描述。
在步骤220中,将步骤210中获取的每一帧在设定频段的频谱能量连接起来,可以得到一个向量,该向量描述的就是所述设定频段的频谱能量的变化曲线。例如:从音频文件中的第一帧得到了设定频段的频谱能量e1,从第二帧得到了设定频段的频谱能量e2,…,从第n帧得到了设定频段的频谱能量en,综合起来就得到:e1、e2、…、en等向量,从而获得设定频段的频谱能量的变化曲线。
在步骤230中,在得到设定频段的频谱能量的变化曲线之后,需要提取出该设定频段的周期性的能量信息,并且该设定频段内不同频率的周期能量信息累加起来,例如,一首歌曲带有两种节奏感的乐器,存在两个周期性的信息,该周期性的信息可能存在一个区间之内,在一个区间之内可能是大致周期性的,或者,在节拍打得有偏差的情况下,会导致在下一段与当前段的信号发生偏移,此时音频不是完全吻合的周期性信号。本发明实施例通过步骤230获取设定频段的频谱能量均值,从而将上述情形考虑在内,使得获取到的节奏感强度更精确,具体步骤可如图3所示。
在步骤240中,先获得每帧音频数据的频谱,然后获取音频文件中的所有帧在设定频段的第一频谱能量之和。其中,获得每帧音频数据的频谱可参考实施例一的步骤110中相关的描述,在此不再对其进行详细描述。需要说明的是,步骤240也可以在步骤210-230之间的任一步骤前执行。
在步骤250中,先获得每帧音频数据的频谱,然后获取音频文件中的所有帧的总频谱能量。其中,获得每帧音频数据的频谱可参考实施例一的步骤110中相关的描述,在此不再对其进行详细描述。需要说明的是,步骤250也可以在步骤210-240之间的任一步骤前执行。
在步骤270中,根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值的处理可以具体为:获取频谱能量均值与频谱能量的乘积,乘积为音频文件的节奏感强度值。
图3为步骤230的具体实现的一个流程示意图。参照图3,步骤230的具体实现可以包括如下步骤:
步骤231,将变化曲线进行傅立叶变换,计算傅立叶变换之后的第二频谱能量。
步骤232,对第二频谱能量进行傅立叶反变换,计算傅立叶反变换后的第三频谱能量。
步骤233,计算第三频谱能量的均值,得到设定频段的频谱能量均值。
以一个节奏感比较强的音频文件的处理为示例,图4为节奏感比较强的音频经过本实施例的步骤231处理后的频谱能量示意图,图5为音频经过本实施例的步骤232处理后的频谱能量示意图。在图4和图5中,横坐标表示时间,具体时间与前述的分帧有关,也即与音频文件的时长有关系,纵坐标表示采样量化后的编码,既可以用功率表示单位,还可以通过取对数的方式以db为单位,db表示10logx,从图4可以看出,其第二频谱能量(spec energy 1)值比较大,隐约可见,其中具有周期性的信息。从图5可以看出,第三频谱能量(spec energy 2)的值较大,而且具有明显的周期性,并且其分布非常紧密,通过步骤233中计算第三频谱能量的均值时,得到的频谱能量值非常大,该频谱能量值是本发明实施例在获取节奏感轻度时所需要的,可以用来描述节奏感强度较大的一个分量。
实施例三:
图6为本发明实施例三提供的音频文件的节奏感强度获取装置的结构示意图,如图6所示,本发明实施例的音频文件的节奏感强度获取装置包括:
第一获取模块610,用于获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值。
第二获取模块620,用于获取音频文件中的所有帧的总频谱能量。
第三获取模块630,用于获取第一频谱能量之和与总频谱能量的比值,得到音频文件的频谱能量比。
第四获取模块640,用于根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值。
第一获取模块610可以首先对音频文件进行解码,以及重采样,重采样可直接采用国内音乐的标准频率44100Hz,之后对重采样的音频进行分帧(可设置帧长为2048,帧间隔为256),然后进行汉宁窗处理,去除边界影响,再进行快速傅立叶变换,得到每帧音频数据的频谱,然后计算所有帧在设定频段的第一频谱能量之和以及所述设定频段的频谱能量均值。其中,所述设定频段的频率范围可以为50-150Hz。
第二获取模块620先获得每帧音频数据的频谱,然后获取所述音频文件中的所有帧的总频谱能量。其中,第二获取模块620获得每帧音频数据的频谱可参考第一获取模块610获得每帧音频数据的频谱的处理,在此不再进行详细描述。
本发明实施例提供的音频文件的节奏感强度获取装置,通过第一获取模块610、第二获取模块620以及第三获取模块630获得设定频段的频谱能量均值和音频文件的频谱能量比,然后通过第四获取模块640根据所述频谱能量均值与频谱能量比获取音频文件的节奏感强度值,实现对歌曲的节奏感强度进行量化,为用户通过节奏感强度选歌提供依据。
实施例四:
图7为本发明实施例四提供的音频文件的节奏感强度获取装置的结构示意图,如图7所示,本发明实施例的音频文件的节奏感强度获取装置包括:
第一获取模块610,用于获取音频文件中的所有帧在设定频段的第一频谱能量之和以及获取设定频段的频谱能量均值。
第二获取模块620,用于获取音频文件中的所有帧的总频谱能量。
第三获取模块630,用于获取第一频谱能量之和与总频谱能量的比值,得到音频文件的频谱能量比。
第四获取模块640,用于根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值。
进一步地,第一获取模块610可以包括以下几个单元:
第一获取单元611,用于获取音频文件中的每一帧在设定频段的频谱能量。
第二获取单元612,用于通过音频文件中的所有帧对应的频谱能量获取设定频段的频谱能量的变化曲线。
第三获取单元613,用于通过变化曲线获取所述设定频段的频谱能量均值。
更进一步地,所述第三获取单元613可以包括以下几个单元:
第一计算子单元6131,用于将所述变化曲线进行傅立叶变换,计算所述傅立叶变换之后的第二频谱能量。
第二计算子单元6132,用于对所述第二频谱能量进行傅立叶反变换,计算所述傅立叶反变换后的第三频谱能量。
第三计算子单元6133,用于计算所述第三频谱能量的均值,得到所述设定频段的频谱能量均值。
通过上述对第一获取模块610及第三获取单元613的进一步的补充所产生的有益技术效果可参考实施例二中步骤230中所述的有益技术效果,在此不再赘述。
进一步地,第四获取模块640可以包括:
第四获取单元641,用于获取所述频谱能量均值与所述频谱能量的乘积,所述乘积为所述音频文件的节奏感强度值。
综上所述,本发明实施例提供的音频文件的节奏感强度获取方法及装置,通过获得设定频段的频谱能量均值和音频文件的频谱能量比,然后根据频谱能量均值与频谱能量比获取音频文件的节奏感强度值,实现对歌曲的节奏感强度进行量化,为用户通过节奏感强度选歌提供依据。
为了证明本发明实施例的有效性,通过近2000首歌,从其中按照曲风、流派等分布抽取了100首歌进行主观评测,通过本发明实施例的技术方案获取到的节奏感强度值有80%左右的歌曲是准确的,大概20%的歌曲有较小程度的偏差;因此,本发明实施例完全能够描述节奏感强度,并在工业界使用。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。