基于深度神經網絡的音頻帶寬擴展編碼解碼方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明屬于音頻編碼技術領域,尤其涉及一種基于深度神經網絡的音頻帶寬擴展 編碼解碼方法及裝置。
【背景技術】
[0002] 隨著人們對音質要求的提高以及移動終端用戶數(shù)量的不斷增加,音頻編碼效率的 要求也日漸提高。音頻帶寬擴展技術與現(xiàn)有音頻編碼方式相比具有高效、低碼率的優(yōu)勢。其 主要思想是利用信號的低頻部分與高頻部分的相關性對高頻進行編碼,以提高音質、降低 編碼碼率的目的。傳統(tǒng)的音頻帶寬擴展在編碼端提取高頻參數(shù)并傳輸?shù)浇獯a端,解碼端將 解碼后的低頻信號復制到高頻,再利用高頻參數(shù)對其進行調整得到高頻信號。該方法利用 了高低頻信號間的相關性,但當高低頻信號的相關性較弱時,高頻信號的重建質量降低。
【發(fā)明內容】
[0003] 深度神經網絡在圖像、音頻信號的編碼、恢復、分類、重構有著重要的作用。本發(fā)明 針對傳統(tǒng)方法中高低頻信號間相關性較弱時造成編碼質量不佳的問題,提供了一種基于深 度神經網絡的音頻帶寬擴展編碼解碼方法及裝置,利用多層神經網絡預測信號高頻部分, 減少信號高頻部分需編碼的數(shù)據量,以獲得較優(yōu)的傳輸效率。
[0004] 本發(fā)明的方法所采用的技術方案是:基于深度神經網絡的音頻帶寬擴展編碼解碼 方法,其特征在于,包括編碼方法和解碼方法;
[0005] 所述的編碼方法,其具體實現(xiàn)包括以下步驟:
[0006] 步驟Al:將輸入待處理信號進行分幀處理,再濾除頻率在50Hz以下的超低頻部分 (這部分人耳感知度較低);處理后的信號分別通過高通濾波、低通濾波,最終得到信號的 高頻部分Shf與信號的低頻部分SM
[0007]步驟A2 :將步驟1所得信號高頻部分Shf進行修正離散余弦變換(簡稱MDCT),得 到信號高頻部分的頻域系數(shù),然后對該頻域系數(shù)劃分子帶,進行包絡提取得到高頻 頻域包絡參數(shù)Env(i);
[0008] 步驟A3:將步驟1所得信號低頻部分Slf通過低頻編碼器進行編碼,得到低頻編碼 參數(shù);
[0009] 步驟A4:將步驟A2中得到的高頻頻域包絡參數(shù)Env(i)通過矢量量化,與步驟A3 中得到的低頻編碼參數(shù)同時傳送至碼流;
[0010] 所述的解碼方法,其具體實現(xiàn)包括以下步驟:
[0011] 步驟Bl:從輸入碼流中分別提取已通過矢量量化的高頻頻域包絡參、低頻編碼參 數(shù);
[0012]步驟B2 :解碼已通過矢量量化的高頻頻域包絡參數(shù)Env(i),得到高頻部分的頻域 包絡信息Env⑴;
[0013]步驟B3:使用與步驟A3中采用的低頻編碼對應的方法解碼,得到信號低頻部分時 域信息s' ?和低頻規(guī)范化系數(shù);
[0014] 步驟M:使用逐層貪婪訓練方法,訓練得到自編碼器的權重參數(shù)0 = {ff(Q),W(1),…,W(k),b(1),b(2),…,b(k)},并確定迭代次數(shù)k。其中,WwGRmlx,示權重矩陣, b(Q)GRml表示偏置矢量,Rmxn表示mXn的實數(shù)矩陣;
[0015] 步驟B5 :將步驟B3解碼得到的低頻規(guī)范化系數(shù)輸入到第一個隱藏層Ill,再與 步驟M中得到的權重參數(shù)0對應相乘相加,最后利用非線性激活函數(shù)f(*),得到下一層 每一單元的激活值〃丨7),依次遞推,得到自編碼器網絡的輸出yeRn,也就是最終信號高頻 部分的精細結構信息Fine_stru(i,j);其中Rn表示IXn維實數(shù)矩陣。
[0016] 步驟B6 :將步驟B5中得到的信號高頻部分的精細結構信息Fine_stru(i,j)與步 驟B2中計算得到的信號高頻部分的頻域包絡信息Env(i)相乘,生成信號高頻部分的頻域 信息;
[0017] 步驟B7 :將步驟B6中得到的信號高頻部分的頻域信息進行修正離散余弦變換的 逆變換(簡稱MDCT),得到信號高頻部分時域信息S'HF,再與步驟B3中得到的解碼后的信 號低頻部分時域信息S\F疊加,利用SAtra=S\F+S'HF,得到最終的輸出信號。
[0018] 作為優(yōu)選,步驟A2中所述的信號高頻部分的頻域包絡參數(shù)Env(i)的計算公式 為:
[0019]
[0020] 其中Env(i)表示當前幀第i個子帶的能量,M是子帶的長度。
[0021] 作為優(yōu)選,步驟B5中所述的利用信號低頻部分的編碼參數(shù)來推算信號高頻部分 的精細結構信息Fine_stru(i,j),其具體實現(xiàn)包括以下子步驟:
[0022] 步驟B5. 1 :將步驟B3解碼得到的低頻規(guī)范化系數(shù)5/F輸入到第一個隱藏層hp Ill(X)GRml的表示為:
[0027] f( ?)是非線性激活函數(shù),af(/)表示第1層第i單元的激活值,為Ill(X)中的元素; 是第1層第j單元與第1+1層第i單元之間的聯(lián)接參數(shù),以是第1+1層第i單元的偏 置項;
[0028] 步驟B5. 2 :因自編碼器的拓撲結構完全依賴于輸入層k的大小和每層隱藏單元個 數(shù)Hi1,故對于其他層來說,當前層的輸入是前一層的輸出,而當前層的輸出又可作為下一層 的輸入,每個隱藏層的表示從如V如下:
[0029] Ii2Qi1) =fCW^hi+b⑵)
[0030] ?
[0031] ?
[0032] ?
[0033] Ii1Qi1D=fO^Vb⑴);
[0034] ?
[0035] ?
[0036] ?
[0037] hk(hkl) =f(ff(k)hkl+b(k))
[0038] 此處k表示隱藏層的個數(shù),Hi1表示每個隱藏層中的單元個數(shù);
[0039] 步驟B5.3 :以此模式順序迭代k次,得到自編碼器網絡的輸出yGRn,輸出y在隱 藏層hk之后進行重建,如下式:
[0040] y=f(w(k)hk+b(k))
[0041] 其中,迭代次數(shù)k,權重參數(shù),偏置項(/)均由步驟B3參數(shù)訓練確定。
[0042] 作為優(yōu)選,步驟M中所述的逐層貪婪訓練方法,其具體實現(xiàn)包括以下子步驟:
[0043] 步驟M. 1 :參見圖3,自編碼器由輸入層、輸出層以及一定數(shù)量的隱藏層組成。將 音頻數(shù)據集中的信號依次替代自編碼器結構中的輸入信號X,再在輸入信號X上訓練第一 個隱藏層的權重參數(shù)、4(1>,此處表示第一層第j單元與第二層第i單元之間的聯(lián) 接參數(shù)(也就是權重),表示第一層第i單元的偏置項;
[0044] 步驟B4. 2 :利用步驟M. 1獲得的第一個隱藏層的權重參數(shù)和低頻規(guī)范化系數(shù) ,計算第一層的隱藏單元的激活值,然后訓練第二層得到第二個隱藏層的權重參數(shù)
[0045] 步驟B4. 3 :重復訓練后面每一層,直到最后一層,得到每一層的自編碼器權重參 數(shù)^f、時、。
[0046] 作為優(yōu)選,步驟B5的具體實現(xiàn)包括以下子步驟:
[0047] 步驟B5. 1 :將步驟B3解碼得到的低頻規(guī)范化系數(shù)輸入到第一個隱藏層比, Ill(X)GRml的表示為:
[0052] f( ?)是非線性激活函數(shù),#表示第1層第i單元的激活值,為Ii1(X)中的元素; 是第1層第j單元與第1+1層第i單元之間的聯(lián)接參數(shù),是第1+1層第i單元的偏 置項;
[0053] 步驟B5. 2 :因自編碼器的拓撲結構完全依賴于輸入層k的大小和每層隱藏單元個 數(shù)Hl1,故對于其他層來說,當前層的輸入是前一層的輸出,而當前層的輸出又可作為下一層 的輸入,每個隱藏層的表示r如下:
[0054] Ii2Qi1) =fCW^hi+b⑵)
[0055] ?
[0056] ?
[0057] ?
[0058] h; (h; :) =f(ff(l)hi+b(l));
[0059] ?
[0060] ?
[0061] ?
[0062] hk(hkl) =f(ff(k)hkl+b(k))
[0063] 此處k表示隱藏層的個數(shù),Hi1表示每個隱藏層中的單元個數(shù);
[0064] 步驟B5.3 :以此模式順序迭代k次,得到自編碼器網絡的輸出yGRn,輸出y在隱 藏層hk之后進行重建,如下式:
[0065] y=f(w(k)hk+b(k))
[0066] 其中,迭代次數(shù)k,權重參數(shù),偏置項If均由步驟B3參數(shù)訓