專利名稱:一種基于歌詞的數字音頻時域壓縮方法
技術領域:
本發明涉及一種基于歌詞的數字音頻時域壓縮方法,屬于音頻處理技術領域。
背景技術:
隨著數字音樂產業的發展,在互聯網上出現了越來越多的數字音頻歌曲可供用戶 選擇。由于數字音頻歌曲數量的龐大,用戶難以在短時間內試聽大量歌曲。在多媒體制作 領域,為了將歌曲作為配樂與視頻、動畫等其他多媒體內容融合,需要改變數字音頻歌曲的 時間長度。上述應用場景均需要壓縮歌曲的播放時間,同時保持歌曲的播放效果。
音頻時域壓縮方法所要解決的問題是通過移除音頻文件中的部分音頻幀,從而加 快音頻的播放速度,同時保持歌曲的音調、音色不變。現有音頻時域壓縮方法沒有利用歌曲 的結構信息,因此無法對歌曲的各段分進行不同程度的時域壓縮。
發明內容
本發明的目的是提出一種基于歌詞的數字音頻時域壓縮方法,通過分析歌曲所對 應的歌詞文件獲得歌曲的結構信息,根據歌曲的結構信息對歌曲的音頻文件中各段音頻進 行不同程度的時域壓縮,從而改變一首歌曲的播放時間。
本發明提出的基于歌詞的數字歌曲時域壓縮方法,包括以下步驟
(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日
發明者劉璋, 王建民, 王朝坤 申請人:清華大學