專利名稱:基于音頻解碼器的音調(diào)和節(jié)奏快速調(diào)節(jié)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種音調(diào)和節(jié)奏快速調(diào)節(jié)方法,尤其是涉及一種基于音頻解碼器的音調(diào)和節(jié)奏快速調(diào)節(jié)方法背景技術(shù)隨著技術(shù)的發(fā)展和成本的下降,多媒體設(shè)備逐漸得到普及,在多媒體設(shè)備上播放音樂(lè)和語(yǔ)音就越來(lái)越流行。隨著不同應(yīng)用的普及,例如便攜式學(xué)習(xí)機(jī),音調(diào)和節(jié)奏調(diào)節(jié)就越來(lái)越成為多媒體設(shè)備中不可缺少的一項(xiàng)功能。其中音調(diào)的調(diào)節(jié)是在不改變總的播放時(shí)間的情況下,改變基音及其諧音的頻率來(lái)實(shí)現(xiàn);節(jié)奏的調(diào)節(jié)是在不改變音調(diào)的情況下,延長(zhǎng)或者縮短總的播放時(shí)間來(lái)實(shí)現(xiàn),音調(diào)和節(jié)奏的調(diào)節(jié)可以同時(shí)進(jìn)行。
現(xiàn)有技術(shù)中,節(jié)奏調(diào)節(jié)采用時(shí)域相關(guān)的方法,該方法以幀為單位來(lái)改變時(shí)域的輸出樣點(diǎn)的數(shù)量。有選擇的重復(fù)或者丟棄一些樣點(diǎn),在相鄰幀之間的過(guò)渡部分采取尋找相關(guān)最大的一段和上一幀結(jié)束的一段做混疊。例如輸入N個(gè)樣點(diǎn)為一幀,如果是節(jié)奏變快一倍,經(jīng)過(guò)這個(gè)算法的處理,則輸出N/2個(gè)樣點(diǎn)。節(jié)奏變慢的方法類似。該方法處理過(guò)程中需要占用大量的內(nèi)存做緩沖,同時(shí)由于尋找相關(guān)系數(shù)最大的樣點(diǎn)需要做大量的累乘加操作,運(yùn)算量較大。
對(duì)音調(diào)的改變采用頻域調(diào)節(jié)的方法如圖1所示,該方法的核心是把時(shí)域信號(hào)轉(zhuǎn)換成頻域信號(hào),對(duì)頻域信號(hào)進(jìn)行音調(diào)搬移(Pitch Shifting)之后,再轉(zhuǎn)換成時(shí)域信號(hào)。這種通過(guò)頻域調(diào)節(jié)的方法,處理過(guò)程中需要做一次離散傅立葉變換和一次離散傅立葉反變換,需要的運(yùn)算量很大。因此,如果用在用在多媒體的音頻解碼器中,目前常用的這些方法要對(duì)輸出的音頻信號(hào)進(jìn)行音調(diào)和節(jié)奏的調(diào)節(jié)時(shí),都要做為一個(gè)獨(dú)立的后處理模塊來(lái)進(jìn)行處理,則沒(méi)有充分利用音頻解碼器中現(xiàn)有的模塊,多媒體中常有的音頻解碼器的信號(hào)處理流程如圖2所示,其中有時(shí)域到頻域的轉(zhuǎn)換處理過(guò)程。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種具有運(yùn)算量小,占用內(nèi)存少的音調(diào)和節(jié)奏的快速調(diào)節(jié)方法。
上述發(fā)明目的可通過(guò)以下的技術(shù)措施來(lái)實(shí)現(xiàn)一種基于音頻解碼器的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,音頻信號(hào)先依次經(jīng)音頻解碼器解碼、反量化、頻域處理,接著對(duì)頻域處理后的信號(hào)進(jìn)行音調(diào)調(diào)節(jié),再接著依次經(jīng)音頻解碼器對(duì)音調(diào)調(diào)節(jié)后的信號(hào)進(jìn)行頻域到時(shí)域的轉(zhuǎn)換、時(shí)域處理;最后時(shí)域處理后信號(hào)進(jìn)行節(jié)奏調(diào)節(jié)輸出。
本發(fā)明所述的音調(diào)調(diào)節(jié)的具體過(guò)程為對(duì)頻域處理后的信號(hào)先進(jìn)行頻譜分析,用于改善由于分幀造成的頻譜失真,使得到的頻譜更接近于實(shí)際的頻率,再進(jìn)行音調(diào)搬移,用于補(bǔ)償由于改變輸出速率而造成的音調(diào)偏移,最后進(jìn)行頻譜綜合,用于修復(fù)音調(diào)搬移造成的頻譜失真;頻譜綜合后利用音頻解碼器進(jìn)行頻域到時(shí)域的轉(zhuǎn)換。
本發(fā)明所述音調(diào)搬移過(guò)程中音調(diào)搬移的大小和方向由事先設(shè)定的音調(diào)和節(jié)奏兩個(gè)參數(shù)決定,最終音調(diào)搬移的幅度按下式得出Pitch_New=Pitch_fs×(1-Tempo)+Pitch其中Pitch表示設(shè)定音調(diào)所需調(diào)節(jié)的幅度,大于0表示音調(diào)增高,小于0表示音調(diào)降低;Pitcn_fs表示輸入樣點(diǎn)中最高的音調(diào)值;Tempo表示設(shè)定節(jié)奏,大于1表示變快,小于1表示變慢;Pitcn_New表示最終音調(diào)搬移的幅度。
本發(fā)明所述的節(jié)奏調(diào)節(jié)的具體過(guò)程為根據(jù)設(shè)定的節(jié)奏來(lái)改變數(shù)模轉(zhuǎn)換(DA)的輸出速率。數(shù)模轉(zhuǎn)換的輸出速率同節(jié)奏快慢成正比,節(jié)奏變快,數(shù)模轉(zhuǎn)換輸出速率加大;節(jié)奏變慢,數(shù)模轉(zhuǎn)換輸出速率減小。調(diào)節(jié)后的輸出速率按下式得出SR_New=SR×Tempo;其中SR是原來(lái)的DA輸出速率,Tempo表示設(shè)定節(jié)奏,大于1表示變快,小于1表示變慢,SR_New表示調(diào)整后的輸出速率。
本發(fā)明利用音頻解碼器中已有的前處理模塊,在轉(zhuǎn)換前的頻域信號(hào)進(jìn)行音調(diào)調(diào)節(jié),再利用了音頻解碼中的頻域到時(shí)域的轉(zhuǎn)換,通過(guò)改變輸出速率,達(dá)到節(jié)奏的調(diào)節(jié),這樣既繼承了采用頻域調(diào)節(jié)實(shí)現(xiàn)音調(diào)改變效果好的優(yōu)點(diǎn),同時(shí)大大減少了原有音調(diào)和節(jié)奏調(diào)節(jié)方法中需要的大量運(yùn)算,也避免了使用大量的內(nèi)存緩沖樣點(diǎn)數(shù)據(jù),同時(shí)對(duì)音頻解碼器增加的運(yùn)算量也很小。
圖1為現(xiàn)有技術(shù)采用頻域調(diào)節(jié)實(shí)現(xiàn)音調(diào)改變的流程圖;圖2為現(xiàn)有的音頻解碼器的信號(hào)處理流程圖;圖3為本發(fā)明的信號(hào)處理流程圖。
具體實(shí)施例方式
如圖3所示,本發(fā)明具體實(shí)施步驟如下(1)音頻信號(hào)先依次經(jīng)音頻解碼器解碼、反量化、頻域處理,例如MP3解碼流程中,首先進(jìn)行Huffman(霍夫曼)解碼,得到量化后的頻譜系數(shù),然后把量化后的頻譜系數(shù)進(jìn)行反量化處理,最后做一些頻域處理,例如聯(lián)合立體聲的處理。
(2)對(duì)頻域處理后的信號(hào)先進(jìn)行頻譜分析,根據(jù)編碼時(shí)采用的時(shí)頻轉(zhuǎn)換方法,得到加窗的類型等信息,然后把頻譜反加窗處理,使得到的頻譜系數(shù)更接近真實(shí)的頻譜。
(3)再進(jìn)行音調(diào)搬移,音調(diào)搬移是指在原來(lái)的基礎(chǔ)上主音偏移的大小。音調(diào)搬移過(guò)程中音調(diào)搬移的大小和方向由用戶事先設(shè)置所需要的音調(diào)和節(jié)奏兩個(gè)參數(shù)來(lái)決定,節(jié)奏是指播放的快慢,最終音調(diào)搬移的幅度按下式得出Pitch_New=Pitch_fs×(1-Tempo)+Pitch其中Pitch表示設(shè)定音調(diào)需要調(diào)節(jié)的幅度,大于0表示音調(diào)增高,小于0表示音調(diào)降低;Pitch_fs表示輸入樣點(diǎn)中最高的音調(diào)值;Tempo表示設(shè)定的節(jié)奏,大于1表示變快,小于1表示變慢;Pitch_New表示最終音調(diào)搬移的幅度。
根據(jù)得出的Pitch_New,進(jìn)行音調(diào)搬移,如果大于0,則表示提高頻譜,如果小于0則表示降低頻譜。
(4)進(jìn)行頻譜綜合,根據(jù)頻域到時(shí)域轉(zhuǎn)換的方法,把搬移后的頻譜做調(diào)整,進(jìn)行加窗處理。
(5)頻譜綜合后利用音頻解碼器對(duì)音調(diào)調(diào)節(jié)后的信號(hào)進(jìn)行頻域到時(shí)域的轉(zhuǎn)換、時(shí)域處理;例如在MP3解碼器中,做MDCT(離散余弦變換)和濾波器組綜合。
(6)時(shí)域處理后信號(hào)進(jìn)行節(jié)奏調(diào)節(jié)輸出。節(jié)奏調(diào)節(jié)的具體過(guò)程為根據(jù)用戶事先設(shè)置的節(jié)奏來(lái)改變數(shù)模轉(zhuǎn)換(DA)的輸出速率。DA的輸出速率同節(jié)奏快慢成正比,節(jié)奏變快,DA輸出速率加大;節(jié)奏變慢,DA輸出速率減小。調(diào)節(jié)后的輸出速率按下式得出SR_New=SR×Tempo;其中SR是原來(lái)的DA輸出速率,Tempo表示節(jié)奏,大于1表示變快,小于1表示變慢,SR_New表示調(diào)整后的輸出速率。
權(quán)利要求
1.一種基于音頻解碼器的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,其特征在于音頻信號(hào)先依次經(jīng)音頻解碼器解碼、反量化、頻域處理,接著對(duì)頻域處理后的信號(hào)進(jìn)行音調(diào)調(diào)節(jié),再接著依次經(jīng)音頻解碼器對(duì)音調(diào)調(diào)節(jié)后的信號(hào)進(jìn)行頻域到時(shí)域的轉(zhuǎn)換、時(shí)域處理;最后時(shí)域處理后信號(hào)進(jìn)行節(jié)奏調(diào)節(jié)輸出。
2.根據(jù)權(quán)利要求1所述的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,其特征在于所述的音調(diào)調(diào)節(jié)的具體過(guò)程為對(duì)頻域處理后的信號(hào)先進(jìn)行頻譜分析,用于改善由于分幀造成的頻譜失真,使得到的頻譜更接近于實(shí)際的頻率;再進(jìn)行音調(diào)搬移,用于補(bǔ)償由于改變輸出速率而造成的音調(diào)偏移;最后進(jìn)行頻譜綜合,用于修復(fù)音調(diào)搬移造成的頻譜失真;頻譜綜合后利用音頻解碼器進(jìn)行頻域到時(shí)域的轉(zhuǎn)換。
3.根據(jù)權(quán)利要求2所述的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,其特征在于所述音調(diào)搬移過(guò)程中音調(diào)搬移的大小和方向由事先設(shè)定的音調(diào)和節(jié)奏兩個(gè)參數(shù)決定,最終音調(diào)搬移的幅度按下式得出Pitch_New=Pitch_fs×(1-Tempo)+Pitch其中Pitch表示設(shè)定音調(diào)所需調(diào)節(jié)的幅度,大于0表示音調(diào)增高,小于0表示音調(diào)降低;Pitch_fs表示輸入樣點(diǎn)中最高的音調(diào)值;Tempo表示設(shè)定節(jié)奏,大于1表示變快,小于1表示變慢;Pitch_New表示最終音調(diào)搬移的幅度。
4.根據(jù)權(quán)利要求1所述的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,其特征在于所述的節(jié)奏調(diào)節(jié)的具體過(guò)程為根據(jù)設(shè)定的節(jié)奏來(lái)改變數(shù)模轉(zhuǎn)換的輸出速率;數(shù)模轉(zhuǎn)換的輸出速率同節(jié)奏快慢成正比,節(jié)奏變快,數(shù)模轉(zhuǎn)換輸出速率加大;節(jié)奏變慢,數(shù)模轉(zhuǎn)換輸出速率減??;調(diào)節(jié)后的輸出速率按下式得出SR_New=SR×Tempo;其中SR是原來(lái)的數(shù)模轉(zhuǎn)換輸出速率,Tempo表示設(shè)定節(jié)奏,大于1表示變快,小于1表示變慢,SR_New表示調(diào)整后的輸出速率。
全文摘要
本發(fā)明公開(kāi)了一種基于音頻解碼器的音調(diào)和節(jié)奏快速調(diào)節(jié)方法,音頻信號(hào)先依次經(jīng)音頻解碼器解碼、反量化、頻域處理,接著對(duì)頻域處理后的信號(hào)進(jìn)行音調(diào)調(diào)節(jié),再接著依次經(jīng)音頻解碼器對(duì)音調(diào)調(diào)節(jié)后的信號(hào)進(jìn)行頻域到時(shí)域的轉(zhuǎn)換、時(shí)域處理;最后時(shí)域處理后信號(hào)進(jìn)行節(jié)奏調(diào)節(jié)輸出。本發(fā)明利用音頻解碼器中已有的前處理模塊,在轉(zhuǎn)換前的頻域信號(hào)進(jìn)行音調(diào)調(diào)節(jié),再利用了音頻解碼中的頻域到時(shí)域的轉(zhuǎn)換,通過(guò)改變輸出速率,達(dá)到節(jié)奏的調(diào)節(jié),這樣既繼承了采用頻域調(diào)節(jié)實(shí)現(xiàn)音調(diào)改變效果好的優(yōu)點(diǎn),同時(shí)大大減少了原有音調(diào)和節(jié)奏調(diào)節(jié)方法中需要的大量運(yùn)算,也避免了使用大量的內(nèi)存緩沖樣點(diǎn)數(shù)據(jù),同時(shí)對(duì)音頻解碼器增加的運(yùn)算量也很小。
文檔編號(hào)G10H1/00GK1831940SQ20061003488
公開(kāi)日2006年9月13日 申請(qǐng)日期2006年4月7日 優(yōu)先權(quán)日2006年4月7日
發(fā)明者黃立新 申請(qǐng)人:安凱(廣州)軟件技術(shù)有限公司