2020-04-09 PHASEN: A Phase-and-Harmonics-Aware Speech Enhancement Network 論文解讀

總覽

單通道的語音降噪有兩種方式:

  1. 直接在一維的時域原始波形上進行操作
  2. 把一維的時域波形轉(zhuǎn)換為二維的時頻譜再進行操作

第二種方式的主流方法是預測一個時頻掩膜用來降噪琐簇,PHASEN也是采用這種方法炫七。

總的來說撩满,PHASEN是在時頻譜(復數(shù)域)基礎(chǔ)上預測了一個幅度掩膜M和一個相位掩膜\psi截驮,然后用輸入的時頻譜的模(實數(shù)域)乘上兩個掩膜得到低噪聲時頻譜,公式如下:

PHASEN的結(jié)構(gòu)

首先整個模型呈雙流結(jié)構(gòu)讲弄,強度流用來預測幅度掩膜M熔号,相位流用來預測相位掩膜\psi。也可以把模型分為三個部分:TSB之前华畏、TSBs鹏秋、TSB之后。

我個人在理解一個神經(jīng)網(wǎng)絡(luò)模型的時候亡笑,比較喜歡從模型的輸入輸出維度入手侣夷,所以下面會著重分析模型各部分的維度變化。

模型的輸入是復數(shù)域上二維的時頻譜仑乌,所以要先對一維的時域波形進行STFT(短時傅里葉變換)百拓。其次神經(jīng)網(wǎng)絡(luò)用到批處理琴锭,所以輸入S_{in}的維度應當是[B,2,t_len,f_len],這里的第二個維度2是指時頻譜的實部和虛部衙传。

TSB之前:

TSB之前的強度流是兩個二維卷積層决帖,卷積核分別為1*7(1對應時域)和7*1(7對應時域)。這兩個卷積層不改變輸入tensor的時域和頻域長度蓖捶,只改變第二個維度的通道數(shù)地回,也就是說這兩個卷積層的輸出維度都是[B,c_a,t_len,f_len],至于c_a是多少俊鱼,論文中沒有提(畢竟沒有開源)刻像,參考文末一位大佬復現(xiàn)的模型代碼,可以將c_a設(shè)置為24并闲。

TSB之前的相位流也是兩個二維卷積層细睡,卷積核分別為5*3(5對應時域)和25*1(25對應時域)。同強度流一樣帝火,這兩個卷積層也不改變輸入tensor的時域和頻域長度溜徙,只改變第二個維度的通道數(shù),這兩個卷積層的輸出維度都是[B,c_p,t_len,f_len]犀填,根據(jù)參考可以將c_p設(shè)置為12蠢壹。

TSBs:

這一部分由三個TSB模塊級聯(lián)而成。

每個TSB內(nèi)部的強度流由兩個FTB和三個二維卷積層構(gòu)成九巡。FTB以及三個卷積層的輸入和輸出維度都是[B,c_a,t_len,f_len]知残。

TSB內(nèi)部的相位流比較簡單,由兩個卷積層構(gòu)成比庄,其輸入輸出維度都是[B,c_p,t_len,f_len],但需要注意的一點是乏盐,相位流的每個卷積層之前需要進行l(wèi)ayer normalization佳窑。

TSB的最末尾,雙流需要交換信息父能,公式如下:


由于和的第二維度(通道數(shù))不相同神凑,所以信息交換也要包含通道數(shù)的變換,這里可以起到通道數(shù)變換的有兩個地方何吝,一是圓圈代表的element-wise multiplication(在兩個維度不相同的張量element-wise multiplication時溉委,會以某種方式復制其中一個張量至與另一個張量維度相同再相乘),二是一個的卷積層爱榕。我更傾向于使用卷積層來做通道變換瓣喊。也就是:
的維度:[B,c_a,t_len,f_len]
的維度:[B,c_p,t_len,f_len]
的維度:[B,c_p,t_len,f_len]
的維度:[B,c_p,t_len,f_len]
的維度:[B,c_a,t_len,f_len]
的維度:[B,c_a,t_len,f_len]

TSB中的FTB

這篇論文提出了兩個創(chuàng)造性的點:

  1. 雙流模型的雙流之間需要相互交換信息,目的是為了更好的預測相位掩膜黔酥。
  2. FTB模塊( frequency transformation blocks )藻三,目的是為了捕獲頻域上的全局相關(guān)性洪橘。

下面來分析FTB模塊,其輸入輸出維度都是:[B,c_a,t_len,f_len]棵帽。
首先要關(guān)注的是T-F attention熄求,這里用到了注意力機制,所以維度變換略微復雜逗概。
T-F attention 一開始先用一個1*1的卷積層將輸入張量的通道數(shù)從c_a降至c_r弟晚,此處c_r為5,即輸出維度為[B,c_r,t_len,f_len]逾苫,然后進行reshape卿城,結(jié)果維度為[B,c_r*f_len,t_len]。接下來是關(guān)鍵一步隶垮,一個卷積核為9的一維卷積藻雪,輸出維度為[B,c_a,t_len],這個輸出要和FTB最開始的輸入做一次element-wise multiplication狸吞,由于維度不匹配勉耀,所以會將[B,c_a,t_len]的張量復制f_len次再與[B,c_a,t_len,f_len]的張量相乘。

Element-wise multiplication后的張量維度為[B,c_a,t_len,f_len]蹋偏,這個張量要通過一個不要偏置的全連接層便斥,其權(quán)重被論文稱為frequency transformation matrix (FTM),權(quán)重的維度為[f_len,f_len]威始,這一步是FTB的核心枢纠,輸出的維度是[B,c_a,t_len,f_len]

全連接的輸出又要和FTB最開始的輸入進行合并黎棠,即將兩個[B,c_a,t_len,f_len]張量合并為一個[B,2*c_a,t_len,f_len]的張量晋渺,最后通過一個1*1的卷積層降低通道數(shù)得到維度為
[B,c_a,t_len,f_len]的輸出。

TSBs之后

TSBs之后的強度流首先通過一個1*1的卷積層將[B,c_a,t_len,f_len]降低至[B,c_r,t_len,f_len]脓斩,此處c_r等于8木西。其輸出結(jié)果要進入一個BiLSTM,BiLSTM需要設(shè)置參數(shù) hidden_size随静,這里盲猜為300八千,其輸出維度為[B,t_len,hidden_size*2]。事實上燎猛,張量在進入BiLSTM之前恋捆,要進行一次reshape,因為BiLSTM對輸入張量的shape是有要求的重绷,所以[B,c_r,t_len,f_len]要先reshape為[B,t_len,c_r*f_len]沸停,而后通過BiLSTM得到[B,t_len,hidden_size*2]。之后通過兩個600的FC層得到輸出[B,t_len,600]昭卓,最后通過一個257的FC層得到M星立,維度為[B,t_len,257]
這里要說明一下爽茴,因為論文中有說明在STFT時的FFT長度為512,那么時頻譜的維度就應該是[t_len,512/2+1]绰垂,即f_len=257室奏,而M應當具有和時頻譜相同的維度,那為什么論文原圖中最后的FC層的輸出是514通道呢劲装?我只能說可能論文寫錯了吧......

TSBs之后的相位流經(jīng)過一個1*1的卷積層將[B,c_p,t_len,f_len]降低至[B,2,t_len,f_len]然后進行一下幅度正則化即可胧沫。輸出\psi的維度即為[B,2,t_len,f_len],第二維的2表示復數(shù)的實部和虛部占业。

至此绒怨,模型的前向傳播過程就分析完了,得到了幅度掩膜M和相位掩膜\psi谦疾,然后便可用公式S^{out}=abs(S^{in})\circ M \circ \psi得到估計的時頻譜S^{out}

Loss的計算

公式如下:


就是指無噪聲的時頻譜南蹂,是指冪律壓縮時頻譜(power-law compressed spectrogram),冪律壓縮參數(shù)為0.3念恍,坦白講我一個菜雞并不知道什么是冪律壓縮六剥,參考了其他大佬的復現(xiàn)代碼之后才知道。這里有個問題峰伙,無論是還是疗疟,它們都是復數(shù),而冪律壓縮是對實數(shù)的操作瞳氓,所以應當先abs()運算策彤,再壓縮,即匣摘,但這樣的話和應該怎么區(qū)分呢店诗?參考了大佬的復現(xiàn)后,我這樣做:

參考:https://github.com/huyanxin/phasen
https://hiedean.github.io/2020/04/10/PHASEN/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末音榜,一起剝皮案震驚了整個濱河市必搞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌囊咏,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件塔橡,死亡現(xiàn)場離奇詭異梅割,居然都是意外死亡,警方通過查閱死者的電腦和手機葛家,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門户辞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人癞谒,你說我怎么就攤上這事底燎∪姓ィ” “怎么了?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵双仍,是天一觀的道長枢希。 經(jīng)常有香客問我,道長朱沃,這世上最難降的妖魔是什么苞轿? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮逗物,結(jié)果婚禮上搬卒,老公的妹妹穿的比我還像新娘。我一直安慰自己翎卓,他們只是感情好契邀,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著失暴,像睡著了一般坯门。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上锐帜,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天田盈,我揣著相機與錄音,去河邊找鬼缴阎。 笑死允瞧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的蛮拔。 我是一名探鬼主播述暂,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼建炫!你這毒婦竟也來了畦韭?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤肛跌,失蹤者是張志新(化名)和其女友劉穎艺配,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衍慎,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡转唉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稳捆。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赠法。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乔夯,靈堂內(nèi)的尸體忽然破棺而出砖织,到底是詐尸還是另有隱情款侵,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布侧纯,位于F島的核電站新锈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏茂蚓。R本人自食惡果不足惜壕鹉,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望聋涨。 院中可真熱鬧晾浴,春花似錦、人聲如沸牍白。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茂腥。三九已至狸涌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間最岗,已是汗流浹背帕胆。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留般渡,地道東北人懒豹。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像驯用,于是被迫代替她去往敵國和親脸秽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

推薦閱讀更多精彩內(nèi)容