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

总览

单通道的语音降噪有两种方式:

  1. 直接在一维的时域原始波形上进行操作
  2. 把一维的时域波形转换为二维的时频谱再进行操作

第二种方式的主流方法是预测一个时频掩膜用来降噪,PHASEN也是采用这种方法。

总的来说,PHASEN是在时频谱(复数域)基础上预测了一个幅度掩膜M和一个相位掩膜\psi,然后用输入的时频谱的模(实数域)乘上两个掩膜得到低噪声时频谱,公式如下:

PHASEN的结构

首先整个模型呈双流结构,强度流用来预测幅度掩膜M,相位流用来预测相位掩膜\psi。也可以把模型分为三个部分:TSB之前、TSBs、TSB之后。

我个人在理解一个神经网络模型的时候,比较喜欢从模型的输入输出维度入手,所以下面会着重分析模型各部分的维度变化。

模型的输入是复数域上二维的时频谱,所以要先对一维的时域波形进行STFT(短时傅里叶变换)。其次神经网络用到批处理,所以输入S_{in}的维度应当是[B,2,t_len,f_len],这里的第二个维度2是指时频谱的实部和虚部。

TSB之前:

TSB之前的强度流是两个二维卷积层,卷积核分别为1*7(1对应时域)和7*1(7对应时域)。这两个卷积层不改变输入tensor的时域和频域长度,只改变第二个维度的通道数,也就是说这两个卷积层的输出维度都是[B,c_a,t_len,f_len],至于c_a是多少,论文中没有提(毕竟没有开源),参考文末一位大佬复现的模型代码,可以将c_a设置为24。

TSB之前的相位流也是两个二维卷积层,卷积核分别为5*3(5对应时域)和25*1(25对应时域)。同强度流一样,这两个卷积层也不改变输入tensor的时域和频域长度,只改变第二个维度的通道数,这两个卷积层的输出维度都是[B,c_p,t_len,f_len],根据参考可以将c_p设置为12。

TSBs:

这一部分由三个TSB模块级联而成。

每个TSB内部的强度流由两个FTB和三个二维卷积层构成。FTB以及三个卷积层的输入和输出维度都是[B,c_a,t_len,f_len]。

TSB内部的相位流比较简单,由两个卷积层构成,其输入输出维度都是[B,c_p,t_len,f_len],但需要注意的一点是,相位流的每个卷积层之前需要进行layer normalization。

TSB的最末尾,双流需要交换信息,公式如下:


由于和的第二维度(通道数)不相同,所以信息交换也要包含通道数的变换,这里可以起到通道数变换的有两个地方,一是圆圈代表的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

这篇论文提出了两个创造性的点:

  1. 双流模型的双流之间需要相互交换信息,目的是为了更好的预测相位掩膜。
  2. FTB??? frequency transformation blocks ),目的是为了捕获频域上的全局相关性。

下面来分析FTB???,其输入输出维度都是:[B,c_a,t_len,f_len]。
首先要关注的是T-F attention,这里用到了注意力机制,所以维度变换略微复杂。
T-F attention 一开始先用一个1*1的卷积层将输入张量的通道数从c_a降至c_r,此处c_r为5,即输出维度为[B,c_r,t_len,f_len],然后进行reshape,结果维度为[B,c_r*f_len,t_len]。接下来是关键一步,一个卷积核为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],这个张量要通过一个不要偏置的全连接层,其权重被论文称为frequency transformation matrix (FTM),权重的维度为[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的卷积层降低通道数得到维度为
[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。其输出结果要进入一个BiLSTM,BiLSTM需要设置参数 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之后的相位流经过一个1*1的卷积层将[B,c_p,t_len,f_len]降低至[B,2,t_len,f_len]然后进行一下幅度正则化即可。输出\psi的维度即为[B,2,t_len,f_len],第二维的2表示复数的实部和虚部。

至此,模型的前向传播过程就分析完了,得到了幅度掩膜M和相位掩膜\psi,然后便可用公式S^{out}=abs(S^{in})\circ M \circ \psi得到估计的时频谱S^{out}

Loss的计算

公式如下:


就是指无噪声的时频谱,是指幂律压缩时频谱(power-law compressed spectrogram),幂律压缩参数为0.3,坦白讲我一个菜鸡并不知道什么是幂律压缩,参考了其他大佬的复现代码之后才知道。这里有个问题,无论是还是,它们都是复数,而幂律压缩是对实数的操作,所以应当先abs()运算,再压缩,即,但这样的话和应该怎么区分呢?参考了大佬的复现后,我这样做:

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

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容