具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的音乐节奏检测方法及音乐节奏检测装置其具体实施方式、结构、特征及功效,详细说明如后。
有关本发明的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例详细说明中将可清楚的呈现。通过具体实施方式的说明,当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本发明加以限制。
图1是本发明实施例提供的音乐节奏检测方法的步骤流程图。请参阅图1,本发明实施例的音乐节奏检测方法可包括以下步骤S101-S107:
步骤S101:获取被检测音乐的音频信号。
本步骤中,被检测音乐的音频信号为被解码为预定格式的音频信号。预定格式可以包括wav格式、pcm格式等。而被检测音乐的格式可以为任意格式,例如mp3、md、cd、mod格式等。主要是因为音乐的音频信号通常为压缩的信号,因此需要解码(即解压缩)为wav等格式的音频信号,才能再进行一般的信号处理。
步骤S103:计算被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数。
本步骤中,预设的音乐节奏模型可以从一段音乐中选取基本的节拍模型,例如Dum–Du–Dum–Dum之类的节拍模型。在计算整体音乐的节拍的时候,将节拍模型的整体“Dum–Du–Dum–Dum”作为一个节拍(BeatsPerMinutes,BPM),而非拆分成四个节拍来单独计算。这样计算的结果能够更好的区分出一些听起来很快但实际上节拍并没有那么快的特殊音乐,比如王力宏的《大城小爱》,其听觉上比较快,可是它是一首慢速的歌曲。
被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数Rry(τ)的计算公式为:
,其中,x(t)和y(t)分别为被检测音乐的音频信号与预设的音乐节奏模型的音频信号,T为积分平均时间,t为时间,τ为时移变量。
步骤S105:根据被检测音乐的类型及互相关函数曲线的各波峰位置在被检测音乐中出现的次数而得到被检测音乐中包含的预设的音乐节奏模型的数量。
本步骤中,音乐的类型包括英文歌曲、中文歌曲等,可以按照互相关函数曲线的波峰位置的函数值对波峰进行排序,而获得函数值最大的波峰位置为第一波峰,函数值次之的波峰位置为第二波峰,以此类推,从而获得第三波峰、第四波峰,…,第n波峰等。由于各种歌曲,例如中英文歌曲作曲的调性、惯用法以及曲风相关的音乐特性都不尽相同,从而最终的节奏判断的依据也很难一概而论。一般来说,中文歌曲检测过程不取第一波峰来判断被检测音乐中包含的预设节奏模型的数量,而是取次高甚至第三高度的波峰来作为节奏模型数量检测的依据,经过大量的实验,发现中文歌曲采用第二波峰作为被检测音乐中包含的预设的音乐节奏模型的数量能够取得较高的检测准确率,而英文歌曲则采用第一波峰作为被检测音乐中包含的预设的音乐节奏模型的数量可以取得较好的节奏检测效果。实验结果揭示,英文歌曲的节奏检测准确率达到80%以上,中文歌曲的节奏检测准确率也可以达到70%以上。由此,本步骤中,若被检测音乐为中文歌曲,则将第二波峰在被检测音乐中出现的次数作为被检测音乐中包含的预设的音乐节奏模型的数量,若被检测的音乐为英文歌曲,则将第一波峰在被检测音乐中出现的次数作为被检测音乐中包含的预设的音乐节奏模型的数量。
步骤S107:将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏。
本步骤中,预设节奏信息可以为音乐包含的预设的音乐节奏模型的数量与音乐的节奏的对应关系,例如对应关系可以为音乐包含的音乐节奏模型的数量为60,其对应的音乐的节奏代表一种轻、重、缓、急、紧凑、或松散的音乐节奏,若本步骤中被检测音乐中包含的音乐节奏模型的数量也为60,则确定被检测音乐的节奏即为对应关系中的相应的音乐节奏。
在本发明的实施例中,本发明通过计算该被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数,并根据被检测音乐的类型及互相关函数曲线的各波峰位置在被检测音乐中出现的次数而得到被检测音乐中包含的预设的音乐节奏模型的数量,再将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏,从而可以对音乐节奏进行自动检测,避免音乐运营人员进行人工检测音乐节奏所花费的大量时间。此外,经过实际测试得知本发明音乐节奏的检测完全在合理的计算复杂度之内,比如针对一首320K的mp3格式歌曲进行检测,除去解码为预定格式,例如wav格式的时间,即仅包括针对wav格式的音乐进行检测的时间约为0.8~1.5秒,从而提高了音乐节奏检测的速度,并且能够取得较高的检测准确率,完全可以应用于音乐工作中涉及到的大批量音乐节奏检测。
图2是本发明实施例提出的互相关函数与时间的对应关系曲线的示意图。图3是本发明实施例提出的互相关函数与节拍的对应关系曲线的示意图。图4是本发明实施例提供的音乐节奏检测方法的步骤流程图。图4是在图1的基础上改进而来的。请参阅图4,本发明实施例的音乐节奏检测方法可包括以下步骤S401-S411:
步骤S401:获取被检测音乐的音频信号。
本步骤中,被检测音乐的音频信号为被解码为预定格式的音频信号。预定格式可以包括wav格式、pcm格式等。而被检测音乐的格式可以为任意格式,例如mp3、md、cd、mod格式等。主要是因为音乐的音频信号通常为压缩的信号,因此需要解码(即解压缩)为wav等格式的音频信号,才能再进行一般的信号处理。
步骤S403:计算被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数,以获得互相关函数与时间的对应关系曲线。
本步骤中,预设的音乐节奏模型可以从一段音乐中选取基本的节拍模型,例如Dum–Du–Dum–Dum之类的节拍模型。在计算整体音乐的节拍的时候,将节拍模型的整体“Dum–Du–Dum–Dum”作为一个节拍(BeatsPerMinutes,BPM),而非拆分成四个节拍来单独计算。这样计算的结果能够更好的区分出一些听起来很快但实际上节拍并没有那么快的特殊音乐,比如王力宏的《大城小爱》,其听觉上比较快,可是它是一首慢速的歌曲。
被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数Rry(τ)的计算公式为:,其中,x(t)和y(t)分别为被检测音乐的音频信号与预设的音乐节奏模型的音频信号,T为积分平均时间,t为时间,τ为时移变量。互相关函数与时间的对应关系曲线如图2所示。
步骤S405:获取互相关函数曲线上大于阈值的各波峰位置及各波峰位置对应的时间。
本步骤中,根据互相关函数的定义可知,在互相关函数的每个波峰位置处表示被检测音乐的音频信号与预设的音乐节奏模型的音频信号最相似,即每个波峰的出现都表示在该波峰对应的时间点上,有一个预设的音乐节奏模型重复出现,也就是一个可以被当作一个整体节拍,例如“Dum–Du–Dum–Dum”的情况出现,波峰出现的时间可以用于计算预设音乐节奏模型重复出现的时间,波峰的高度可以用于表示预设的音乐节奏模型重复出现的程度,比如波峰越高,则表示预设的音乐节奏模型重复出现的越明显。计算互相关函数曲线上的各波峰位置可以采用如下方式:若曲线上某一时间点处互相关函数的函数值大于前一时间及后一时间的函数值,则此时间点处对应曲线上的点即为互相关函数曲线上的各波峰位置。如图2所示,阈值可以设置为4。图2中,在895毫秒(msec)和1780毫秒(msec)的位置分别出现了一个较为明显的波峰。
步骤S407:根据各波峰位置对应的时间计算出各波峰位置在被检测音乐中出现的次数。
本步骤中,各波峰位置在被检测音乐中出现的次数等于被检测音乐的时间除以各波峰位置对应的时间。如图2所示,第一波峰位置A(波峰最高,即最强的波峰位置)及第二波峰位置B(波峰的高度次之,即第二强的波峰位置)对应的时间分别为1785毫秒(msec)及895毫秒(msec),分别表示第一波峰位置及第二波峰位置每隔1785毫秒及895毫秒会出现一次,即每隔1785毫秒及895毫秒预设音乐节奏模型会出现一次,假设被检测音乐的时间为1分钟,则可以计算出第一波峰位置在被检测音乐中出现的次数为60000/1780=33.7次,即一个整体节拍(例如“Dum–Du–Dum–Dum”)出现的次数≈33.7次,第二波峰位置在被检测音乐中出现的次数为60000/895≈67次,即一个整体节拍(BeatsPerMinutes,BPM)出现的次数≈67次,如图3所示为互相关函数与节拍的对应关系曲线,从图3中可以看出,曲线点a、b、c、d对应的整体节拍出现的次数分别为33.7次、67次、135次、445次。
步骤S409:根据被检测音乐的类型及互相关函数曲线的各波峰位置在被检测音乐中出现的次数而得到被检测音乐中包含的预设的音乐节奏模型的数量。
本步骤中,音乐的类型包括英文歌曲、中文歌曲等,可以按照波峰位置的函数值对波峰进行排序,而获得函数值最大的波峰位置为第一波峰,函数值次之的波峰位置为第二波峰,以此类推,从而获得第三波峰、第四波峰,…,第n波峰等。实际中,到底是取第一波峰位置在被检测音乐中出现的次数≈33.7作为被检测音乐中包含的预设节奏模型的数量,还是应该取第二波峰位置在被检测音乐中出现的次数≈67作为被检测音乐的中包含的预设节奏模型的数量,或者是由图2中的第三波峰,第四波峰等用上述方法计算得到的第三波峰位置在被检测音乐中出现的次数≈135,第四波峰位置在被检测音乐中出现的次数≈445等作为被检测音乐中包含的预设节奏模型的数量是需要视情况而定。由于各种歌曲,例如中英文歌曲作曲的调性、惯用法以及曲风相关的音乐特性都不尽相同,从而最终的节奏判断的依据也很难一概而论。一般来说,中文歌曲检测过程不取第一波峰来判断被检测音乐中包含的预设节奏模型的数量,而是取次高甚至第三高度的波峰来作为节奏模型数量检测的依据,经过大量的实验,发现中文歌曲采用第二波峰作为被检测音乐中包含的预设的音乐节奏模型的数量能够取得较高的检测准确率,而英文歌曲则采用第一波峰作为被检测音乐中包含的预设的音乐节奏模型的数量可以取得较好的节奏检测效果。实验结果揭示,英文歌曲的节奏检测准确率达到80%以上,中文歌曲的节奏检测准确率也可以达到70%以上。由此,本步骤中,若被检测音乐为中文歌曲,则将第二波峰在被检测音乐中出现的次数作为被检测音乐中包含的预设的音乐节奏模型的数量,若被检测的音乐为英文歌曲,则将第一波峰在被检测音乐中出现的次数作为被检测音乐中包含的预设的音乐节奏模型的数量。
步骤S411:将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏。
本步骤中,预设节奏信息可以为音乐包含的预设的音乐节奏模型的数量与音乐的节奏的对应关系,例如对应关系可以为音乐包含的音乐节奏模型的数量为60,其对应的音乐的节奏代表一种轻、重、缓、急、紧凑、或松散的音乐节奏,若本步骤中被检测音乐中包含的音乐节奏模型的数量也为60,则确定被检测音乐的节奏即为对应关系中的相应的音乐节奏。
在本发明的实施例中,本发明通过获取互相关函数曲线上大于阈值的各波峰位置及各波峰位置对应的时间,计算出各波峰位置在被检测音乐中出现的次数,从而得到被检测音乐中包含的预设的音乐节奏模型的数量,再将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏,从而可以对音乐节奏进行自动检测,避免音乐运营人员进行人工检测音乐节奏所花费的大量时间。此外,经过实际测试得知本发明音乐节奏的检测完全在合理的计算复杂度之内,比如针对一首320K的mp3格式歌曲进行检测,除去解码为预定格式,例如wav格式的时间,即仅包括针对wav格式的音乐进行检测的时间约为0.8~1.5秒,从而提高了音乐节奏检测的速度,并且能够取得较高的检测准确率,完全可以应用于音乐工作中涉及到的大批量音乐节奏检测。
图5是本发明实施例提出的音乐节奏检测装置的主要架构框图。请参阅图5,音乐节奏检测装置包括:音频获取模块501、互相关计算模块503以及节奏确定模块505。
更具体地,音频获取模块501,用于获取被检测音乐的音频信号。
互相关计算模块503,用于计算被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数。
其中,被检测音乐的音频信号与预设的音乐节奏模型的音频信号之间的互相关函数Rry(τ)的计算公式为:
,其中,x(t)和y(t)分别为被检测音乐的音频信号与预设的音乐节奏模型的音频信号,T为积分平均时间,t为时间,τ为时移变量。
此外,互相关计算模块503,还用于获得互相关函数与时间的对应关系曲线。
节奏确定模块505,用于根据被检测音乐的类型及该互相关函数曲线的各波峰位置在被检测音乐中出现的次数而得到被检测音乐中包含的预设的音乐节奏模型的数量,并将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏。
其中,预设节奏信息可以为音乐包含的预设的音乐节奏模型的数量与音乐的节奏的对应关系。
此外,音乐节奏检测装置还可以包括:波峰获取模块507。
波峰获取模块507,用于获取互相关函数曲线上大于阈值的各波峰位置及各波峰位置对应的时间,并根据各波峰位置对应的时间计算出各波峰位置在被检测音乐中出现的次数。
其中,各波峰位置在被检测音乐中出现的次数等于被检测音乐的时间除以各波峰位置对应的时间。
在本发明的实施例中,本发明通过获取互相关函数曲线上大于阈值的各波峰位置及各波峰位置对应的时间,计算出各波峰位置在被检测音乐中出现的次数,从而得到被检测音乐中包含的预设的音乐节奏模型的数量,再将被检测音乐中包含的预设的音乐节奏模型的数量与预设节奏信息进行比对而确定被检测音乐的节奏,从而可以对音乐节奏进行自动检测,避免音乐运营人员进行人工检测音乐节奏所花费的大量时间。此外,经过实际测试得知本发明音乐节奏的检测完全在合理的计算复杂度之内,比如针对一首320K的mp3格式歌曲进行检测,除去解码为预定格式,例如wav格式的时间,即仅包括针对wav格式的音乐进行检测的时间约为0.8~1.5秒,从而提高了音乐节奏检测的速度,并且能够取得较高的检测准确率,完全可以应用于音乐工作中涉及到的大批量音乐节奏检测。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。