法律状态公告日
法律状态信息
法律状态
2020-08-28
未缴年费专利权终止 IPC(主分类):G10L11/00 授权公告日:20060607 终止日期:20190910 申请日:20040910
专利权的终止
2006-06-07
授权
授权
2005-05-25
实质审查的生效
实质审查的生效
2005-03-23
公开
公开
技术领域
本发明涉及音乐信号分析领域,尤其是对流行歌曲关键段的定义和提取。
背景技术:
在现代社会,流行音乐越来越广泛地被人们接受,从人们对流行音乐理解的调查来看,人们对流行音乐的高潮部分印象最为深刻,而这一高潮部分则可以代表整首歌曲的类型并且包含歌曲的大部分信息。举一个例子,1998年风靡全球的歌曲《My heart will go on》,其中的“you are here,there’s nothing I fear,and I know that my heart will go on;we’ll stay forever this way,you are safe in my heart,and my heart will go on andon”部分是整首歌曲给人印象最为深刻的部分,听众在听到这个部分的时候能完全理解这首爱情歌曲的主题和掌握歌曲蕴涵的大部分信息。在此,我们定义这种高潮部分为一首歌曲的关键段。
从音乐供应商和音乐听众来说,提取一首歌曲的高潮部分都非常重要:提取出歌曲的关键段以后,对音乐供应商而言,可以快速地将歌曲分类,或放在网上供听众试听和检索;对听众而言,则可以快速试听大量歌曲的关键段,从中找到自己喜欢的歌曲类型和曲目。
本发明定义音乐关键段并提出提取关键段的算法,在所有可以查到的专利或发表的文献中,尚没有发现类似的专利和报道。
发明内容
本发明的目的是提出一种实用快速的关键段提取的方法,用这一方法可以对流行音乐的关键段进行快速准确的提取。
本发明的核心思想是通过对流行音乐的波形参数进行分析,找到最能代表关键段的特征——短时能量;再加上辅助特征——关键段长度,利用这些特征将流行音乐关键段快速准确地从整首音乐中提取出来(见图1.)。
我们知道音乐是一种声音信号,而声音是以声波的形式存在的。通过对声波进行采样和量化,人们把声音信号以波形的方式保存下来,也就是WAV格式,它是声音的最基本存储形式,任何其它类型的音乐信号都可以很容易地转化成这种格式。本发明针对的对象是采样率为11025HZ,量化位数为8位的WAV格式的音乐信号(通过适当调整参数,本方法也可以直接应用于其它不同采样率和量化位数的WAV数据)。
本发明的核心内容包含有以下6个步骤:
第一步,数据分段,把音乐数据流按一定的时间间隔长度分成一系列定长的音频片段;
第二步,特征提取,计算每个音频片段的短时能量和所有音频片段的平均能量;
第三步,把所有音频片段按时间先后顺序分组,每组所包含的音频片段数相同。计算每个音频片段组的短时能量阈值穿越频率;
第四步,对每个音频片段组的短时能量阈值穿越频率做二值化,提取可能的关键段部分;
第五步,对可能的关键段做长度检测,将合适长度的段子放入候选集中,若长度大于阈值则将这个段子返回步骤一;
第六步,关键段选择,从关键段候选集中选择平均能量最高的候选关键段作为最终的流行音乐关键段。
本发明的特征在于它依次含有以下步骤:
(1)计算机初始化
向计算机输入与所述流行歌曲对应的采样频率为11025Hz,量化位数为8位的WAV格式的音乐信号,即音乐的原始波形信号;
(2)对WAV格式的数据分段
每隔0.2秒即每前进2205个采样点取一个音频片段,每个音频片段为1秒,即含11025个采样点;
(3)计算每个音频片段的短时能量和所有音频片段的平均能量,得到整首音乐的短时能量曲线
设Ei为第i个音频片段的短时能量,则
其中,N为每个音频片段的采样点数,N=11025,
x(m)是第i个音频片段内的第m个采样点所对应的波形幅值,其数值在-1到+1之间;
根据每个音频片段的短时能量值组成整首音乐的短时能量曲线;
(4)把所有音频片段按时间先后分组,每组所包含的音频片段数相同,都是10个,每个音频片段组的长度为2.8秒,再计算每个音频片段组的短时能量阈值穿越频率
(4.1)设t为阈值,它是整首歌曲的平均短时能量的0.9倍,即
其中,M为整首歌曲音乐数据的片段总数;
(4.2)对音乐数据中每个音频片段组计算短时能量阈值穿越频率,它是指在一个音频片段组长的音频信号中,其短时能量值超过上述阈值的次数除以这段信号所包含的音频片段数,所述第p个音频片段组的短时能量阈值穿越频率TCRp为:
其中,Ej是第p个音频片段组中的第j个音频片段的短时能量值,S是音频片段组中所包含的音频片段个数,S=10;
(4.3)按照上述方法求出每个音频片段组的短时能量阈值穿越频率值,从而得到整首歌曲的短时能量阈值穿越频率曲线;
(5)对整首歌曲的短时能量阈值穿越频率曲线做二值化,提取可能的关键段,形成关键段后选集
(5.1)计算二值化的阈值T,它是TCR曲线均值的0.9倍:
其中,P是短时能量阈值穿越频率曲线中所对应的音频片段组的总数;
(5.2)对上述短时能量阈值穿越频率曲线进行二值化
得到二值化后的短时能量阈值穿越频率曲线BTCR。在BTCR中每个连续的“1”值部分所对应就是这首流行歌曲的相对高能量区域,即可能的候选关键段;
(6)对可能的后续关键段做长度检测,把具有适合长度的片段放入关键段后选集中。
若其长度大于阈值,则把该段音频数据返回步骤(1)
设定的流行音乐关键段的允许长度范围为10-40秒,只有连续“1”值部分所对应的音频片段在此长度范围内才可被用作为候选关键段。长度大于40秒的连续“1”值部分所对应的音频数据将被返回步骤(1);
(7)重复步骤(1)-(6),直到二值化后的所有连续“1”值部分所对应的音频数据的长度没有超过40秒的为止;
(8)从关键段后选集中选择平均能量最高的候选关键段作为最终的流行音乐关键段设:Ci是候选关键段集合Ψ中的第i个候选关键段,计算每个Ci的平均能量,则Ci的平均能量ECi为:
其中,NCi是Ci中所包含的采样点个数,
x(m)是Ci中的第m个采样点所对应的波形幅值。
若:
本发明的算法对于长度为5分钟的流行歌曲在Pentium IV 1,500M HZ CPU的机器上运行只需要470毫秒的时间,除去读取数据时间,实际算法执行时间为90毫秒,因此完全可以实现在线实时关键段提取。
附图说明:
图1.流行音乐关键段提取算法系统流程图;
图2.流行音乐《My heart will go on》原始波形图;
图3.流行音乐《My heart will go on》短时能量曲线图;
图4.流行音乐《My heart will go on》短时能量阈值穿越频率曲线图;
图5.短时能量阈值穿越频率曲线图的二值化后的结果图;
图6.流行音乐《My heart will go on》最终的关键段波形图,对应的歌词为“you arehere,there’s nothing I fear,and I know that my heart will go on;we’llstay forever this way,you are safe in my heart,and my heart will go onand on”;
具体实施方式:
下面具体介绍各个步骤:
(1)数据分段
WAV格式的数据实际上是一系列的波形采样点,每个采样点对应着一个波形幅值,其数值在-1到+1之间。我们首先将整个音乐信号分成若干片段,每个片段包含11025个采样点(1秒)。为了使下一步所求得的特征值的变化较为平稳,我们每前进2205个采样点(0.2秒)取一个片段。这样,相邻的两个音频片段中将包含8820个(0.8秒)重复的采样点。
(2)短时能量计算
然后求取音频片段的短时能量值,计算公式如下:
这里N是每个音频片段所包含的采样点个数,x(m)是第i个音频片段内的第m个采样点所对应的波形幅值。在求得每个音频片段的短时能量值后,我们将得到整首音乐的短时能量曲线。
(3)计算短时能量阈值穿越频率
调查表明人们通常对歌曲的高潮部分很感兴趣,而一首歌曲的高潮部分往往对应着这首歌曲的高能量区域。因此,我们将在下面的步骤中提取出歌曲的若干相对高能量区域,并把它们作为这首歌曲的候选关键段。由于歌曲的短时能量曲线的变化一般都比较剧烈,使用直接的“阈值法”很难将高能量区域准确、完整地提取出来。为此,我们将采用通过计算短时能量阈值穿越频率的方法提取歌曲的高能量区域。所谓短时能量阈值穿越频率是指在一段较长的音频信号中,其短时能量值大于某个阈值的次数除以这段音频信号所包含的音频片段数。基于步骤(2)得到的短时能量曲线,先求取阈值如下:
这里M是音乐数据的片段总数,Ei是第i个片段的短时能量数值,t是用于计算短时能量阈值穿越频率的能量阈值,这里t实际上就是整首歌曲的平均短时能量的0.9倍。
将音频片段按时间先后顺序分组,每10个音频片段分为一组,这样每个音频片段组的长度为2.8秒(9×0.2+1=2.8)。每个音频片段都会属于一个音频片段组,每个音频片段组不包含相同的音频片段。采用如下公式对每个音频片段组计算短时能量阈值穿越频率。其中,S是音频片段组中所包含的音频片段个数,这里为10,Ej是第p个音频片段组中的第j个音频片段的短时能量值。
对每个音频片段组都求得短时能量阈值穿越频率后,我们将得到整首歌曲的短时能量阈值穿越频率曲线。
(4)对短时能量阈值穿越频率曲线做二值化
基于第(3)步求得的短时能量阈值穿越频率曲线TCR,计算二值化阈值如下:
这里P是短时能量阈值穿越频率曲线所对应的音乐数据中的音频片段组总数,T实际上是TCR曲线均值的0.9倍。对上述短时能量阈值穿越频率曲线进行二值化,采用如下公式:
二值化以后我们将得到只有0和1值的曲线BTCR,BTCR中每个连续的“1”值部分对应的就是这首歌曲的相对高能量区域也就是可能的候选关键段。
(5)提取候选关键段
通过统计人们手工截取的流行音乐关键段的长度分布,我们发现95%的手工截取的关键段的长度介于10秒-40秒之间。因此,我们将对BTCR中每个连续的“1”值部分所对应的音频信号做长度检测,只有长度在10秒到40秒之间的全“1”段才能成为候选关键段。如果长度大于40秒,则将这个大于40秒的连续“1”值部分所对应的音频数据重新送回步骤(1),直到二值化后没有长度超过40秒的连续“1”值部分。下面是候选关键段提取的具体方法:
其中,Segi是第i个候选关键段Li是Segi的长度,Ψ是候选关键段集合。
(6)选择最终的关键段
如果候选关键段集合Ψ为空,则表明该流行歌曲不存在合适的关键段,否则我们将从Ψ中选择出一个最终的关键段。在最终关键段选择中,长度已经不是选取标准,我们将选取平均能量最高的候选关键段作为最终关键段,如下所示:
这里Ci是Ψ中的第i个候选关键段,NCi是Ci中所包含的采样点个数,x(m)是Ci中的第m个采样点所对应的波形幅值。ECi是Ci的平均能量,keyseg是从该流行歌曲中提取出的最终关键段。
我们的发明可以在普通PC计算机、掌上电脑或其它系统上实现,对操作系统没有要求。下面仍以英文流行歌曲《My heart will go on》为例,说明本方法的具体实施方式。首先,歌曲被保存为采样率为11025/秒,量化位数为8位的混和单声道WAV文件。WAV文件的数据为形如“…0.0469 0.0391 0.0391 0.0313 0.0234 0.0156 0.0156-0.0156-0.0156-0.0078-0.0234-0.0391-0.0313…”的数据流,每个数据代表该采样点的波形幅值,每秒钟的音频流包含11025个这样的数据。歌曲《My heart will go on》的长度约为310.8秒,其WAV文件约为包含3426570个采样点的数据流(见图2.)。
(1)数据分段
我们首先将整首音乐信号分成若干片段,每个片段包含11025个采样点(1秒)。为了使下一步所求得的特征值的变化较为平稳,我们每前进2205个采样点(0.2秒)取一个片段。这样,相邻的两个音频片段中将包含8820个(0.8秒)重复的采样点。对于歌曲《My heartwill go on》来说,其片段个数约为1549。
(2)短时能量计算
然后按照如下公式求取每个音频片段的短时能量值。
这里N是每个音频片段所包含的采样点个数,x(m)是第i个音频片段内的第m个采样点所对应的波形幅值。在求得每个音频片段的短时能量值后,我们将得到整首音乐的短时能量曲线(见图3.)。短时能量曲线是一系列形如“…53.6411 44.1260 44.1824 38.562937.0142 33.5928 33.3917 32.6293 31.6809 31.2856…”的数据流。
(3)计算短时能量阈值穿越频率
所谓短时能量阈值穿越频率是指在一段较长的音频信号中,其短时能量值超过某个阈值的次数除以这段音频信号所包含的音频片段数。基于步骤(2)得到的短时能量曲线,先求取阈值如下:
这里M是音乐数据的片段总数,Ei是第i个片段的短时能量数值,t是用于计算短时能量阈值穿越频率的能量阈值,实际上就是整首歌曲的平均短时能量的0.9倍。对于歌曲《My heartwill go on》来说,t=35.0684。
将音频片段按时间先后顺序分组,每10个音频片段分为一组,这样每个音频片段组的长度为2.8秒(9×0.2+1=2.8)。每个音频片段都会属于一个音频片段组,每个音频片段组不包含相同的音频片段。采用如下公式对每个音频片段组计算短时能量阈值穿越频率。其中,S是音频片段组中所包含的音频片段个数,这里为10,Ej是第p个音频片段组中的第j个音频片段的短时能量值。
假设一个音频片段组中所包含的短时能量值序列为“53.6411 44.1260 44.1824 38.562937.0142 33.5928 33.3917 32.6293 31.6809 31.2856”,则这个音频片段组所对应的短时能量阈值穿越频率为0.5。对每个音频片段组都求得短时能量阈值穿越频率后,我们将得到整首歌曲的短时能量阈值穿越频率曲线(见图4.)。短时能量阈值穿越频率曲线是一系列介于0,1之间的数据流,如:“…0.1 0.8 0.6 1.0 0.5 1.0 0.3…”。
(4)对短时能量阈值穿越频率曲线做二值化
基于第(3)步求得的短时能量阈值穿越频率曲线TCR,计算二值化阈值如下:
这里P是短时能量阈值穿越频率曲线所包含的数据总数,T实际上是TCR曲线均值的0.9倍。对上述短时能量阈值穿越频率曲线进行二值化,采用如下公式:
二值化以后我们将得到只有“0”和“1”值的曲线BTCR。对于歌曲《My heart will go on》来说,T=0.38571,将上一步中得到的短时能量阈值穿越频率序列“…0.1 0.8 0.6 1.0 0.51.0 0.3…”做二值化后得到的结果为“…0 1 1 1 1 1 0…”。其中连续的“1”值部分对应的就是这首歌曲的相对高能量区域也就是可能的候选关键段(见图5.)。
(5)提取候选关键段
对BTCR中每个连续的“1”值部分所对应的音频信号做长度检测,只有长度在10秒到40秒之间的全“1”段才能成为候选关键段,如果长度大于40秒,则将这个连续的“1”值部分所对应的音频数据重新送回步骤(1),直到二值化后没有长度超过40秒的连续“1”值部分。
(6)选择最终的关键段
在最终关键段选择中,长度已经不是选取标准,我们将选取平均能量最高的候选关键段作为最终关键段,如下所示:
这里Ci是Ψ中的第i个候选关键段,NCi是Ci中所包含的采样点个数,x(m)是Ci中的第m个采样点所对应的波形幅值。ECi是Ci的平均能量,keyseg是从该流行歌曲中提取出的最终关键段。从流行歌曲《My heart will go on》中最终提取出的关键段长度为36秒,其对应的歌词为“you are here,there’s nothing I fear,and I know that my heart will goon;we’ll stay forever this way,you are safe in my heart,and my heart will goon and on”(见图6.)。
机译: 用于在音乐成分中提取段的段自动提取系统,段自动提取方法和段自动提取程序
机译: 指定手段,指定成为电子音乐的试听内容或普通内容
机译: 基于MP3的流行歌曲摘要化安装及使用音乐结构的方法,用于实现该方法的存储介质存储程序