论文阅读:Noise-Resilient Training Method for Face Landmark Generation From Speech

前言

  • 这是篇从语音生成3d landmarks的文章, 从题目中可以看出来作者提出的是对背景噪音有抵抗力的脸部生成。

贡献如下:

  1. 生成3维人脸landmarks ,而不是二维的
  2. 取代了MFCC和它们的时间倒数,而是直接把原始波形输入到网络中
  3. 提出了新的网络结构, 用卷积来取代LSTM改善原始波形输入的结果
  4. 提出了一种抗噪的训练方法, 在特征层面上纳入了语音增强的思想,以提高系统对非稳态背景噪声的鲁棒性。

方法

预处理

  1. face landmark extration

使用dlib提取2d点, 然后使用论文How far are we from solving the 2D&3D face alignment problem中的方法变为3d点

  1. face landmark alignment

提取的原始坐标是以像素坐标为单位的, 可以位于不同的位置, 比例, 方向上, 这些变化对于训练是不利的, 因为它们和输入语音无关, 为了最小化这些变化, 使用Procrustes analysis来对齐3D landmarks, 这是创建active shape model(ASMs) 和active appearance models(AAMs)的常见做法.

介绍Procrustes analysis

下图第二行是对齐之后的.
在这里插入图片描述

  1. face landmark identity removal

不同说话人有不同的面部形状, 最好能去除身份的变化。
对于每个landmarks 序列, 检测一个包含closed mouth(嘴部闭合)的参考帧, 这种检测是通过thresholding the distance between the upper lip and lower lip coordinates (阈值化上唇和下唇坐标之间的距离)来实现的。

然后计算序列中每帧landmark坐标和这个参考帧的偏差(deviations), 然后把这些偏差施加到所有身份的所有序列的模板face上(impose these deviations onto a template face across all sequences of all identities.)这个模板face是所有identities中闭着嘴的对齐的面部平均值。
下面是3d landmarks 坐标的表示:
在这里插入图片描述
身份去除工作可以表示为:
在这里插入图片描述
S I R S_{IR} SIR代表身份去除后的face shape, S C M S_{CM} SCM 是一个从视频中自动选取的嘴部闭合的face frame, S T S_T ST 是template face, 下图第三行展示了去除身份后的图

在这里插入图片描述

  1. Active shape model(ASM)

ASMs介绍
其实有些类似人脸3DMM模型, 就是平均值加上权重*PCA降维后的向量.

公式如下:
在这里插入图片描述
s u s_u su 是mean shape vector, w = [ c 1 , . . . . . c P ] w=[c_1, .....c_P] w=[c1,.....cP] 是一个包含权重的向量, S = [ s 1 , . . . . . s P ] S=[s_1, .....s_P] S=[s1,.....sP] 是一个包含特征向量的的矩阵. P是PCA的主成分, P<N

  1. Data Augmentation

3D landmarks没有变化, 对于语音输入, 执行数据增强, 以提高系统在音高和声响变化方面(pitch and loudness variations)的稳健性

  • 增强不是训练开始之前进行的, 而是在训练迭代期间执行的, 对于每个training batch里的每个sample, 随机选取是否使用原始样本还是增强样本 (有点teaching forch的感觉hhhh), 如果是增强数据, 则:
  1. We first pitch shift the sample by one or two semitones up or down.
    我们首先将样本的音高向上或向下移动一个或两个半音。
  2. We then apply a gain factor to the amplitude of the sample between −12 dB and 6 dB with a 3 dB granularity
    然后我们在-12dB和6dB之间的样本振幅上应用一个增益因子,粒度为3dB。

网络结构

深神经网络 (DNN) 接受一帧(280毫秒)的原始波形作为输入, 并输出该帧的ASM权重。
网络有四个带有1D filter kernals的卷积层对原始波形进行操作。filter的数量随着时间尺寸的缩小而增加。使用strides的方式来处理每个卷积层,这样可以将时间步长减半。每个卷积层之后是LeakyReLU激活,斜率为0.3。还有一个随机丢弃20%的dropout层, 最后一层是一个全连接层,输出ASM权重。

网络如下图:
在这里插入图片描述
左边和右边的网络结构是相同的, 不同在于右边的接受前一帧的ASM权重作为条件来执行时间约束(enforce temporal constraint), 声音经过4个卷积层然后是fc

  • 关于时间约束:
    为了实现生成帧之间的平滑过渡,我们在网络结构中进一步增加了一个时间约束。它把前一帧的ASM权重作为条件,以获得更平滑的结果。该条件被concatenated到中间张量紧随全连接层之后,我们再增加一个fc, 像是上图的b结构.
    我们在第四节讨论这两种模型之间的权衡。

我们将我们提出的方法称为1D_CNN,将时间约束的版本称为1D_CNN_TC

最小化预测ASM权重和真实ASM权重的L1 loss, 下面是单个样本的损失:
在这里插入图片描述
训练时取所有训练样本的平均.

噪声适应性训练 Noise-Resilient Training

为了使系统对噪音有鲁棒性,我们提出了一种新颖而简单的抗噪音训练方法。其理念是匹配从干净和嘈杂的语音中获得的中间特征,因为在理论上,它们包含相同的语音信息,因此提取的feature理论上是相同的。结构如下图:
在这里插入图片描述

clean features h 是从clean speech x中提取的, corrupted features h ~ \tilde h h~ 是从corrupted speech x ~ \tilde x x~中提取的. 这两个提取网络结构是相同的, 除了两个网络的ASM 系数损失, 我们还加入h 和 h ~ \tilde h h~之间的加权MSE loss, 损失函数如下:
在这里插入图片描述
λ 是权重系数

W ~ ^ \widehat {\widetilde W} W 是从corrupted speech x ~ \tilde x x~ 获得的ASM权重

系统概述

在推理过程中,我们的系统利用了一个speech buffer,作为先进先出(first-in-first-out)(FIFO)队列。首先,语音缓冲器
被初始化为零。当系统收到新的语音数据时,它被push到speech buffer,然后网络预测出下一帧的权重。语音没有经过预处理;原始语音被直接送入神经网络。预测的权重被转换为三维地标点,使用下面式子:
在这里插入图片描述

对于1D_CNN_TC网络,系统利用了另一个缓冲器,称为conditioning buffer, 用于存储最后一帧。
conditioning buffer被初始化为模板脸部形状权重(The conditioning buffer is initialized with the template face shape weights)。
系统概述图如下:

在这里插入图片描述
从320ms(frame length)的音频中, 每40ms(frame hop size)产生一个talking face, t代表时间

实验

单人视频选择奥马巴, 多人是GRID, 每个视频3s 75帧, 采样率44.1kHz, 把音频降采样到8kHz(down-sample the audio to 8 kHz which is a typical sampling rate for speech signals in telecommunication), 92% 训练 8% 验证

实施细节

我们的系统被训练成生成25FPS的视频,即系统每40毫秒产生一个说话的脸。在输入语音中包含了上下文信息, 这里作者concatenate 3 frames from past and future, 共7帧

对于8kHz的语音信号, 一个40ms窗口包含320个数据点, 输入speech size变为7*320=2240, 参见下表的Input

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/landing_guy_/article/details/120996693