音频分析方法、装置、计算设备和存储介质与流程
本发明实施例涉及数据处理技术领域,尤其涉及一种音频分析方法、装置、计算设备和存储介质。
背景技术:
在音乐播放软件、随音乐运动的机器人以及基于音乐的互动装置中,为了配合音乐做出有表现力的视觉效果或物理动作,需要对音乐的节拍和强弱程度进行分析,然后根据分析结果,进行相应的表现。
当前主流的关于音乐节拍的分析方法有如下两种:
方案1:基于重音计数的节拍及起伏分析。对一定时间段内音乐的重音进行记录,统计重音最常出现的时间间隔,由时间间隔计算得出音乐的节拍。该方法是目前最为广泛使用的音乐节拍分析方法,但对于复杂度较高的音乐,该方法的节拍识别准确性不够理想,且初期收敛速度较慢,往往音乐开始播放15秒后才能给出分析结果。
方案2:基于人工神经网络技术。利用机器学习技术,在计算机中建立合适的神经网络,使用大量音乐中一定时间段内的所有数据作为样本,预标记好的音乐节拍作为输出,训练出用于分析音乐节拍的人工神经网络,从而进行音乐分析。该方法能够带来相对准确的分析结果,但训练需要的样本数据较多,准备起来颇具难度。此外,人工神经网络对计算能力的要求较高,因此,计算时占用系统资源也较多,并不适合移动终端和机器人等计算能力有限的设备。
技术实现要素:
本发明实施例提供一种音频分析方法、装置、计算设备和存储介质,以提高音频节拍的识别准确性,更好地兼容不同的音乐风格,减小音频实时分析的计算量。
第一方面,本发明实施例提供了一种音频分析方法,该方法包括:
对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔;
对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,所述每种重音时间间隔对应于时长匹配的至少一个重音时间间隔;
将所述权重满足收敛条件的重音时间间隔,确定为所述目标音频的节拍间隔。
第二方面,本发明实施例还提供了一种音频分析装置,该装置包括:
强度识别模块,用于对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔;
权重确定模块,用于对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,所述每种重音时间间隔对应于时长匹配的至少一个重音时间间隔;
节拍间隔确定模块,用于将所述权重满足收敛条件的重音时间间隔,确定为所述目标音频的节拍间隔。
第三方面,本发明实施例还提供了一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任一实施例所述的音频分析方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例所述的音频分析方法。
本发明实施例通过随着目标音频的实时播放,依次对多个采样周期内的音频片段分别进行强度识别,在对每种音频间隔的出现情况进行统计过程中,同时确定重音时间间隔的权重,利用权重收敛条件确定目标音频的节拍间隔,相比于单纯进行重音计数的方式,重音时间间隔的权重可以将不同重音时间间隔在音频中的重要程度进行明显的层次化区分,并且随着每种重音时间间隔的权重的累加,可以增加每种重音时间间隔的在音频中重要程度的稳定性,从而提高确定节拍间隔的准确性,并能够兼容不同的音乐风格;并且重音时间间隔的权重分配,可以将非重要的重音时间间隔提早排除,从而加快音频分析结果的收敛速度;同时,由于本申请技术方案在对音频进行实时分析过程中,不涉及神经网络的利用,减小了音频实时分析的计算量。
附图说明
图1是本发明实施例一提供的音频分析方法的流程图;
图2是本发明实施例二提供的音频分析方法的流程图;
图3是本发明实施例三提供的音频分析方法的流程图;
图4是本发明实施例四提供的音频分析装置的结构示意图;
图5是本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的音频分析方法的流程图,本实施例可适用于在任意风格或者任意复杂程度的音频的播放过程中,对音频信息(包括重音、节拍等)进行实时分析的情况。本实施例方法可以由音频分析装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在任意的计算设备上,计算设备包括但不限于移动终端、机器人或者智能装饰设备等,该机器人可以是能够随着音乐节拍进行舞动的机器人。
如图1所示,本实施例提供的音频分析方法可以包括:
s110、对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔。
本实施例中,目标音频可以是任意的需要进行实时分析的音频处理对象,采样周期是指每次分析处理的音频时间长度。在对一个完整音频进行实时分析处理过程中,每个采样周期的时间长度以及每个采样周期的确定方式均可以保持不变,并且随着音频的实时播放,通过播放指针分别向前与向后移动一定时间间隔,将所截取的时间段作为一个采样周期。例如,当前播放指针位于音频播放的第50s,采样周期设置为2s,则将当前播放指针分别向前和向后移动相同的时间间隔1s,对第49s至第51s之间的音频片段进行强度识别,得到该采样周期内的重音时间间隔。每个重音时间间隔是指相邻的两个音频重音之间对应的时间间隔。并且,本实施例中多个(指至少两个,具体数量可适应性设置)采样周期是指音频播放过程中所确定的多个连续采样周期。
s120、对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,每种重音时间间隔对应于时长匹配的至少一个重音时间间隔。
对每个采样周期内的音频片段进行重音识别后,可以得到至少一个重音时间间隔。将时长匹配的至少一个重音时间间隔确定为一种重音时间间隔,即指在时间精度误差范围内,将时间长度相同或者几乎接近相同的各个重音时间间隔确定为一种重音时间间隔。
按照重音时间间隔的种类,对重音时间间隔的出现情况进行统计,包括:将多个采样周期内每个采样周期内的音频片段均进行强度识别后,将得到的所有重音时间间隔按照种类进行出现情况的整体统计;也可以包括:在确定出每个采样周期内的重音时间间隔后,对当前采样周期内的各种重音时间间隔的出现情况进行统计,然后将各个采样周期内的重音时间间隔的统计结果进行汇总,相当于以采样周期为单位进行动态统计,从而得到对应多个采样周期的各种重音时间间隔的总的统计结果。上述两种统计过程中均包括在基于历史采样周期的历史统计结果的基础上进行每种重音时间间隔的统计结果的累加。
同理,根据统计结果确定每种重音时间间隔的权重,包括:在多个采样周期内,按照所有种类的重音时间间隔的整体出现情况的统计结果,确定每种重音时间间隔的权重;也包括:在对每个采样周期内的各种重音时间间隔的出现情况进行统计的同时,确定每种重音时间间隔的权重,然后将多个采样周期内的每种重音时间间隔的权重进行合并(包括权重的累加),得到每种重音时间间隔最终的权重。
对每种重音时间间隔的出现情况进行统计,得到的统计结果可以包括但不限于每种重音时间间隔的出现次数、每种重音时间间隔出现的密集程度以及重复出现的周期等。根据统计结果为每种重音时间间隔分配权重,例如出现次数越多,分配权重越大;出现密集程度越强,分配权重越大;重复出现的周期越短,分配权重越大。当统计结果包括多种情况时,针对每种情况,均可为重音时间间隔分配一个权重值,例如当统计结果同时包括每种重音时间间隔的出现次数、每种重音时间间隔出现的密集程度以及重复出现的周期时,每种重音时间间隔的权重可以至少包括三个值。
可选的,根据统计结果确定每种重音时间间隔的权重,还包括:根据每种重音时间间隔的属性,确定每种重音时间间隔的权重,该属性包括每种重音时间间隔的频率信息以及每种重音时间间隔与参考重音时间间隔的差异程度。每种重音时间间隔的频率信息包括每种重音时间间隔对应的频率与参考频率(例如预设的音频主频率)的差异程度,以及每种重音时间间隔对应的频率与人耳的敏感频率范围的重合度。例如,重音时间间隔对应的频率与预设的音频主频率的差异程度越小,重音时间间隔的权重越大;重音时间间隔对应的频率与人耳的敏感频率范围的重合度越大,重音时间间隔的权重越大;反之越小。此外,每种重音时间间隔的权重确定过程还可以包括根据每种重音时间间隔是否0,确定其权重,例如重音时间间隔不为0,分配较大权重,否则分配较小的权重。针对每种考虑因素,均可为重音时间间隔分配一个权重值。
s130、将权重满足收敛条件的重音时间间隔,确定为目标音频的节拍间隔。
权重用于表示每种重音时间间隔在目标音频中出现的重要程度。权重收敛条件可以是指重音时间间隔的权重值或者权重累计值大于或等于预设权重阈值。当基于重音时间间隔的出现情况的统计结果和/或重音时间间隔的属性所确定的权重满足收敛条件,该重音时间间隔即目标音频的节拍间隔。
通话考虑重音时间间隔在多个采样周期内的权重,可以降低音频重音的波动对最终节拍间隔确定结果的影响,使得节拍间隔的确定结果更加稳定;同时提升对相近音频节拍的兼容性,并兼容不同风格的音乐;此外,利用权重将不同重音时间间隔进行区分,可以加快对非重要的重音时间间隔的筛选速度,从而尽快得到目标音频的节拍间隔,即可以加快音频分析结果的收敛速度。例如,本实施例方案可以在音频播放的第4秒左右得出音频分析结果,而传统方法则需要在音频开始播放15秒后才能给出分析结果。
可选的,该方法还包括:根据节拍间隔,确定目标音频中单位时间内包含的节拍数量。单位时间除以音频节拍间隔即单位时间内包含的节拍数量。
在上述技术方案的基础上,进一步的,在对目标音频在多个采样周期内的音频片段分别进行强度识别之前,该方法还包括:
对多个采样周期内的原始音频分别进行分频处理;
将分频后的各种频率下的音频均作为目标音频,或将从各种频率中筛选后的满足预设频率条件的目标频率的音频作为目标音频。
其中,满足预设频率条件是指音频频率不属于噪声频率、起伏规律较明显以及属于人耳敏感的频率范围,通过频率筛选可以过滤掉人耳不敏感的频段以及起伏规律不明显的人声频段对于重音时间间隔统计的影响,提高音频节拍间隔的识别准确率,减少音频分析的计算量。
分频得到的每个目标音频对应一个频率。每次参与强度识别的目标音频的数量可以是一个或者至少两个。如果每次参与强度识别的目标音频数量只有一个,则经过在多个采样周期内的强度识别以及重音时间间隔的权重确定之后,得到的目标音频的节拍间隔即原始音频中一个频率下的音频节拍间隔,此时需要将原始音频中各个频率下的目标音频的节拍间隔进行汇总,然后依据每个节拍间隔的权重,从多个目标音频的节拍间隔中确定出原始音频的节拍间隔。如果每次参与强度识别的目标音频包括原始音频中各个频率下的音频,则在重音时间间隔统计与权重确定过程中,即综合考虑了各个频率的音频,最终基于权重收敛条件确定出的目标音频的节拍间隔即原始音频的节拍间隔。
可选的,通过对每个采样周期内的原始音频进行分频处理与强度识别后,得到的每种重音时间间隔对应于一种频率下时长匹配的至少一个重音时间间隔,即重音时间间隔可以按照频率进行区分,在统计每种重音时间间隔的出现情况以及权重时,即使两个重音时间间隔的时长匹配,由于对应不同的频率,也属于两种类型的重音时间间隔。
通过将原始音频的分频处理、重音时间间隔的统计与重音时间间隔的权重确定进行综合利用,实现了对各频率下重音时间间隔的全面考虑,可以避免单纯通过分频筛选便将特定频率下可能存在的重音时间间隔全部加以排除的现象,因而可以保证音频重音时间间隔分析的准确性。
下面以参与强度识别的目标音频包括多个频率下的音频为例,对本实施例中重音时间间隔的出现情况统计过程与权重确定过程的一种实现情况进行示例性说明:
在每个采样周期内,通过对原始音频进行分频处理与强度识别,得到每种频率下的重音时间间隔后,可以按照频率划分,依次进行存储,例如存储在计算设备缓存中,存储过程同时统计每种重音时间间隔相对该频率的出现次数。随着音频播放指针的移动,实时确定的每个采样周期中原始音频经历相同的处理流程,利用当前采样周期内得到的每种频率下的当前重音时间间隔,对当前采样周期之前的所有采样周期内累计得到的历史重音时间间隔进行更新统计,包括重音时间间隔的增加以及重音时间间隔的剔除,这与重音时间间隔存储区的存储策略有关,例如,如果每种频率下存储的重音时间间隔的次数有限制,在达到次数要求时,需要清除在前得到的一部分重音时间间隔。
示例性的,截止到对当前采样周期(例如2s)相邻的上一个采样周期内的原始音频进行分频处理与强度识别后,得到频率f1、f2和f3下的各种历史重音时间间隔,存储信息如下:
f1:300ms(2次),400ms(1次),330ms(2次)
f2:450ms(1次),550ms(2次),500ms(1次)
f3:200ms(2次),600ms(2次),450ms(1次)
其中,每种历史重音时间间隔后的括号内的数字表示重音时间间隔针对每种频率出现的次数。如果此处所述上一个采样周期是音频实时分析过程中的第一个采样周期,则上述括号内的数字可以表示历史重音时间间隔在第一个采样周期内针对相应频率的出现次数;如果此处所述上一个采样周期不是音频实时分析过程中的第一个采样周期,即此上一个采样周期之前还存在已有的采样周期,则上述括号内的数字表示历史重音时间间隔截止到此上一个采样周期,针对相应频率所出现的累计次数。在每个处理周期内,重音时间间隔每出现一次,累计次数便增加一次。
对当前采样周期2s内的原始音频进行分频处理与强度识别后,得到频率f1、f2、f3和f4下的当前重音时间间隔如下(下面重音时间间隔后的出现次数表示在当前采样周期内的出现次数):
f1:300ms(1次),330ms(2次),450ms(1次)
f2:550ms(2次),500ms(1次),300ms(1次)
f3:200ms(3次),600ms(2次)
f4:700ms(1次),200ms(2次)
利用当前重音时间间隔对历史重音时间间隔进行更新统计后,重音时间间隔存储区中存储的重音时间间隔信息,更新为:
f1:300ms(3次),400ms(1次),330ms(4次),450ms(1次)
f2:450ms(1次),550ms(4次),500ms(2次),300ms(1次)
f3:200ms(5次),600ms(4次),450ms(1次)
f4:700ms(1次),200ms(2次)
在利用当前重音时间间隔对历史重音时间间隔进行更新统计的过程中,进行了重音时间间隔的新增以及已有重音时间间隔的出现次数的增加。随着重音时间间隔存储区内重音时间间隔数据的增加,可以采用每隔特定时间(可以根据实际情况进行设置)执行重音时间间隔的剔除,例如将每种频率下出现次数最少的重音时间间隔从存储区中剔除等。
在利用当前重音时间间隔对历史重音时间间隔进行更新统计的同时,根据重音时间间隔权重的确定方式,对更新统计后的每种历史重音时间间隔的权重进行更新。例如,对于频率f1下的历史重音时间间隔300ms,按照其在当前采样周期之前的所有采样周期内的累计出现次数,确定一个权重值x1;根据频率f1与参考频率的差异,确定一个权重值x2;根据300ms与参考重音时间间隔的差异程度,确定一个权重值x3;根据频率f1与人耳的敏感频率范围的重合度,确定一个权重x4,则截止到当前采样周期的上一采样周期,历史重音时间间隔300ms对应的权重分配可以表示为[x1,x2,x3,x4];如果在当前采样周期内,再次出现了频率f1下的重音时间间隔300ms,即其累计出现次数增加,根据当前的累计出现次数,为其分配一个权重x5(x5大于x1),则重音时间间隔300ms对应的权重分配可以更新表示为[x1,x2,x3,x4,x5],同时权重的累计值增加。每种重音时间间隔的权重集合中包括的权重数量可以是固定值(可适应性设置),当随着每种重音时间间隔的权重更新,达到要求数量时,可以将在前得到的权重值进行剔除。
随着音频的实时播放,当前采样周期发生变化时,仍可采用上述处理流程对新的当前采样周期和历史采样周期内的重音时间间隔进行处理。
在上述技术方案的基础上,可选的,对多个采样周期内的原始音频分别进行分频处理,包括:
按照分频拆分策略,对多个采样周期内的原始音频分别进行拆分;
对拆分后音频分别进行傅里叶变换,并分别按照频率对各个傅里叶变换结果进行合并,得到各种频率下的音频,其中,傅里叶变换包括快速傅里叶变(fft,fastfouriertransform)。
分频拆分策略用于定义每个采样周期内原始音频的拆分方式,例如可以包括拆分得到的每个原始音频子片段的时间长度和拆分数量。例如,可以将2s的原始音频拆分为20个原始音频子片段,每个原始音频子片段对应0.1s;假设每个原始音频子片段中包括3个频率f1、f2和f3,对每个原始音频子片段进行傅里叶变换,可以分别得到针对频率f1、f2和f3的音频强度子数据;然后,将频率f1下的20份音频强度子数据按照时间轴进行合并,从而得到当前采样周期内频率f1下的完整音频强度数据;同理,分别对频率f2和f3下的20份音频强度子数据按照时间轴进行合并,得到当前采样周期内频率f1和f2下的完整音频强度数据。通过进行分频拆分处理,可以减少每次分频处理的计算量,从而保证音频实时分析的流畅度。
本实施例技术方案通过随着目标音频的实时播放,依次对多个采样周期内的音频片段分别进行强度识别,在对每种音频间隔的出现情况进行统计过程中,同时确定重音时间间隔的权重,利用权重收敛条件确定目标音频的节拍间隔,相比于单纯进行重音计数的方式,重音时间间隔的权重可以将不同重音时间间隔在音频中的重要程度进行区分,并且随着每种重音时间间隔的权重的累加,可以增加每种重音时间间隔的在音频中重要程度的稳定性,从而提高确定节拍间隔的准确性,并能够兼容不同的音乐风格;并且重音时间间隔的权重分配,可以将非重要的重音时间间隔提早排除,从而加快音频分析结果的收敛速度;同时,由于本申请技术方案在对音频进行实时分析过程中,不涉及神经网络的利用,减小了音频实时分析的计算量。
实施例二
图2是本发明实施例二提供的音频分析方法的流程图,本实施例是在上述实施例的基础上进一步进行优化。如图2所示,该方法可以包括:
s210、对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔。
s220、针对目标音频在每个采样周期中的音频片段,利用预设一维卷积核对音频片段的音频强度数据的峰值进行卷积计算,其中,目标音频的数量为至少两个,分别对应于原始音频分频处理后不同频率的音频。
本实施例中,卷积计算的目的在于确认每次卷积计算对应的采样周期内处于中间时刻的强度峰值是否属于音频重音。由于采样周期是随着音频播放时播放指针的实时移动而实时确定的,并且本实施例中每个采样周期均是通过播放指针向前和向后同时移动相同的时间间隔而确定,对应于当前采样周期而言,当前采样周期的中间时刻即指当前时刻,随着播放指针的实时移动,即实现对音频重音的实时确定。每个采样周期内可以包括至少两种频率的音频片段。针对每个采样周期内每种频率下的音频片段,每次参与卷积计算的强度数据峰值的数量本实施例不作具体限定,可以根据数据处理需求进行适应性设置。预设一维卷积核中包括的数值的数量与每次参与卷积计算的峰值数量相同。
预设一维卷积核的取值和不同频率下音频强度数据中不同峰值的区分程度以及峰值与谷值的差异程度相关,不同的频率可以对应不同的一维卷积核。例如,在某频率下,如果音频强度数据中不同峰值之间的区分程度较小和/或峰值与谷值之间的差异程度较小(即强度数据变化比较平缓),则在设计卷积核的过程中,可以将位于中间数量的值设置较大的值,而位于中间数量左右两侧的值分别设置为依次减小的值,并且数值之间的变化差异比较明显,通过卷积核的合理设计对不同峰值数据的变化趋势进行检测;如果不同峰值之间的区分程度较大和/或峰值与谷值之间的差异程度较大(即强度数据变化差异比较明显),则在设计卷积核的过程中,除了保持将位于中间数量的值设置为较大的值之外,位于中间数量两侧的值之间的变化差异程度可以降低。
s230、针对每种频率的目标音频,根据卷积计算结果与频率对应的预设阈值的关系,确定每种频率下的音频强度数据,在每个采样周期内中间时刻的峰值是否对应音频重音,其中,卷积计算结果用于表征音频重音的明显程度。
其中,每种频率对应的预设阈值可以根据对重音的确认需求(例如重音确认的准确性等)进行适应设置,本实施例不作具体限定。在每个采样周期的每种频率下,如果卷积计算结果大于或等于预设阈值,则该卷积计算对应的时间周期内处于中间时刻的峰值属于当前频率下的音频重音,否则不属于。
示例性的,针对当前采样周期内某频率f下的音频强度数据,参与当前卷积计算的音频强度峰值依次为:9、10、9、11、1、8和0(此处未考虑强度数据的单位),对应该频率f设计的一维卷积核为[-8,1,2,5,2,1,-8],则卷积计算结果(将对应位置的峰值与卷积值相乘后求和,再求平均)可以表示为:
{9x(-8)+10x1+9x2+11x5+1x2+8x1+0x(-8)}/7=3;
卷积计算结果3大于预设阈值2,则确定当前次卷积计算对应的时间周期内处于中间时刻的峰值,在频率f下对应于音频重音。卷积计算的结果可以用于表征音频重音的明显程度,卷积计算结果越大,音频重音越明显;卷积计算结果越小,音频重音越不明显。
此外,本实施例通过音频强度峰值的卷积计算还可以解决相邻峰值是否对应音频重音的识别问题。例如,在某种频率下的音频强度数据中,连续三个强度值都对应当前音频片段的重音,即三个强度值均属于峰值,而采用现有重音识别技术,当识别到相邻峰值中的第一个峰值属于音频重音后,便默认另一个峰值不属于音频重音,然而,本实施例中通过卷积核的合理设计,可以将该频率下相邻的峰值是否对应于音频重音均识别出来,从而保证了音频重音识别的准确性。再者,利用预设一维卷积核进行音频重音识别过程中,还可以对每种频率下音频强度数据的峰值变化趋势进行检测,避免音频强度峰值轻微波动对音频重音的识别准确性的影响。
s240、如果每个采样周期内中间时刻的峰值对应于音频重音,则根据该峰值与相应频率下的音频强度数据的谷值的差值,确定每种频率下的音频节拍强弱程度。
通过卷积计算,每个采样周期内中间时刻对应不同频率的峰值可能均对应于强度重音,根据每种频率下对应于音频重音的峰值与该频率下的音频强度数据的谷值,进行差值计算,从而确定每种频率下的音频节拍强弱程度。
如果每个采样周期内每种频率下的音频强度数据中,谷值与对应于音频重音的峰值之前的差值较大,则可以初步评估该频率下的音频节拍性较强(即节奏较强),反之,节拍性较弱(即节奏较弱)。通过在音频播放过程中,对每种频率下的音频节拍强弱程度的实时分析,可以为相关的下游业务提供更多的音频信息支持,例如,可以根据不同频率下分析得到的音频节拍强弱程度,为基于该音频进行跳舞的机器人设计不同的舞蹈动作,例如不同风格或者不同复杂度的舞蹈动作等。
需要说明的是,在确定出目标音频的节拍间隔之前,每个采样周期内的音频片段均需要进行强度识别与卷积计算,并且强度识别与卷积计算这两种操作之间不存在执行顺序上的限定,即不应当将图2中所示出的逻辑顺序理解为对本实施例的具体限定。
s250、对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,每种重音时间间隔对应于时长匹配的至少一个重音时间间隔。
s260、将权重满足收敛条件的重音时间间隔,确定为目标音频的节拍间隔。
本实施例的技术方案通过在音频实时分析过程中,对每个采样周期内的音频片段均进行强度识别与卷积计算,在确定目标音频的节拍间隔的同时,对每个采样周期内中间时刻的峰值是否对应音频重音进行确定,实现了在实时分析音频节拍的同时,对音频重音进行实时验证的效果,提高了音频重音的识别准确性;并且实现了实时分析音频节拍强弱程度的效果,可以为下游业务提供音频信息支持;解决了现有技术中音频分析涉及的计算量较大以及音频节拍识别不准确的问题,减少了音频实时分析的计算量,提高了音频节拍的识别准确性,并能够更好地兼容不同的音乐风格。
实施例三
图3是本发明实施例三提供的音频分析方法的流程图,本实施例是在上述实施例的基础上进一步进行优化。如图3所示,该方法可以包括:
s310、对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔。
s320、针对目标音频在每个采样周期中的音频片段,利用预设一维卷积核对音频片段的音频强度数据的峰值进行卷积计算,其中,目标音频的数量为至少两个,分别对应于原始音频分频处理后不同频率的音频。
s330、针对每种频率的目标音频,根据卷积计算结果与频率对应的预设阈值的关系,确定每种频率下的音频强度数据,在每个采样周期内中间时刻的峰值是否对应音频重音,其中,卷积计算结果用于表征音频重音的明显程度。
s340、如果每个采样周期内中间时刻的峰值对应于音频重音,则根据每个采样周期的中间时刻与历史中间时刻的差值,确定每种频率下的卷积计算结果各自对应的重音时间间隔。
其中,历史中间时刻是指与每个采样周期相邻且中间时刻处的峰值对应于音频重音的上一个采样周期的中间时刻。
本实施例中,在音频实时分析过程中,针对每一个采样周期,均执行每种频率下音频片段的强度识别以及音频强度峰值的卷积计算,并可以将每次强度识别得到的重音时间间隔按照频率划分,存储至重音时间间隔存储区中,同时,根据卷积计算也可以得到重音时间间隔,将依据卷积计算得到的重音时间间隔在重音时间间隔存储区中进行匹配,然后将对应的卷积计算结果按照与重音时间间隔的对应关系存储至相应的频率下。
s350、将各频率下对应相同重音时间间隔的卷积计算结果,按照该重音时间间隔在各频率下的出现总次数,进行均值计算,得到与该重音时间间隔对应的平均强度数据。
即,将针对同一重音时间间隔的所有频率下的卷积计算结果求和后,再根据该重音时间间隔的累计出现次数求平均,得到该重音时间间隔对应的平均强度数据
其中,∑yn表示对应每种重音时间间隔的所有卷积计算结果之和,n表示每种重音时间间隔在各种频率下的出现次数之和。该平均强度数据反应了该重音时间间隔内各频率下的音频强度的平均水平。得到平均强度数据之后,可以将其存储在重音时间间隔存储区。相当于,在重音时间间隔存储区内,针对每种重音时间间隔,存储的信息可以包括但不限于:重音时间间隔的值、在各频率下的出现次数、权重值以及针对各频率的平均强度数据。
针对每个采样周期,当实时确定出每种频率下的卷积计算结果各自对应的重音时间间隔后,便可以结合在每个采样周期之前历史累计的各种重音时间间隔对应的卷积计算结果,实时计算每种重音时间间隔对应的平均强度数据;也可以在目标音频的节拍间隔确定过程中,将至少两个连续采样周期内确定的每种频率下的卷积计算结果各自对应的重音时间间隔,结合在此至少两个连续采样周期之前历史累计的各种重音时间间隔对应的卷积计算结果,计算当前每种重音时间间隔对应的平均强度数据,即进行每种重音时间间隔对应的平均强度数据的周期性计算。
在音频播放过程中,通过确定每种重音时间间隔对应的平均强度数据,可以为相关的下游业务提供更多的音频信息支持,例如,可以根据音频播放过程中,每种重音时间间隔对应的平均强度数据的变化,为基于该音频进行跳舞的机器人设计不同的舞蹈动作,例如不同风格或者不同复杂度的舞蹈动作等。
需要说明的是,在确定出目标音频的节拍间隔之前,每个采样周期内的音频片段均需要进行强度识别与卷积计算,并且强度识别与卷积计算这两种操作之间不存在执行顺序上的限定,即不应当将图3中所示出的逻辑顺序理解为对本实施例的具体限定。
s360、对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,每种重音时间间隔对应于时长匹配的至少一个重音时间间隔。
s370、将权重满足收敛条件的重音时间间隔,确定为目标音频的节拍间隔。
本实施例的技术方案通过在音频实时分析过程中,对每个采样周期内的音频片段均进行强度识别与卷积计算,在确定目标音频的节拍间隔的同时,对每个采样周期内中间时刻的峰值是否对应音频重音进行确定,实现了在实时分析音频节拍的同时,对音频重音进行实时验证的效果,提高了音频重音的识别准确性;并且实现了实时或者周期性确定各种重音时间间隔内各频率下的平均音频强度的效果,可以为下游业务提供音频信息支持;解决了现有技术中音频分析涉及的计算量较大以及音频节拍识别不准确的问题,减少了音频实时分析的计算量,提高了音频节拍的识别准确性,并能够更好地兼容不同的音乐风格。
实施例四
图4是本发明实施例四提供的音频分析装置的结构示意图,本实施例可适用于在任意风格或者任意复杂程度的音频的播放过程中,对音频信息(包括重音、节拍等信息)进行实时分析的情况。本实施例提供的音频分析装置可以采用软件和/或硬件的方式实现,并可集成在任意的计算设备上,计算设备包括但不限于移动终端、机器人或者智能装饰设备等,该机器人可以是能够随着音乐节拍进行舞动的机器人。
如图4所示,本实施例提供的音频分析装置可以包括强度识别模块410、权重确定模块420和节拍间隔确定模块430,其中:
强度识别模块410,用于对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔;
权重确定模块420,用于对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,每种重音时间间隔对应于时长匹配的至少一个重音时间间隔;
节拍间隔确定模块430,用于将权重满足收敛条件的重音时间间隔,确定为目标音频的节拍间隔。
可选的,在强度识别模块410执行对目标音频在多个采样周期内的音频片段分别进行强度识别之前,该装置还包括:
分频模块,用于对多个采样周期内的原始音频分别进行分频处理;
目标音频确定模块,用于将分频后的各种频率下的音频均作为目标音频,或将从各种频率中筛选后的满足预设频率条件的目标频率的音频作为目标音频。
可选的,每种重音时间间隔对应于一种频率下时长匹配的至少一个重音时间间隔。
可选的,权重确定模块420还用于:
根据每种重音时间间隔的属性,确定每种重音时间间隔的权重,其中,该属性包括每种重音时间间隔的频率信息以及每种重音时间间隔与参考重音时间间隔的差异程度;
其中,统计结果包括每种重音时间间隔的出现次数。
可选的,该装置还包括:
卷积计算模块,用于针对目标音频在每个采样周期中的音频片段,利用预设一维卷积核对音频片段的音频强度数据的峰值进行卷积计算,其中,目标音频的数量为至少两个,分别对应于原始音频分频处理后不同频率的音频;
音频重音确定模块,用于针对每种频率的目标音频,根据卷积计算结果与频率对应的预设阈值的关系,确定每种频率下的音频强度数据,在每个采样周期内中间时刻的峰值是否对应于音频重音,其中,卷积计算结果用于表征音频重音的明显程度;
节拍强弱或平均强度数据确定模块,用于如果每个采样周期内中间时刻的峰值对应于音频重音,则确定目标音频的音频节拍强弱程度,或者确定目标音频的重音时间间隔对应的平均强度数据。
可选的,节拍强弱或平均强度数据确定模块包括:
节拍强弱确定单元,用于如果每个采样周期内中间时刻的峰值对应于音频重音,则根据该峰值与相应频率下的音频强度数据的谷值的差值,确定每种频率下的音频节拍强弱程度。
可选的,节拍强弱或平均强度数据确定模块包括平均强度数据确定单元,用于如果每个采样周期内中间时刻的峰值对应于音频重音,则确定目标音频的重音时间间隔对应的平均强度数据;
平均强度数据确定单元包括:
重音时间间隔确定子单元,用于如果每个采样周期内中间时刻的峰值对应于音频重音,则根据每个采样周期的中间时刻与历史中间时刻的差值,确定每种频率下的卷积计算结果各自对应的重音时间间隔,其中,历史中间时刻是指与每个采样周期相邻且中间时刻处的峰值对应于音频重音的上一个采样周期的中间时刻;
均值计算子单元,用于将各频率下对应相同重音时间间隔的卷积计算结果,按照该重音时间间隔在各频率下的出现总次数,进行均值计算,得到与该重音时间间隔对应的平均强度数据。
可选的,预设一维卷积核的取值和不同频率下音频强度数据中不同峰值的区分程度以及峰值与谷值的差异程度相关。
可选的,分频模块包括:
音频拆分单元,用于按照分频拆分策略,对多个采样周期内的原始音频分别进行拆分;
傅里叶变换单元,用于对拆分后音频分别进行傅里叶变换,并分别按照频率对各个傅里叶变换结果进行合并,得到各种频率下的音频。
可选的,该装置还包括:
节拍数量确定模块,用于根据节拍间隔,确定目标音频中单位时间内包含的节拍数量。
本发明实施例所提供的音频分析装置可执行本发明任意实施例所提供的音频分析方法,具备执行方法相应的功能模块和有益效果。本实施例中未详尽描述的内容可以参考本发明任意方法实施例中的描述。
实施例五
图5是本发明实施例五提供的一种计算设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算设备812的框图。图5显示的计算设备812仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。计算设备812包括但不限于移动终端、机器人或者智能装饰设备等。
如图5所示,计算设备812以通用计算设备的形式表现。计算设备812的组件可以包括但不限于:一个或者多个处理器816,存储装置828,连接不同系统组件(包括存储装置828和处理器816)的总线818。
总线818表示几类总线结构中的一种或多种,包括存储装置总线或者存储装置控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrysubversivealliance,isa)总线,微通道体系结构(microchannelarchitecture,mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation,vesa)局域总线以及外围组件互连(peripheralcomponentinterconnect,pci)总线。
计算设备812典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备812访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置828可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory,ram)830和/或高速缓存存储器832。计算设备812可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统834可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘,例如只读光盘(compactdiscread-onlymemory,cd-rom),数字视盘(digitalvideodisc-readonlymemory,dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线818相连。存储装置828可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块842的程序/实用工具840,可以存储在例如存储装置828中,这样的程序模块842包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块842通常执行本发明所描述的实施例中的功能和/或方法。
计算设备812也可以与一个或多个外部设备814(例如键盘、指向终端、显示器824等)通信,还可与一个或者多个使得用户能与该计算设备812交互的终端通信,和/或与使得该计算设备812能与一个或多个其它计算终端进行通信的任何终端(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口822进行。并且,计算设备812还可以通过网络适配器820与一个或者多个网络(例如局域网(localareanetwork,lan),广域网(wideareanetwork,wan)和/或公共网络,例如因特网)通信。如图5所示,网络适配器820通过总线818与计算设备812的其它模块通信。应当明白,尽管图中未示出,可以结合计算设备812使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、磁盘阵列(redundantarraysofindependentdisks,raid)系统、磁带驱动器以及数据备份存储系统等。
处理器816通过运行存储在存储装置828中的程序,从而执行各种功能应用以及数据处理,例如实现本发明任意实施例所提供的音频分析方法,该方法可以包括:
对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔;
对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,所述每种重音时间间隔对应于时长匹配的至少一个重音时间间隔;
将所述权重满足收敛条件的重音时间间隔,确定为所述目标音频的节拍间隔。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的音频分析方法,该方法可以包括:
对目标音频在多个采样周期内的音频片段分别进行强度识别,得到音频重音之间的至少一个重音时间间隔;
对于每种重音时间间隔的出现情况进行统计,并根据统计结果确定每种重音时间间隔的权重,其中,所述每种重音时间间隔对应于时长匹配的至少一个重音时间间隔;
将所述权重满足收敛条件的重音时间间隔,确定为所述目标音频的节拍间隔。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除