开始总结语音相关知识点
1、语音分离和增强的本质是什么?
a) 一个是分类,一个是回归。
b) 分类和回归的区别在于输出变量的类型。定量输出称为回归,或者说连续变量预测;定性输出称为分类,或者说是离散变量预测。
c) 本质一样,都要建立映射关系。在实际操作中,可以相互转化。
2、TCN和LSTM的区别是什么?
a) TCN是时序卷积网络(Temporal convolutional network),主要由因果卷积(causal convolution)和空洞卷积(Dilated Convolution)组成。TCN处理的主要目标是时间序列。
i. TCN中采用了因果卷积,对于上一层t时刻的值,只依赖于下一层t时刻及其之前的值,所以,因果卷积不能看到未来的数据,它是单向的结构;这也正符合了时间序列的特点,基于历史和当下的信息作出判断,而不是基于未来的信息。
ii. 空洞卷积能使得卷积网络看的更远,而不再受限于卷积核的大小,这使得CNN在参数一定的情况下,可以处理更长的时间序列。空洞卷积的具体原理是:标准卷积通过增加pooling层来获得更大的感受野,而经过pooling层后肯定存在信息损失的问题。空洞卷积是在标准的卷积里注入空洞,以此来增加感受野。空洞卷积多了一个超参数dilation rate。指的是kernel的间隔数量。空洞的好处是不做pooling,在无信息损失的情况下,增加了感受野,让每个卷积输出都包含较大范围的信息。
iii. 由于时间序列大多是1维信号,所以,TCN中的卷积大多是1D卷积。1D卷积可以看成为一种特殊的全连接层,所以TCN可以看成为一种特殊的DNN。
b) RNN的特点是循环,循环的本质是每个时间步的矩阵相乘,而对于单个时间步而言,RNN就退化成了DNN。RNN能处理可变长度时间序列, TCN也可以。RNN可以对变长序列采用MASK,CNN也可以。(此外,在多种任务上,TCN都能达到甚至超过RNN模型的结果。相比于RNN模型,CNN模型的优势在于可并行化处理),且RNN的无限记忆优势在实践中基本不存在。
c) 可变长度序列能否进入网络模型,重点在于数据预处理,能否将可变长度的时间序列处理成网络可接收的形式。
d) 如果输入可变长度的时间序列,该怎么做?
i. 在文本处理中,采用pad将每个输入的句子扩充到一样的长度,或在矩阵后面补0。
ii. 通过zero-padding,卷积神经网络能够学习物体的绝对位置信息,并且在深层的表征效果更好。
3、为什么使用Transformer而不使用RNN?
a) Transformer由且仅由self-attention和Feed Forward Neural Network组成。一个基于Transformer的可训练的神经网络可以通过堆叠Transformer的形式搭建。
b) 采用attention机制的原因是考虑到RNN(LSTM和GRU)的计算限制为顺序的,也就是说RNN相关算法只能从左向右或者从右向左以此进行计算,这种机制有两个问题:
i. 时间片t的计算依赖t-1时刻的计算结果,这样限制了模型的并行能力。
ii. 顺序计算的过程中信息会丢失,尽管LSTM等门机制的结构一定程度上缓解了长期依赖的问题,但是对于特别长期的依赖现象,LSTM依旧无能为力
c) Transformer引入了attention机制,将序列中任意两个位置之间的距离缩小为一个常量。
d) Self-attention核心内容是为输入向量的每个单词学习一个权重,在self-attention中,每个单词有3个不同的向量,它们分别是Query向量(Q)、Key向量(K)和Value向量(V),长度均为64。它们是通过3个不同的权值由嵌入向量乘以三个不同的权值矩阵得到的,其中三个矩阵的尺寸是相同的,均是512*64。
e)
4、MSHA计算
a) 将数据X分别输入到H个Self-Attention中, 得到H个加权后的特征矩阵
b) 将H个按列拼成一个大的特征矩阵
c) 特征矩阵经过一层全连接后得到输出Z
d)
M
u
l
t
i
H
e
a
d
(
Q
,
K
,
V
)
=
C
o
n
c
a
t
(
h
e
a
d
1
,
⋯
,
h
e
a
d
h
)
W
O
)
MultiHead(Q,K,V)=Concat(head_1,\cdots,head_h)W^O)
MultiHead(Q,K,V)=Concat(head1,⋯,headh)WO)
5、关于Conformer
a) 基本思想:Transformer在提取长序列依赖的时候更有效,而卷积则是擅长提取局部特征,那么Conformer就是将这两种特性结合了起来。
b) 使用MHSA,并使用了相对正弦位置编码方案(relative sinusoidal positional encoding scheme)并使用了带有dropout的预归一化的残差单元来训练和正则化更深层的模型。
c) 扩展—DF-Conformer(dilated FAVOR Conformer)
i. 思想:使用线性复杂度的attention和空洞卷积来扩展Conformer
ii. 主要解决的问题:
- Conformer计算量比较大,MHSA的时间复杂度具有对序列长度的二次依赖性
- 当使用时间卷积层时,相邻时间帧的small hop-size减少了序列建模的时间范围(感受野比较小)
6、Swin Transformer
a) 为什么VIT不适合用作密集视觉任务上的通用backbone?
当输入图像分辨率高时,由于该网络的低分辨率特征maps和复杂度随图像大小呈二次增加。
b) 线性复杂度:将MSA替换为shifted windows模块。一个swin transformer block由一个基于移位窗口的MSA模块和一个中间带有GELU的非线性两层MLP组成。
7、Tasnet
a) 框架—主要是用到了编解码结构,中间是分离模块,Encoder结构其本质上使用了Wavenet,但是相比wavenet,它多了一个语音原始音频波形的正则化。
b) Wavenet是因果卷积,separation模块使用到了LSTM和一个全连接层,Deep LSTM是bi-directional LSTM结构的非因果配置。Wavenet的作用是直接处理原始音频波形的生成模型。该模型使用到了空洞卷积,一维因果卷积层的可视化
c) 空洞卷积存在的问题
i.多次叠加多个具有相同孔洞率的卷积核会造成网格中一些像素自始至终都没有参与运算,不起任何作用,这对于像素级别的预测是不友好的。
ii.只对与大物体的分割有效果,而对于小物体来说则弊大于利。
d) 解决方法
i.叠加卷积的dilation rate不能有大于1的公倍数,比如[2,4,6]则不是一个好的三层卷积
ii.将dilation rate 设计成锯齿结构,例如【1,2,5,1,2,5】
8、TCN—使用卷积进行序列建模和预测
a) 是时序卷积网络,由具有相同输入和输出长度的扩张的、因果的1D卷积层组成。
b) 一维卷积网络以一个三维张量作为输入,也输出一个三维张量。TCN实现的输入张量具有形状(batch_size、input_length、input_size),输出张量具有形状(batch_size、input_length、output_size)。由于TCN中每一层都有相同的输入和输出长度,所以只有输入和输出张量的第三维是不同的。在单变量情况下,input_size和output_size都等于1。在更一般的多变量情况下,input_size和output_size可能不同,因为我们可能不希望预测输入序列的每个组件。
c) 使用TCN对任务进行建模的好处:
i.比基于LSTM的循环神经网络模型训练更快,因为RNN存在时序上的计算链接
ii.TCN更加擅长捕捉时序上的依赖关系,而且因为使用了卷积,可以捕捉到局部信息。
iii.感受野的尺寸可以灵活调整。
d)基本TCN的特征
i.计算是layer-wise的,即每个时刻被同时计算,而非时序上串行
ii.卷积是跨时域进行的
iii.可实现接收任意长度的输入序列作为输入,同时将其映射为等长的输出序列,这方面比较像RNN。
为了确保输出序列和输入序列具有相同的长度,将应用一些零填充。这意味着在输入张量的开始或结束处添加额外的零值项,以确保输出具有所需的长度。
9、Conv-Tasnet
a) 介绍:surpassing Ideal Time-Frequency Magnitude Masking for Speech Separation.
b) Conv-Tasnet基于自编码器结构,使用了线性encoder生成针对分离单个说话人而优化的语音波形表示,通过对编码器输出一组加权函数来实现说话人分离,然后使用线性解码器将修改的编码器表示反转回波形(反卷积)。使用由堆叠的一维空洞卷积块组成的时序卷积网络
10、时域与频域的区别
a)时域和频域是信号的不同表示方式,频域是时域在另一维度的映射,是将信号不同频率的正弦成分表示出来,任何实信号都可以由正交完备集叠加出来(三角函数以及其复指数形式就是其中一个集),(傅里叶定理:任何连续测量的时序或信号,都可以表示为不同频率的正弦波信号的无限叠加)
11、谱减算法
(1)假设噪声为加性噪声,通过从带噪语音谱中减去对噪声谱的估计,就可以得到一个纯净的信号谱。
(2)增强信号通过计算估计信号谱的逆离散傅里叶变换得到,其相位仍然使用带噪信号的相位。
(3)谱减的基本原理:
假定y(n)为受噪声污染的输入信号,其由纯净语音信号x(n)和加性噪声d(n)组成,即
y
(
n
)
=
x
(
n
)
+
d
(
n
)
y(n)=x(n)+d(n)
y(n)=x(n)+d(n)
则两边做离散时间傅里叶变换得到:
Y
(
ω
)
=
X
(
ω
)
+
D
(
ω
)
Y(\omega)=X(\omega)+D(\omega)
Y(ω)=X(ω)+D(ω)
将
Y
(
ω
)
Y(\omega)
Y(ω)以极坐标的形式表示:
Y
(
ω
)
=
∣
Y
(
ω
)
∣
e
j
ϕ
y
(
ω
)
Y(\omega)=|Y(\omega)|e^{j \phi_y(\omega)}
Y(ω)=∣Y(ω)∣ejϕy(ω)
∣
Y
(
ω
)
∣
|Y(\omega)|
∣Y(ω)∣为幅度谱,
ϕ
y
(
ω
)
\phi_y(\omega)
ϕy(ω)为带噪语音的相位谱。同理可得
D
(
ω
)
=
∣
D
(
ω
)
∣
e
j
ϕ
d
(
ω
)
D(\omega)=|D(\omega)|e^{j\phi_d(\omega)}
D(ω)=∣D(ω)∣ejϕd(ω)
噪声谱的幅度谱
∣
D
(
ω
)
∣
|D(\omega)|
∣D(ω)∣是未知的,但是可以通过无语音活动时的平均幅度谱的估计来代替;噪声相位可以由带噪语音的相位来代替。(研究表明,相位不会对语音可懂度造成影响,只可能会影响语音质量)。
纯净信号谱估计表示为
X
^
(
ω
)
=
[
∣
Y
(
ω
)
∣
−
∣
D
^
(
ω
)
∣
]
e
j
ϕ
y
(
ω
)
\hat{X}(\omega)=[|Y(\omega)|-|\hat{D}(\omega)|]e^{j\phi_y(\omega)}
X^(ω)=[∣Y(ω)∣−∣D^(ω)∣]ejϕy(ω)
(4)有些情况下,可能使用功率谱会好过使用幅度谱
∣
X
^
(
ω
)
∣
2
=
∣
Y
(
ω
)
∣
2
−
∣
D
^
(
ω
)
∣
2
|\hat{X}(\omega)|^2=|Y(\omega)|^2-|\hat{D}(\omega)|^2
∣X^(ω)∣2=∣Y(ω)∣2−∣D^(ω)∣2
最后通过计算的傅里叶变换,并重用带噪语音的相位而得到增强信号。
(5)倒谱域
功率谱估计可以写为:
∣
X
^
(
ω
)
∣
2
=
H
2
(
ω
)
∣
Y
(
ω
)
∣
2
|\hat{X}(\omega)|^2=H^2(\omega)|Y(\omega)|^2
∣X^(ω)∣2=H2(ω)∣Y(ω)∣2
H
(
ω
)
=
1
−
∣
D
^
(
ω
)
∣
2
∣
Y
(
ω
)
∣
2
H(\omega)=\sqrt{1-\frac{|\hat{D}(\omega)|^2}{|Y(\omega)|^2}}
H(ω)=1−∣Y(ω)∣2∣D^(ω)∣2
其中 ,
0
≤
H
(
ω
)
≤
1
0\le H(\omega)\le 1
0≤H(ω)≤1
(6)几何意义
可以在复平面以几何形式表示为两个复数和的和。纯净信号谱和进行复向量相加得到带噪语音谱,这种几何观点可以表示出带噪信号谱和纯净谱之间相位差的上限。
(7)谱减法的缺点:
半波整流的过程中会有音乐噪声。
使用带噪相位,因此可能会产生比较粗糙的合成语音。
处理音乐噪声的方法: 对谱减中的负数部分进行非线性处理;对噪声谱估计不准;对带噪信号和噪声信号谱估计有较大偏差。
12、为什么语音分离在时域而语音增强在复数域比较好?
经过iSTFT/FFT变换后都是在复数域上,也就是语谱图、频谱图等等都是复数域上的,只不过在语音领域,为了计算简便绝大多数工作都转换到幅值域上进行,保留复数运算能够保留更多信息。噪声干扰会强烈的降低语音交流中的感知质量和可懂性。
13、语音增强方面性能评价指标
a) 可懂度:非主观,通过让听者试听语音材料,然后让他们辨识所听到的单词。通过计算辨识正确的单词或者音素的数量就可以得到可懂度。
b) 言语接受阈SRT:在安静环境下,SRT定义为听者具有50%的识别准确度时的声强;在噪声环境下,SRT定义为听者对单词具有50%的识别正确率时的信噪比。
c) 平均意见得分MOS:分为1-5级
14、关于深度学习的基础知识
a) 分类函数使用softmax函数,softmax输出是0.1到1.0之间的实数,总和为1.
b) 交叉熵误差
E
=
−
∑
k
t
k
l
o
g
y
k
E=-\sum_k{t_klogy_k}
E=−k∑tklogyk
其中
y
k
y_k
yk是神经网络的输出,
t
k
t_k
tk是真实标签。
c) Relu层的作用就像电路中的开关一样,正向传播时,有电流通过的话,就将开关设为ON,没有电流通过的话就将开关设为OFF,反向传播时,开关为on的话,电流会直接通过,开关为off的话,则不会有电流通过。
d) 神经网络的正向传播中进行的矩阵的乘积运算在几何学领域被称为仿射变换。因此,这里将进行仿射变换的处理实现为“Affine”层。
e) 为什么要用CNN,数据的形状被忽视了,比如,输入数据是图像时,图像时高,长,通道方向上的3维形状,但是,向全连接层输入时,需要将数据拉平为1维数据。
f) 池化层为什么有效:直觉上,这种机制能够有效的原因在于,在发现一个特征后,它的精确位置远不及它和其它特征的相对位置重要。池化层会不断减小数据空间大小,因此参数的数量和计算量也会下降,可防止过拟合。Max池化是获取最大值的运算。提出目的是为了缓解卷积层对位置的过度敏感性。
g) 卷积核与过滤器的区别
i. 卷积核是由长和宽来指定的,是一个二维的概念
ii. 过滤器是由长、宽、深度来指定的,是一个三维的概念。
iii. 过滤器可以看作是卷积核的集合
h) 正向传播是指对神经网络沿着从输入层到输出层的顺序,依次计算并存储模型的中间变量(包括输出)。反向传播指的是计算神经网络参数梯度的方法。总的来说,反向传播依据微积分中的链式法则,沿着从输出层到输入层的顺序,依次计算并存储目标函数有关网络各层的中间变量以及参数的梯度。
i)在神经网络做标准化的好处:
i.加速模型收敛
ii.提高模型的泛化能力
iii.BN使得网络中每层输入数据的分布相对稳定,加速模型学习速度
iv.允许网络使用饱和性(tanh,sigmoid)函数,缓解梯度消失的问题
v.BN使得模型对网络中的参数不那么敏感,简化调参过程,使得网络学习更加稳定。
j) 残差块为什么有效?
i. 残差连接是跳跃连接的一种,缓解了在深度神经网络中增加深度带来的梯度消失问题。设输入为x,映射输出为F(x),F通常包括了卷积、激活等操作,当我们强行将一个输入添加到函数的输出的时候,输出可以表述为输入和输入的一个非线性变换的线性叠加。
ii. 主要解决两个问题: 梯度弥散(消失)、神经网络的退化问题。
15、RNN
a) RNN的提出:基于记忆模型的想法,期望网络能够记住前面出现的特征并依据特征推断后面的结果,而且整体的网络结构不断循环。
b) RNN 跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。
c) 缺点: RNN有短期记忆问题,无法处理很长的输入序列;训练RNN需要投入极大的成本
d) LSTM:可以保留较长序列数据中的重要信息,忽略不重要的信息。
i. 遗忘层: 决定状态中丢弃什么信息。
ii. Tanh层: 产生更新值的候选项,说明状态在某些维度上需要加强,在某些维度上减弱。
iii. Sigmoid层(输入门层),它的输出值要乘到tanh层的输出上,起到一个缩放的作用,极端情况下,sigmoid输出0说明相应维度上的状态不需要更新,最后一层决定输出什么。