专利名称:一种基于歌词的数字音频时域压缩方法
技术领域:
本发明涉及一种基于歌词的数字音频时域压縮方法,属于音频处理技术领域。
背景技术:
随着数字音乐产业的发展,在互联网上出现了越来越多的数字音频歌曲可供用户 选择。由于数字音频歌曲数量的庞大,用户难以在短时间内试听大量歌曲。在多媒体制作 领域,为了将歌曲作为配乐与视频、动画等其他多媒体内容融合,需要改变数字音频歌曲的 时间长度。上述应用场景均需要压縮歌曲的播放时间,同时保持歌曲的播放效果。
音频时域压縮方法所要解决的问题是通过移除音频文件中的部分音频帧,从而加 快音频的播放速度,同时保持歌曲的音调、音色不变。现有音频时域压縮方法没有利用歌曲 的结构信息,因此无法对歌曲的各段分进行不同程度的时域压縮。
发明内容
本发明的目的是提出一种基于歌词的数字音频时域压縮方法,通过分析歌曲所对 应的歌词文件获得歌曲的结构信息,根据歌曲的结构信息对歌曲的音频文件中各段音频进 行不同程度的时域压縮,从而改变一首歌曲的播放时间。
本发明提出的基于歌词的数字歌曲时域压縮方法,包括以下步骤
(1)从歌词文件中提取歌词句子Si,分别从每个歌词句子中提取歌词句子在歌曲 播放时的开始时刻bi、结束时刻ei和歌词句子中包含的字数Wi,歌词句子的时间长度ti = e「bi ; (2)根据上述字数Wi和歌词句子的时间长度ti,得到歌词句子的歌词密度:di =f; (3)根据用户设定的时域压縮率p和与上述歌词文件相对应的数字音频文件的时 间长度L,计算时域压縮后的总时间减少量R = pXL ; (4)将上述总时间减少量R平分为用户设定的m份长度相等的时间片T-^;
加 (5)将上述歌词文件中的所有歌词句子按照上述歌词密度从小到大排序,得到歌 词句子队列q ; (6)从上述歌词句子队列q中取出歌词密度最小的歌词句子Sk,若取出歌词密度 最小的歌词句子Sk,则转到步骤(7);若上述歌词句子队列q为空,则转到步骤(8);
(7)将取出的上述歌词密度最小的歌词句子的时间长度tk减少一个时间片的时间 长度T,并用上述步骤(2)的方法计算上述歌词密度最小的歌词句子Sk的歌词密度dk,若上 述歌词密度dk大于用户设定的歌词密度阈值,则从上述歌词句子队列q中删除歌词密度最 小的歌词句子sk,并转到步骤(6),若上述歌词密度dk小于或等于用户设定的歌词密度阈 值,则使上述歌词句子的时间减少量rk增加一个时间片的时间长度T,并使上述总时间减少 量R减少一个时间片的时间长度T,用上述步骤(2)的方法计算歌词密度最小的歌词句子Sk 的歌词密度dk,转到步骤(5),其中rk = 0、T、2T、……mT ;
(8)根据第i个歌词句子的时间减少量ri和歌词句子的时间长度ti,计算第i个
歌词句子的时域压縮率^ = ^,重复该步骤计算所有歌词句子的时域压縮率; (9)根据上述歌词句子Si的时域压縮率ai,使用音频时域压縮方法对每段歌曲的
音频文件进行时域压縮。 本发明提出的基于歌词的数字音频时域压縮方法,其优点是 1、本发明方法根据歌曲的结构对数字歌曲的各段进行不同程度的压縮,可以减少 压縮对歌曲中重要的部分的影响,从而提高压縮后的数字歌曲的质量。 2、本发明方法利用歌词文件对歌曲进行结构分析,相比于直接使用数字音频文件 进行结构分析的方法,本发明所使用的方法的分析效率和准确性更高。
图1是本发明方法的原理框图。
具体实施例方式
本发明提出的基于歌词的数字音频时域压縮方法,其原理框图如图l所示,包括 以下各步骤 (1)从歌词文件中提取歌词句子Si,分别从每个歌词句子中提取歌词句子在歌曲 播放时的开始时刻bi、结束时刻ei和歌词句子中包含的字数Wi,歌词句子的时间长度ti = 在本实施例中,歌曲的上述歌词文件为文本文件。上述歌词句子的时间长度为该 歌词句子的结束时刻减去该歌词句子的开始时刻。 (2)根据上述歌词句子包含的字数Wi和歌词句子的时间长度ti,得到歌词句子的 歌词密度di =,。 在本实施例中,上述歌词密度&定义为歌词句子包含的字数Wi与歌词句子的时间 长度ti的比值,其中时间长度ti的单位为秒。 (3)根据用户设定的时域压縮率p和与上述歌词文件相对应的数字音频文件的时 间长度L,计算时域压縮后的总时间减少量R = pXL。 在本实施例中,上述数字音频文件的时间长度可由数字音频文件中获得。上述时 域压縮率p定义为需要减少的时间长度与歌曲总长度的比值,时域压縮率的值由用户设 定。时域压縮率p的取值范围为O至IJ 100%。 (4)将上述总时间减少量R平分为用户设定的m份长度相等的时间片'T =^。
在本实施例中,m为大于1的整数。 (5)将上述歌词文件中的所有歌词句子按照上述歌词密度从小到大排序,得到歌 词句子队列q。
(6)从上述歌词句子队列q中取出歌词密度最小的歌词句子Sk,若取出歌词密度 最小的歌词句子Sk,则转到步骤(7);若上述歌词句子队列q为空,则转到步骤(8)。
(7)将取出的上述歌词密度最小的歌词句子的时间长度tk减少一个时间片的长度 T,并用上述步骤(2)的方法计算上述歌词密度最小的歌词句子Sk的歌词密度dk,若上述歌词密度dk大于用户设定的歌词密度阈值,则从上述歌词句子队列q中删除歌词密度最小的 歌词句子Sk,并转到步骤(6),若上述歌词密度dk小于或等于用户设定的歌词密度阈值,则 使上述歌词句子的时间减少量rk增加一个时间片的长度T,并使上述总时间减少量R减少 一个时间片的长度T,用上述步骤(2)的方法计算歌词密度最小的歌词句子Sk的歌词密度 dk,转到步骤(5),其中& = 0、T、2T、 mT。 在本实施例中,上述歌词句子的时间减少量ri为第i个歌词句子Si所减少的时间 长度,每个歌词句子的时间减少量的初始值为O,单位为秒。 上述歌词密度阈值为每一个歌词句子的歌词密度的最大值,歌词密度阈值由用户 给定。 (8)根据第i个歌词句子的时间减少量ri和歌词句子的时间长度ti,计算第i个 歌词句子的时域压縮率^ = ^,重复该步骤计算所有歌词句子的时域压縮率。 在本实施例中,上述歌词句子的时域压縮率的计算方法为对于一个歌词句子Si,
其时域压縮率为该歌词句子的时间减少量ri除以歌词句子的时间长度ti。
(9)根据上述歌词句子Si的时域压縮率ai,使用音频时域压縮方法对每段歌曲的
音频文件进行时域压縮。
权利要求
一种基于歌词的数字歌曲时域压缩方法,其特征在于该方法包括以下步骤(1)从歌词文件中提取歌词句子si,分别从每个歌词句子中提取歌词句子在歌曲播放时的开始时刻bi、结束时刻ei和歌词句子中包含的字数wi,歌词句子的时间长度ti=ei-bi;(2)根据上述字数wi和歌词句子的时间长度ti,得到歌词句子的歌词密度(3)根据用户设定的时域压缩率p和与上述歌词文件相对应的数字音频文件的时间长度L,计算时域压缩后的总时间减少量R=p×L;(4)将上述总时间减少量R平分为用户设定的m份长度相等的时间片(5)将上述歌词文件中的所有歌词句子按照上述歌词密度从小到大排序,得到歌词句子队列q;(6)从上述歌词句子队列q中取出歌词密度最小的歌词句子sk,若取出歌词密度最小的歌词句子sk,则转到步骤(7);若上述歌词句子队列q为空,则转到步骤(8);(7)将取出的上述歌词密度最小的歌词句子的时间长度tk减少一个时间片的时间长度T,并用上述步骤(2)的方法计算上述歌词密度最小的歌词句子sk的歌词密度dk,若上述歌词密度dk大于用户设定的歌词密度阈值,则从上述歌词句子队列q中删除歌词密度最小的歌词句子sk,并转到步骤(6),若上述歌词密度dk小于或等于用户设定的歌词密度阈值,则使上述歌词句子的时间减少量rk增加一个时间片的时间长度T,并使上述总时间减少量R减少一个时间片的时间长度T,用上述步骤(2)的方法计算歌词密度最小的歌词句子sk的歌词密度dk,转到步骤(5),其中rk=0、T、2T、……mT;(8)根据第i个歌词句子的时间减少量ri和歌词句子的时间长度ti,计算第i个歌词句子的时域压缩率重复该步骤计算所有歌词句子的时域压缩率;(9)根据上述歌词句子si的时域压缩率ai,使用音频时域压缩方法对每段歌曲的音频文件进行时域压缩。F2009102357243C0000011.tif,F2009102357243C0000012.tif,F2009102357243C0000013.tif
全文摘要
本发明涉及一种基于歌词的数字音频时域压缩方法,属于音频处理技术领域。本方法通过分析歌曲的歌词文件获得歌曲的结构信息,根据歌曲的结构信息计算数字歌曲音频文件中各段的时域压缩率,再利用音频时域压缩方法对音频文件中的各段进行时域压缩,产生压缩后的歌曲音频文件。本发明方法的优点是可以根据歌曲中不同段的重要程度对各段进行不同程度的压缩,减少时域压缩对歌曲中重要段的影响,从而提高压缩后歌曲音频文件的播放质量。
文档编号G11B20/14GK101702321SQ20091023572
公开日2010年5月5日 申请日期2009年10月15日 优先权日2009年10月15日
发明者刘璋, 王建民, 王朝坤 申请人:清华大学