具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,音频文件可以包括但不限于:歌曲、歌曲片段、音乐、音乐片段、演奏乐、演奏乐片段、哼唱歌曲、哼唱歌曲片段等文件。本发明实施例的音频处理方案可以应用于互联网领域的多个场景中,例如:可以应用于对互联网音频库中的音频文件进行分析处理的场景,包括:可应用于主音查找的场景中进行副歌的快速定位和准确提取,也可应用于哼唱搜索的场景中进行副歌的快速定位和准确提取,还可应用于乐曲识别的场景中进行副歌的快速定位和准确提取等等;或者,可以应用于对互联网音频库中的音频文件进行试听的场景,包括:可提供副歌进行在线播放或音乐下载前的试听;或者,可以应用于彩铃下载或试听场景,包括:快速定位和准确提取副歌,将副歌作为彩铃提供给用户进行下载或试听,等等。
下面将结合附图1-附图5,对本发明实施例提供的音频处理方法进行详细介绍。需要说明的是,附图1-附图5所示的音频处理方法可以由本发明实施例提供的音频处理装置所执行,该音频处理装置可运行于终端设备或服务器中,其中,终端设备可包括但不限于:PC(PersonalComputer,个人计算机)、PAD(平板电脑)、手机、智能手机、笔记本电脑等设备。
请参见图1,为本发明实施例提供的一种音频处理方法的流程图;该方法可包括以下步骤S101-步骤S103。
S101,从待处理的音频文件中选取区间音频数据。
本发明实施例中,区间音频数据指从音频文件中所选取的、某个时长区间范围所确定的音频数据,例如:假设音频文件的时长为T,[T/5,3T/5]的时长区间范围可确定一个区间音频数据,[T/2,T]的时长区间范围又可确定另一个区间音频数据,等等。本步骤中,可根据实际情况从音频文件中选取合理的区间音频数据,例如:根据对大量音频文件的统计数据,从音频文件中选取区间音频数据;或者根据对音频文件进行分析处理获得的实验数据,从音频文件中选取区间音频数据。
S102,构建所述区间音频数据的特征参数序列,所述特征参数序列包括能量序列和频谱滚降序列。
一个区间音频数据可以表示为多帧音频帧信号组成的一个帧序列,该区间音频数据的每帧音频帧信号均具备能量。频谱滚降可表征连续的两帧音频帧信号的归一化频谱系数之间的关系。本步骤中,可以对该区间音频数据的每一帧音频帧信号进行能量计算,获得该区间音频数据的每一帧音频帧信号的能量,从而构建该区间音频数据的能量序列;可以检测该区间音频数据的连续两帧音频帧信号的归一化频谱系数之间的关系,构建该区间音频数据的频谱滚降序列。
S103,根据所述区间音频数据的特征参数序列,定位所述音频文件的副歌。
副歌,通常指音频文件的高潮部分。以歌曲为例,一首歌曲通常采用AA’BA’Form,A代表主歌,而B代表副歌;也即时说,通常一首歌曲由“前奏+两段主歌+一段副歌+过门音乐+一段副歌+一段主歌+结尾音乐”按顺序连接构成。本步骤可基于所选取的区间音频数据的特征参数序列,定位音频文件的副歌。
下面将结合附图2-附图5,对图1所示的音频处理方法中的各步骤进行详细介绍。
请参见图2,为本发明实施例提供的图1所示的步骤S101的实施例的流程图;该步骤S101可包括以下步骤s1101-步骤s1103。
s1101,获取所述待处理的音频文件的时长。本实施例可假设音频文件的时长为T,即所述音频文件的时长区间为[0,T]。
s1102,按照预设的时间比范围,计算所选取的时长区间。
时间比范围可表示为[RL,RH],其中RL和RH分别代表时间占比,[RL,RH]的取值为[0,1],且RL<RH。时间比范围[RL,RH]可以根据实际情况进行设定,例如:时间比范围可根据对大量音频文件的统计数据进行设定;或者时间比范围可根据对音频文件进行分析处理获得的实验数据进行设定。假设预设的时间比范围为[1/5,3/5],即RL=1/5,RH=3/5,本步骤计算获得所选取的时长区间则为[T/5,3T/5]。
s1103,根据所述时长区间,从所述音频文件中选取区间音频数据。
参照步骤s1102所示例子,本步骤可从音频文件中选取[T/5,3T/5]这一时长区间所确定的区间音频数据。
下面将结合图3-图4,对图1所示的步骤S102进行详细介绍。需要说明的是,该步骤S102由两个构建过程组成,其中一个构建过程为“构建所述区间音频数据的能量序列”的过程,该构建过程具体可参见下述图3所示实施例的描述;另一个构建过程为“构建所述区间音频数据的频谱滚降序列”的过程,该构建过程具体可参见下述图4所示实施例的描述。
请参见图3,为本发明实施例提供的图1所示的步骤S102的实施例的部分流程图;该步骤S102可包括以下步骤s1201-步骤s1203。
s1201,对所述区间音频数据进行分帧处理,获得至少一帧音频帧信号。
一个区间音频数据可以表示为多帧音频帧信号组成的一个帧序列,本步骤中,假设该区间音频数据包含的任一帧音频帧信号可表示为xi(n),每帧音频帧信号的帧长为Ts,进行分帧处理可获得的音频帧信号的数量为FN。其中,i表示该区间音频数据中该帧音频帧信号的顺序,i为正整数且i=1,2,...FN-1;n为正整数且n=0,1,2,N-1,其中N为该帧音频帧信号的长度,即N为该帧音频帧信号的采样点数。
s1202,计算所述至少一帧音频帧信号中的各帧音频帧信号的能量。
本步骤可基于下述(1)所示的能量公式,计算FN帧音频帧信号中的各帧音频帧信号的能量。
上述(1)式中,Ei(n)表示音频帧信号xi(n)的能量。
s1203,按照所述至少一帧音频帧信号中的各帧音频帧信号的顺序,对所述各帧音频帧信号的能量进行排列,构建所述区间音频数据的能量序列。
所述至少一帧音频帧信号中的各帧音频帧信号的顺序,即指所述至少一帧音频帧信号中的各帧音频帧信号组成所述区间音频帧数据的帧序列时的顺序。本步骤中,按照所述至少一帧音频帧信号中的各帧音频帧信号的顺序,对所述各帧音频帧信号的能量进行排列,可构建所述区间音频数据的能量序列为Ei(n)。
请参见图4,为本发明实施例提供的图1所示的步骤S102的实施例的另一部分流程图;该S102可包括以下步骤s1211-步骤s1215。
s1211,对所述区间音频数据进行分帧处理,获得至少一帧音频帧信号。
本步骤可参见图3所示实施例中的步骤s1201,在此不赘述。
s1212,对所述至少一帧音频帧信号中的各帧音频帧信号的频谱系数进行归一化处理,获得所述各帧音频帧信号的归一化频谱系数。
本步骤的归一化处理过程具体可包含下述步骤A-B。
A、对所述各帧音频帧信号进行变换处理。步骤A的变换处理可采用下述公式(2)进行。
yi(n)=fft(xi(n))(2)
上述公式(2)中,fft()表示快速傅里叶变换。
B、对变换处理后的各帧音频帧信号的频谱***进行归一化处理。步骤B可采用下述(3)所示的公式,对所述FN帧音频帧信号中的各帧音频帧信号的频谱系数进行归一化处理,获得所述各帧音频帧信号的归一化频谱系数Xi(n)。
上述公式(3)中,(yi(n))max为yi(n)序列中的最大值。
s1213,按照所述至少一帧音频帧信号中的各帧音频帧信号的顺序,计算连续两帧音频帧信号的归一化频谱系数的差的平方和。
本步骤计算获得的连续两帧音频帧信号的归一化频谱系数的差的平方和可表示为(Xi+1(n)-Xi(n))2。
s1214,对所述连续两帧音频帧信号的归一化频谱系数的差的平方和进行求和计算,获得所述区间音频数据的频谱滚降序列。
本步骤中,所述区间音频数据的频谱滚降序列可表示为FXi(n),该FXi(n)可采用如下公式(4)计算获得。
需要说明的是,上述公式(4)中,当n=0时,FXi(0)的值可以为0或固定值。
请参见图5,为本发明实施例提供的图1所示的步骤S103的实施例的流程图;该步骤S103可包括以下步骤s1301-步骤s1303。
s1301,分别对所述区间音频数据的能量序列和频谱滚降序列进行归一化处理。
按照图3-图4所示实施例的描述,所述区间音频数据的能量序列可表示为Ei(n),所述区间音频数据的频谱滚降序列可表示为FXi(n)。本步骤可采用下述公式(5),对所述Ei(n)进行归一化处理,获得归一化后的能量序列为Emi(n),该公式(5)可表示如下:
上述公式(5)中,Emi(n)为归一化后的能量序列,(Ei(n))max为能量序列Ei(n)中的最大值。
本步骤可采用下述公式(6),对所述FXi(n)进行归一化处理,获得归一化后的频谱滚降序列为FXmi(n),该公式(6)可表示如下:
上述公式(6)中,FXmi(n)为归一化后的频谱滚降序列,(FXi(n))max为频谱滚降序列FXi(n)中的最大值。
s1302,根据所述归一化后的能量序列、所述归一化后的频谱滚降序列以及预设的副歌时长,计算副歌在所述区间音频数据中的位置。
本步骤的计算过程具体可包括以下步骤C-H:
C、计算Emi(n)序列和FXmi(n)序列的和,获得Si(n)序列,该Si(n)序列可表示如下公式(7)所示:
Si(n)=Emi(n)+FXmi(n)(7)
D、假设副歌时长为T',需要说明的是,副歌时长可以根据用户的实际需要进行设定,例如可以为10s,20s等等。由于该区间音频数据包含的任一帧音频帧信号xi(n)的帧长为Ts,步骤D则可计算获得副歌时长相对于每帧音频帧信号的比值L,该L可表示如下公式(8)所示:
L=T'/Ts(8)
E、对Si(n)序列进行均值滤波处理,获得Smi(n)序列。需要说明的是,步骤E对Si(n)序列进行均值滤波处理时,所采用的阶数tap为可表示为下述公式(9)。
tap=(L-1)/2(9)
F、查找Smi(n)序列中的最大值,并获取该最大值对应的n的取值,假设此时n的取值为IND。
G、确定副歌在所述区间音频数据中的帧起止位置,其中,帧起始位置str可表示如下公式(10)所示:
str=IND-tap(10)
其中,帧终止位置end可表示如下公式(11)所示:
end=IND+tap(11)
H、确定副歌在所述区间音频数据中的时间起止位置,其中,副歌在所述区间音频数据中的时间起始位置tstr可表示如下公式(12)所示:
tstr=str*Ts(12)
其中,所述副歌在所述区间音频数据中的时间终止位置tend可表示如下公式(13)所示:
tend=end*Ts(13)
s1303,根据所述副歌在所述区间音频数据中的位置,在所述音频文件中定位所述副歌。
本步骤中,根据所述副歌在所述区间音频数据中的时间起止位置,可在所述音频文件中定位所述副歌的时间起止位置,其中,副歌在所述音频文件中的时间起始位置Tstr可表示如下公式(14)所示:
Tstr=RL*T+tstr(14)
其中,副歌在所述音频文件中的时间终端位置Tend可表示如下公式(15)所示:
Tend=RH*T+tend(15)
上述(14)和(15)中,RL和RH分别为预设的时间比范围[RL,RH]的两个端点值,T为所述音频文件的时长。
通过上述附图1-附图5所示实施例的描述,本发明实施例可从待处理的音频文件中选取区间音频数据,构建区间音频数据的特征参数序列,以实现音频文件的副歌定位,提升了音频处理的智能性;另外,由于仅需要从音频文件中选取区间音频数据进行音频处理,可有效提升音频处理的效率,进一步提升音频处理的智能性。
下面将结合附图6-附图10,对本发明实施例提供的音频处理装置进行详细介绍。需要说明的是,附图6-附图10所示的音频处理装置可运行于终端设备或服务器中,用于执行附图1-附图5所示的音频处理方法。其中,终端设备可包括但不限于:PC、PAD、手机、智能手机、笔记本电脑等设备。
请参见图6,为本发明实施例提供的一种音频处理装置的结构示意图;该装置可包括:选取模块101、构建模块102和定位模块103。
选取模块101,用于从待处理的音频文件中选取区间音频数据。
本发明实施例中,区间音频数据指从音频文件中所选取的、某个时长区间范围所确定的音频数据,例如:假设音频文件的时长为T,[T/5,3T/5]的时长区间范围可确定一个区间音频数据,[T/2,T]的时长区间范围又可确定另一个区间音频数据,等等。所述选取模块101可根据实际情况从音频文件中选取合理的区间音频数据,例如:根据对大量音频文件的统计数据,从音频文件中选取区间音频数据;或者根据对音频文件进行分析处理获得的实验数据,从音频文件中选取区间音频数据。
构建模块102,用于构建所述区间音频数据的特征参数序列,所述特征参数序列包括能量序列和频谱滚降序列。
一个区间音频数据可以表示为多帧音频帧信号组成的一个帧序列,该区间音频数据的每帧音频帧信号均具备能量。频谱滚降可表征连续的两帧音频帧信号的归一化频谱系数之间的关系。所述构建模块102可以对该区间音频数据的每一帧音频帧信号进行能量计算,获得该区间音频数据的每一帧音频帧信号的能量,从而构建该区间音频数据的能量序列;所述构建模块102可以检测该区间音频数据的连续两帧音频帧信号的归一化频谱系数之间的关系,构建该区间音频数据的频谱滚降序列。
定位模块103,用于根据所述区间音频数据的特征参数序列,定位所述音频文件的副歌。
副歌,通常指音频文件的高潮部分。以歌曲为例,一首歌曲通常采用AA’BA’Form,A代表主歌,而B代表副歌;也即时说,通常一首歌曲由“前奏+两段主歌+一段副歌+过门音乐+一段副歌+一段主歌+结尾音乐”按顺序连接构成。所述定位模块103可基于所选取的区间音频数据的特征参数序列,定位音频文件的副歌。
下面将结合附图7-附图10,对图6所示的音频处理装置的各模块进行详细介绍。
请参见图7,为本发明实施例提供的选取模块的实施例的结构示意图;该选取模块101可包括:时长获取单元1101、区间计算单元1102和选取单元1103。
时长获取单元1101,用于获取所述待处理的音频文件的时长。本实施例可假设音频文件的时长为T,即所述音频文件的时长区间为[0,T]。
区间计算单元1102,用于按照预设的时间比范围,计算所选取的时长区间。
时间比范围可表示为[RL,RH],其中RL和RH分别代表时间占比,[RL,RH]的取值为[0,1],且RL<RH。时间比范围[RL,RH]可以根据实际情况进行设定,例如:时间比范围可根据对大量音频文件的统计数据进行设定;或者时间比范围可根据对音频文件进行分析处理获得的实验数据进行设定。假设预设的时间比范围为[1/5,3/5],即RL=1/5,RH=3/5,所述区间计算单元1102计算获得所选取的时长区间则为[T/5,3T/5]。
选取单元1103,用于根据所述时长区间,从所述音频文件中选取区间音频数据。
参照本实施例所示例子,所述选取单元1103可从音频文件中选取[T/5,3T/5]这一时长区间所确定的区间音频数据。
下面将结合图8-图9,对图7所示的构建模块102的结构和功能进行详细介绍。需要说明的是,该构建模块102可实现两个构建过程,其中一个构建过程为“构建所述区间音频数据的能量序列”的过程,实现该构建过程时该构建模块102的结构具体可参见下述图8所示实施例的描述;另一个构建过程为“构建所述区间音频数据的频谱滚降序列”的过程,实现该构建过程时该构建模块102的结构具体可参见下述图9所示实施例的描述。
请参见图8,为本发明实施例提供的构建模块的实施例的部分结构示意图;该构建模块102可包括:分帧处理单元1201、能量计算单元1202和能量序列构建单元1203。
分帧处理单元1201,用于对所述区间音频数据进行分帧处理,获得至少一帧音频帧信号。
一个区间音频数据可以表示为多帧音频帧信号组成的一个帧序列,假设该区间音频数据包含的任一帧音频帧信号可表示为xi(n),每帧音频帧信号的帧长为Ts,所述分帧处理单元1201进行分帧处理可获得的音频帧信号的数量为FN。其中,i表示该区间音频数据中该帧音频帧信号的顺序,i为正整数且i=1,2,...FN-1;n为正整数且n=0,1,2,N-1,其中N为该帧音频帧信号的长度,即N为该帧音频帧信号的采样点数。
能量计算单元1202,用于计算所述至少一帧音频帧信号中的各帧音频帧信号的能量。
所述能量计算单元1202可采用图3所示实施例中的公式(1)所示的能量公式,计算FN帧音频帧信号中的各帧音频帧信号的能量Ei(n)。
能量序列构建单元1203,用于按照所述至少一帧音频帧信号中的各帧音频帧信号的顺序,对所述各帧音频帧信号的能量进行排列,构建所述区间音频数据的能量序列。
所述至少一帧音频帧信号中的各帧音频帧信号的顺序,即指所述至少一帧音频帧信号中的各帧音频帧信号组成所述区间音频帧数据的帧序列时的顺序。所述能量序列构建单元1203按照所述至少一帧音频帧信号中的各帧音频帧信号的顺序,对所述各帧音频帧信号的能量进行排列,可构建所述区间音频数据的能量序列为Ei(n)。
请参见图9,为本发明实施例提供的构建模块的实施例的另一部分结构示意图;该构建模块102可包括:分帧处理单元1201、系数归一化处理单元1204、频谱系数计算单元1205和频谱滚降序列构建单元单元1206。其中,分帧处理单元1201可参见图8所示实施例的相关描述,在此不赘述。
系数归一处理单元1204,用于对所述至少一帧音频帧信号中的各帧音频帧信号的频谱系数进行归一化处理,获得所述各帧音频帧信号的归一化频谱系数。
所述系数归一处理单元1204的归一化处理过程具体可包含下述步骤A’-B’。
A’、对所述各帧音频帧信号进行变换处理。该变换处理可采用图4所示实施例中的公式(2)进行。
B’、对变换处理后的各帧音频帧信号的频谱***进行归一化处理。具体可采用图4所示实施例中的公式(3),对所述FN帧音频帧信号中的各帧音频帧信号的频谱系数进行归一化处理,获得所述各帧音频帧信号的归一化频谱系数Xi(n)。
系数归一处理单元1205,用于对所述至少一帧音频帧信号中的各帧音频帧信号的频谱系数进行归一化处理,获得所述各帧音频帧信号的归一化频谱系数。
所述系数归一处理单元1205计算获得的连续两帧音频帧信号的归一化频谱系数的差的平方和可表示为(Xi+1(n)-Xi(n))2。
频谱滚降序列构建单元1206,用于对所述连续两帧音频帧信号的归一化频谱系数的差的平方和进行求和计算,获得所述区间音频数据的频谱滚降序列。
所述区间音频数据的频谱滚降序列可表示为FXi(n),所述频谱滚降序列构建单元1206可采用图4所示实施列中的公式(4)计算获得该FXi(n)。
请参见图10,为本发明实施例提供的定位模块的实施例的结构示意图;该定位模块103可包括:归一化处理单元1301、位置计算单元1302和定位单元1303。
归一化处理单元1301,用于分别对所述区间音频数据的能量序列和频谱滚降序列进行归一化处理。
按照图8-图9所示实施例的描述,所述区间音频数据的能量序列可表示为Ei(n),所述区间音频数据的频谱滚降序列可表示为FXi(n)。所述归一化处理单元1301可采用图5所示实施例中的公式(5),对所述Ei(n)进行归一化处理,获得归一化后的能量序列为Emi(n);所述归一化处理单元1301可采用图5所示实施例中的公式(6),对所述FXi(n)进行归一化处理,获得归一化后的频谱滚降序列为FXmi(n)。
位置计算单元1302,用于根据所述归一化后的能量序列、所述归一化后的频谱滚降序列以及预设的副歌时长,计算副歌在所述区间音频数据中的位置。
所述位置计算单元1302的计算过程具体可包括以下步骤C’-H’:
C’、计算Emi(n)序列和FXmi(n)序列的和,获得Si(n)序列,该Si(n)序列可表示为图5所示实施例中的公式(7)。
D’、假设副歌时长为T',需要说明的是,副歌时长可以根据用户的实际需要进行设定,例如可以为10s,20s等等。由于该区间音频数据包含的任一帧音频帧信号xi(n)的帧长为Ts,则可计算获得副歌时长相对于每帧音频帧信号的比值L,该L可表示为图5所示实施例中的公式(8)。
E’、对Si(n)序列进行均值滤波处理,获得Smi(n)序列。需要说明的是,对Si(n)序列进行均值滤波处理时,所采用的阶数tap为可表示为图5所示实施例中的公式(9)。
F’、查找Smi(n)序列中的最大值,并获取该最大值对应的n的取值,假设此时n的取值为IND。
G’、确定副歌在所述区间音频数据中的帧起止位置,其中,帧起始位置str可表示为图5所示实施例中的公式(10),帧终止位置end可表示为图5所示实施例中的公式(11)。
H’、确定副歌在所述区间音频数据中的时间起止位置,其中,副歌在所述区间音频数据中的时间起始位置tstr可表示为图5所示实施例中的公式(12),所述副歌在所述区间音频数据中的时间终止位置tend可表示为图5所示实施例中的公式(13)。
定位单元1303,用于根据所述副歌在所述区间音频数据中的位置,在所述音频文件中定位所述副歌。
所述定位单元1303根据所述副歌在所述区间音频数据中的时间起止位置,可在所述音频文件中定位所述副歌的时间起止位置,其中,副歌在所述音频文件中的时间起始位置Tstr可表示为图5所示实施例中的公式(14),副歌在所述音频文件中的时间终端位置Tend可表示为图5所示实施例中的公式(15)。
通过上述附图6-附图10所示实施例的描述,本发明实施例可从待处理的音频文件中选取区间音频数据,构建区间音频数据的特征参数序列,以实现音频文件的副歌定位,提升了音频处理的智能性;另外,由于仅需要从音频文件中选取区间音频数据进行音频处理,可有效提升音频处理的效率,进一步提升音频处理的智能性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,附图6-附图10所示音频处理装置的模块或单元对应的程序可存储在终端设备或服务器的可读存储介质内,并被该终端设备或服务器中的至少一个处理器执行,以实现上述音频处理方法,该方法包括图1至图5中各方法实施例所述的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。