技术新讯 > 乐器声学设备的制造及制作,分析技术 > 一种音乐节拍实时跟踪方法、装置和设备与流程  >  正文

一种音乐节拍实时跟踪方法、装置和设备与流程

  • 国知局
  • 2024-06-21 11:53:13

本发明实施例涉及数字信号处理,具体而言,涉及一种音乐节拍实时跟踪方法、装置、设备及介质。

背景技术:

1、音乐节拍跟踪在很多的工程实践中都有所应用,如短视频应用中的卡点切换效果,舞台灯光效果,或者如“节奏大师”一类的音乐类游戏,以及机器人随着音乐节拍做出相应的舞蹈动作,以及在汽车座舱内的氛围灯音乐律动效果等等,都需要节拍跟踪技术。音乐的节拍是音频分析的重要问题之一,主要是对音乐中的节拍进行检测,输入一段音频,经过处理后,在该段音频中标记出节拍所在的时间。

2、节拍识别主要实现方式包括离线节拍识别和实时节拍跟踪两种方式。离线识别需要将整首音乐作为输入,一次性输出整首音乐的节拍序列。实时节拍跟踪在播放音乐的同时,输入短时音乐数据(一般称为一帧音频数据),对当前音频帧数据进行节拍检测,从而实现音乐播放的同时检测节拍。实时节拍跟踪不需要提前获取整首音乐的音频数据,可以边播放音乐边输出节拍,因此需求更广泛,适用性更强。离线节拍识别和实时节拍跟踪两种方式都可以通过传统的信号处理方式和深度学习实现。但通过深度学习进行节拍检测,容易出现丢拍问题。

3、目前主流技术使用的是离线算法,用于音乐信息的分析且无法保证实时性的效果。在一些需要实时的应用方面,无法满足工程实践的要求。如:在汽车座舱内的氛围灯音乐律动效果,就需要随着正在播放的音乐的节拍实时闪烁灯带。在灯光的舞台等效展示中,也会需要随着音乐的实时变化而闪烁不同的灯效。

4、其次,目前的节拍跟踪算法中,缺少自动调节功能,比如常根据音乐幅值进行识别或仅使用固定频率输出节拍。当对一首节拍周期较快且节拍周期存在变化的音频进行节拍检测时,需要输出节拍频率较高且周期变化,无法调节的节拍输出在工程上会降低用户的体验。

5、此外,也存在通过深度学习进行实时节拍跟踪的方法。但此种算法在实际使用时常出现丢拍问题,且由于深度学习在实现时需要进行模型的推理,使得该算法在部署过程中对硬件需要较高要求,需要较大的算力才能实现快速的计算推理,并且软件上要求也较多,需要依靠过多的依赖库,即深度学习存在实现复杂度高,可以执行差的问题。

技术实现思路

1、本发明实施例提供一种音乐节拍实时跟踪方法、装置、设备及介质,以实时、准确且快速地确定当前节拍时刻。

2、第一方面,本发明实施提供了一种音乐节拍实时跟踪方法,该方法包括:

3、对接收到的音频数据进行解码,得到音频数据点,其中,设定数目的音频数据点组成音频数据帧,多个音频数据帧组成音频序列;

4、确定音频序列对应的起始信号强度序列,该起始信号强度序列中包括各帧音频数据的起始信号强度信息,该起始信号强度信息是该帧音频数据中相邻音频数据点的幅值的差值之和;

5、基于起始信号强度序列中各帧信号强度的相似性特征,确定目标节拍周期,其中,节拍周期表示相邻节拍之前间隔的音频帧数;

6、确定音频序列对应的累积信号强度序列,其中,累积信号强度序列中包括各帧音频数据的累积信号强度信息,该累积信号强度信息包含有将当前音频帧的起始信号强度信息与当前音频帧之前设定时间段内的历史音频帧数据的累积信号强度信息;

7、在目标节拍周期内,确定累积信号强度序列中出现音频节拍的音频帧位置信息,并根据当前接收到的音频帧的位置信息与音频节拍帧位置信息的距离,预测下一次出现音乐节拍的目标音频帧位置信息,以在检测到目标音频帧位置出现音乐节拍时,将目标音频帧位置信息转换为该节拍对应的时间信息。

8、可选的,基于起始信号强度序列中各帧信号强度的相似性特征,确定目标节拍周期,包括:

9、对起始信号强度序列进行自相关处理,得到自相关信号序列,该自相关信号序列中包括不同音频帧间隔数目对应的自相关值信息;

10、从自相关信号序列中选择出预设数目的幅值峰值所对应的音频帧间隔,作为候选节拍周期,其中,节拍周期表示相邻节拍之间间隔的音频帧数;

11、基于起始信号强度序列与第一设定脉冲序列的相关性,从候选节拍周期中确定出相关性最大的节拍周期作为目标节拍周期。

12、可选的,对起始信号强度序列进行自相关处理,得到自相关信号序列,包括:

13、基于傅里叶变换对起始信号强度序列进行自相关处理,得到自相关信号序列;

14、相应的,从自相关信号序列中选择出预设数目的幅值峰值所对应的音频帧间隔,作为候选节拍周期,包括:

15、计算节拍滞后数范围,其中,节拍滞后数表示相邻两个节拍之间的音频帧的个数;

16、在节拍滞后数范围内,对自相关信号序列中的各帧自相关信号进行增强处理,得到增强信号序列;

17、从增强信号序列的各帧增强信号中,选择出信号峰值大小位于前m位的音频帧间隔,作为候选节拍周期。

18、可选的,计算节拍滞后数范围,包括:

19、按照如下公式计算最大节拍滞后数和最小节拍滞后数,以得到节拍滞后数范围:

20、

21、其中,sample_rate表示对音频数据的采样率,α表示相邻帧音频数据中非重叠部分的采样点个数,τ表示每分钟的窗移次数,min_lag表示最小节拍滞后数,max_lag表示最大节拍滞后数。

22、可选的,对所述自相关信号序列中的各帧自相关信号进行增强处理,得到增强信号序列,包括:

23、按照如下公式对所述自相关信号序列中的各帧自相关信号进行增强处理,得到增强信号序列:

24、signal_enhancement[n]=onset_energy_signal*[n]+onset_energy_signal*[2n]+onset_energy_signal*[4n]

25、其中:n∈[min_lag,max_lag],表示节拍滞后数,onset_energy_signal*[n]表示相关信号序列中节拍滞后数n对应的幅值信息,signal_enhancement[n]表示节拍滞后数n对应的增强后的幅值信息。

26、可选的,基于起始信号强度序列与第一设定脉冲序列的相关性,从候选节拍周期中确定出相关性最大的节拍周期作为目标节拍周期,包括:

27、将起始信号强度序列与第一设定脉冲序列进行卷积运算,得到第一互相关信号序列,该第一互相关信号序列中包括各帧起始信号强度与第一设定脉冲序列之间的互相关值;

28、计算第一互相关信号序列中互相关值的均值和方差,并计算均值和方差的和值;

29、从各个候选节拍周期中选择对应均值和方差的和值最大的节拍周期,作为起始信号强度序列与第一设定脉冲序列的相关性最大的目标节拍周期。

30、可选的,确定音频序列对应的累积信号强度序列,包括:

31、按照如下公式计算述音频序列对应的累积信号强度序列:

32、accumulate[j]=θ×onset_energy_signal[j]+(1-θ)max_score

33、

34、其中,accumulate[j]表示累积信号强度序列,j表示当前第j帧音频数据,onset_energy_signal[j]表示起始信号强度序列,θ表示权重,period表示目标节拍周期,k表示当前帧之前设定时间段内的历史帧的帧数,accumulate[k]表示前帧之前设定时间段内的历史音频帧数据的累积信号强度信息,max_score表示历史音频帧数据的累积信号强度信息的最大分数值。

35、可选的,在目标节拍周期内,确定累积信号强度序列中出现音频节拍的音频帧位置信息,包括:

36、从累积信号强度序列的第一个信号帧开始,以与目标节拍周期数值相同的信号帧范围内的每一帧作为起点,目标节拍周期数值的整数倍作为间距,从累积信号强度序列中选择出第二设定脉冲序列长度个帧,并将选择出的信号帧序列与第二设定脉冲序列进行互相关处理,得到第二互相关信号序列,该第二互相关信号序列中包括各帧累积信号强度与第二设定脉冲序列之间的互相关值;

37、将第二互相关序列中最大互相关值对应的信号帧的帧数序号信息作为出现音频节拍的音频帧位置信息;

38、相应的,根据当前接收到的音频帧的位置信息与音频节拍帧位置信息的距离,预测下一次出现音乐节拍的目标音频帧位置信息,包括:

39、对当前帧位置与音频节拍帧位置之间的距离进行高斯分布计算;

40、将高斯分布中最大值对应的位置信息作为下一次出现节拍对应的目标音频帧位置信息;

41、相应的,在检测到目标音频帧位置出现音乐节拍时,将目标音频帧位置信息转换为该节拍对应的时间信息,包括:

42、在下一次音乐节拍为有效节拍的情况下,按照如下公式,将目标音频帧位置信息转换为该节拍对应的时间信息,包括:

43、time=y/τ

44、

45、其中,有效节拍表示当前音频帧位置信息与上一节拍所在帧数间隔大于预设节拍周期,time表示当前节拍对应的时间信息,y表示目标音频帧位置信息,sample_rate表示对音频数据的采样率,α表示相邻帧音频数据中非重叠部分的采样点个数,τ表示每分钟的窗移次数。

46、第二方面,本发明实施例还提供了一种音乐节拍实时跟踪装置,包括:

47、音频解码模块,被配置为对接收到的音频数据进行解码,得到音频数据点,其中,设定数目的音频数据点组成音频数据帧,多个音频数据帧组成音频序列;

48、起始信号强度序列确定模块,被配置为确定音频序列对应的起始信号强度序列,所述起始信号强度序列中包括各帧音频数据的起始信号强度信息,所述起始信号强度信息是该帧音频数据中相邻音频数据点的幅值的差值之和;

49、目标节拍周期确定模块,被配置为基于所述起始信号强度序列中各帧信号强度的相似性特征,确定目标节拍周期,其中,所述节拍周期表示相邻节拍之前间隔的音频帧数;

50、累积信号强度序列计算模块,被配置为确定所述音频序列对应的累积信号强度序列,其中,所述累积信号强度序列中包括各帧音频数据的累积信号强度信息,所述累积信号强度信息包含有将当前音频帧的起始信号强度信息与当前音频帧之前设定时间段内的历史音频帧数据的累积信号强度信息;

51、时间信息确定模块,被配置为在所述目标节拍周期内,确定所述累积信号强度序列中出现音频节拍的音频帧位置信息,并根据当前接收到的音频帧的位置信息与音频节拍的音频帧位置信息的距离,预测下一次出现音乐节拍的目标音频帧位置信息,以在检测到目标音频帧位置出现音乐节拍时,将目标音频帧位置信息转换为该节拍对应的时间信息。

52、可选的,目标节拍周期确定模块,包括:

53、自相关单元,被配置为对起始信号强度序列进行自相关处理,得到自相关信号序列,该自相关信号序列中包括不同音频帧间隔数目对应的自相关值信息;

54、候选节拍周期确定单元,被配置为从自相关信号序列中选择出预设数目的幅值峰值所对应的音频帧间隔,作为候选节拍周期,其中,节拍周期表示相邻节拍之间间隔的音频帧数;

55、目标节拍周期确定单元,被配置为基于起始信号强度序列与第一设定脉冲序列的相关性,从候选节拍周期中确定出相关性最大的节拍周期作为目标节拍周期。

56、可选的,自相关单元,具体被配置为:

57、基于傅里叶变换对所述起始信号强度序列进行自相关处理,得到自相关信号序列;

58、相应的,候选节拍周期确定单元,包括:

59、节拍滞后数范围计算子单元,被配置为计算节拍滞后数范围,其中,节拍滞后数表示相邻两个节拍之间的音频帧的个数;

60、信号增强子单元,被配置为在节拍滞后数范围内,对自相关信号序列中的各帧自相关信号进行增强处理,得到增强信号序列;

61、候选节拍周期确定子单元,被配置为从增强信号序列的各帧增强信号中,选择出信号幅值大小位于前m位的音频帧间隔数量,作为候选节拍周期。

62、可选的,节拍滞后数范围计算子单元,具体被配置为:

63、按照如下公式计算最大节拍滞后数和最小节拍滞后数,以得到节拍滞后数范围:

64、

65、其中,sample_rate表示对音频数据的采样率,α表示相邻帧音频数据中非重叠部分的采样点个数,τ表示每分钟的窗移次数,min_lag表示最小节拍滞后数,max_lag表示最大节拍滞后数。

66、可选的,信号增强子单元,具体被配置为:

67、按照如下公式对自相关信号序列中的各帧自相关信号进行增强处理,得到增强信号序列:

68、signal_enhancement[n]=onset_energy_signal*[n]+onset_energy_signal*[2n]+onset_energy_signal*[4n]

69、其中:n∈[min_lag,max_lag],表示节拍滞后数,onset_energy_signal*[n]表示相关信号序列中节拍滞后数n对应的幅值信息,signal_enhancement[n]表示节拍滞后数n对应的增强后的幅值信息。

70、可选的,目标节拍周期确定单元,包括:

71、第一相关性处理子单元,被配置为将起始信号强度序列与第一设定脉冲序列进行卷积运算,得到第一互相关信号序列,第一互相关信号序列中包括各帧起始信号强度与第一设定脉冲序列之间的互相关值;

72、评估参数计算子单元,被配置为计算第一互相关信号序列中互相关值的均值和方差,并计算均值和方差的和值;

73、目标节拍周期确定在单元,被配置为从各个候选节拍周期中选择对应均值和方差的和值最大的节拍周期,作为起始信号强度序列与第一设定脉冲序列的相关性最大的目标节拍周期。

74、可选的,累积信号强度序列计算模块,具体被配置为:

75、按照如下公式计算述音频序列对应的累积信号强度序列:

76、accumulate[j]=θ×onset_energy_signal[j]+(1-θ)max_score

77、

78、其中,accumulate[j]表示累积信号强度序列,j表示当前第j帧音频数据,onset_energy_signal[j]表示起始信号强度序列,θ表示权重,period表示目标节拍周期,k表示当前帧之前设定时间段内的历史帧的帧数,accumulate[k]表示当前帧之前设定时间段内的历史音频帧数据的累积信号强度信息,max_score表示历史音频帧数据的累积信号强度信息的最大分数值。

79、可选的,时间信息确定模块,包括:

80、第二互相关处理单元,被配置为从所述累积信号强度序列的第一个信号帧开始,以与目标节拍周期数值相同的信号帧范围内的每一帧作为起点,目标节拍周期数值的整数倍作为间距,从累积信号强度序列中选择出第二设定脉冲序列长度个帧,并将选择出的信号帧序列与第二设定脉冲序列进行互相关处理,得到第二互相关信号序列,其中,该第二互相关信号序列中包括各帧累积信号强度与第二设定脉冲序列之间的互相关值;

81、音频节拍帧位置信息确定单元,被配置为将第二互相关序列中最大互相关值对应的信号帧的帧数序号信息作为出现音频节拍的音频帧位置信息;

82、目标音频帧位置信息确定单元,被配置为对当前帧位置与音频节拍帧位置之间的距离进行高斯分布计算,并将高斯分布中最大值对应的位置信息作为下一次出现节拍对应的目标音频帧位置信息;

83、时间信息计算单元,具体被配置为:在下一次音乐节拍为有效节拍的情况下,按照如下公式,将目标音频帧位置信息转换为该节拍对应的时间信息,包括:

84、time=y/τ

85、

86、其中,有效节拍表示当前音频帧位置信息与上一节拍所在帧数间隔大于预设节拍周期,time表示当前节拍对应的时间信息,y表示目标音频帧位置信息,sample_rate表示对音频数据的采样率,α表示相邻帧音频数据中非重叠部分的采样点个数,τ表示每分钟的窗移次数。

87、第三方面,本发明实施例还提供了一种计算设备,包括:

88、存储有可执行程序代码的存储器;

89、与所述存储器耦合的处理器;

90、所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明任意实施例所提供的音乐节拍实时跟踪方法。

91、第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的音乐节拍实时跟踪方法。

92、本发明实施例提供的技术方案,在对音乐节拍实时跟踪的过程中,通过确定音频序列对应的起始信号强度序列,可基于起始信号强度序列中各帧信号强度的相似性特征,确定目标节拍周期。根据起始信号强度序列进行累积信号强度序列,可进一步突出节拍在累积信号强度序列中的幅值。通过确定累积信号强度序列出现音频节拍的音频帧位置信息,可根据该位置信息预测出下一次出现音乐节拍的位置,从而可在下一次有效音乐节拍到来时,将预测得到的位置实时转为对应的时间信息进行输出,以实现对音乐节拍的实时跟踪。本发明实施例提供的技术方案具有高实时性,高准确性,低计算资源占用的优点,能够满足节拍周期存在变换的音乐节拍的实时跟踪需求,同时其平台适用性强,具有对硬件和软件环境依赖低的优势,并且无需较高算力,也无需较多的依赖库,在工程领域具有广泛的应用。

本文地址:https://www.jishuxx.com/zhuanli/20240618/24276.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。