GestureDiffuCLIP: Gesture Diffusion Model with CLIP Latents
摘要
1. 简介
手势是人们说话时手部和手臂自发的、风格化的动作。它们为语音注入活力,并揭示出思想的独特意象[McNeill 1992]。最近,深度神经网络已被成功应用于根据语音输入合成自然的手势,这有助于创建类人三维化身。然而,基于深度学习的系统往往缺乏可控性,因此在用户控制下合成任意风格化的手势仍然是一项具有挑战性的任务。
以往在手势创作中实现风格控制的神经网络系统可分为两类:基于标签的系统和基于范例的系统。基于标签的系统通常是在带有成对风格标签的运动数据上进行训练的。它们允许编辑预定义的风格,如说话者身份 [Ahuja 等人,2020 年;Yoon 等人,2020 年]、情绪 [Liu 等人,2022 年e],以及细粒度风格,如特定的手部位置 [Alexanderson 等人,2020 年]。然而,这些系统的容量受限于风格标签的数量和粒度,而获取这些风格标签的成本又很高。与此相反,基于范例的系统通过模仿动作剪辑[Ghorbani 等人,2023 年]或视频[刘等人,2022d]中的范例来生成任意风格的手势。这些示例所描述的手势风格往往比较模糊,很难准确传达用户的意图。用户可能需要多次尝试不同的示例数据才能得到想要的结果。
最近,对比语言-图像预训练(CLIP)模型[Radford 等人,2021 年]成功地学习了自然语言与图像之间的联系。它使一些图像生成系统[Gal 等人,2022 年;Patashnik 等人,2021 年;Ramesh 等人,2022 年;Rombach 等人,2022 年]和动作生成系统[Tevet 等人,2022 年、2023 年;Zhang 等人,2022 年]能够让用户用自然语言(即使用文本提示)指定所需的内容和风格。CLIP 模型的核心是视觉和文本模式的大规模共享潜空间。它通过对比学习来学习这样一个空间,这种技术可以调整为将其他模态(如人类动作[Tevet et al. 2022])纳入同一空间。从另一个角度来看,CLIP 模型提供了一个灵活的界面,允许用户使用多种输入形式(如文本提示、动作提示,甚至视频提示)准确描述自己的需求。CLIP 模型可以提取这些提示的语义一致的潜在表征,并将其用于强大的生成模型,如扩散模型[Ho 等人,2020 年;Song 和 Ermon,2020 年],以满足用户需求。
在这项工作中,我们介绍了 GestureDiffuCLIP,这是一个协同语音手势合成系统,它利用 CLIP 潜在的优势,能够根据各种风格提示自动创建风格化的手势。我们的系统学习一个潜在扩散模型[Rombach 等人,2022 年]作为手势生成器,并通过自适应实例规范化(AdaIN)[Huang 和 Belongie 2017 年]机制将风格的 CLIP 表示纳入其中。该系统接受文本、动作和视频提示作为风格描述符,并创建高质量、逼真、语义正确的协同语音手势。它还可以进一步扩展,允许对单个身体部位进行细粒度的风格控制
从语音中预测手势本身就是一个多对多的映射问题。多种手势可能对应于相同的语音,而语义手势及其对应的语音通常在时间上并不完全一致。这种模糊性会导致端到端深度学习系统学习到平均手势动作,而失去语义对应[Abzaliev 等人,2022 年;Ao 等人,2022 年;Kucherenko 等人,2021 年]。为了缓解这一问题,我们利用对比学习结合时间聚合机制来学习手势-文字联合嵌入空间。这一联合嵌入空间为生成器提供了语义线索和语义损失,可有效指导系统学习手势与语音之间的语义对应关系。
收集具有不同风格和丰富细粒度标签的大规模手势数据集是一项挑战。为了规避这一问题,我们开发了一种自监督学习方案,以从预训练的 CLIP 模型中提炼知识。具体来说,我们将每个手势动作都视为自己的风格提示,并让系统根据提取的 CLIP latents 重构动作。尽管在训练过程中从未遇到过其他形式的风格提示,但系统仍能以零镜头的方式创建出与任意文本或视频提示相对应的令人满意的风格
总之,这项工作的主要贡献包括
- 我们提出了一种新颖的以 CLIP 为指导的提示条件协同语音手势合成系统,该系统可生成逼真的风格化手势。据我们所知,这是第一个支持使用多模态提示来控制跨模态动作合成风格的系统。
- 我们展示了对潜在扩散模型的成功调整,以实现高质量的动作合成,并提出了一种基于变压器和 AdaIN 层的高效网络架构,将风格引导纳入扩散模型。
- 我们提出了一种对比学习策略,以学习手势和文本之间的语义对应关系。学习到的联合嵌入能够合成具有令人信服语义的手势。
- 我们开发了一种自监督训练机制,能有效地从大规模多模态预训练模型中提炼知识,从而减少了对带有详细标签的训练数据的需求。
2. 相关工作
3. 方法总览
我们的系统将语音和演讲稿作为输入,合成逼真、风格化的全身手势,这些手势在节奏和语义上与演讲内容相一致。它允许使用一段简短的文字(即文字提示)、一个视频片段(即视频提示)或一个动作序列(即动作提示) 来描述所需的风格。然后生成手势,以尽可能体现这种风格。
我们以潜在扩散模型 [Rombach 等人,2022 年] 为基础构建系统,在预训练的潜在空间中应用扩散和去噪步骤。我们使用 VQ-VAE [van den Oord 等人,2017] 学习这个潜在运动空间,提供紧凑的运动嵌入,确保运动质量和多样性。如图 2 所示,我们的系统由两个主要部分组成: (a) 端到端神经生成器,接受语音音频和文本转录作为输入,并使用潜在扩散模型生成语音匹配的手势序列;以及 (b) 基于 CLIP 的编码器,从风格提示中提取风格嵌入,并通过自适应实例归一化(AdaIN)层将其整合到扩散模型中 [Huang and Belongie 2017],以指导生成手势的风格。此外,我们还利用对比学习(contrastive learning)在相应的手势和文本之间学习联合嵌入空间,这为生成器提供了有用的语义线索和语义损失,从而在训练过程中有效地引导生成器学习有语义意义的手势。
该系统采用无分类器扩散引导技术(Ho 和 Salimans 2021 年)和自我监督学习方案,可以在没有风格标签的运动数据上进行训练。在下面的章节中,我们将详细介绍系统的各个组成部分及其训练过程。
4. 运动表示
一个手势动作
M
=
[
m
k
]
k
=
1
K
\boldsymbol{M}=\left[\boldsymbol{m}_k\right]_{k=1}^K
M=[mk]k=1K是一系列姿势,其中
K
K
K表示动作长度。每个姿势
m
k
∈
R
3
+
6
J
\boldsymbol{m}_k \in \mathbb{R}^{3+6 J}
mk∈R3+6J由角色的位移和其
J
J
J个关节的旋转组成。我们将旋转参数化为 6D 向量[Zhou 等人,2019],不过也可以使用其他旋转表示法。然而,原始运动表示通常包含冗余信息。为了确保运动质量和多样性,同时实现快速推理,我们效仿最近成功的系统[Ao 等人,2022 年;Dhariwal 等人,2020 年;Rombach 等人,2022 年],使用 VQ-VAE [van den Oord 等人,2017 年]学习紧凑的运动表示。
具体来说,我们将 VQ-VAE 作为一对编码器-解码器进行训练
Z = E V Q ( M ) ⇔ M = D V Q ( Z ) Z=\mathcal{E}_{\mathrm{VQ}}(M) \quad \Leftrightarrow \quad M=\mathcal{D}_{\mathrm{VQ}}(Z) Z=EVQ(M)⇔M=DVQ(Z)
编码器 E V Q \mathcal{E}_{\mathrm{VQ}} EVQ会将𝑴 转换为下采样的潜码序列 Z = [ z l ] l = 1 L Z=\left[z_l\right]_{l=1}^L Z=[zl]l=1L ,其中 z l ∈ R C z_l \in \mathbb{R}^C zl∈RC和 𝐶 是潜空间的维度。我们将比率 d = K / L d=K / L d=K/L称为编码器的降采样率,它由网络结构决定。解码器 D V Q \mathcal{D}_{\mathrm{VQ}} DVQ在潜空间的量化版本上运行。它维护一个由 𝑁VQ 潜在向量组成的编码本。从𝒁重建原始运动𝑴时,解码器会将每个 z k z_k zk映射到与其最接近的编码本向量 z ^ l \hat{z}_l z^l,并将量化的潜在序列 Z ^ = [ z ^ l ] l = 1 L \hat{Z}=\left[\hat{z}_l\right]_{l=1}^L Z^=[z^l]l=1L译为𝑴。
我们的 VQ-VAE 模型具有与 Jukebox [Dhariwal 等人,2020 年] 类似的网络结构,它由一维卷积网络级联组成。编码器 EVQ 和解码器 DVQ 是按照标准的 VQ-VAE 训练流程学习的[Dhariwal 等人,2020;van den Oord 等人,2017]。然后,它们在其余的训练中被冻结。潜序列𝒁及其量化版本𝒁ˆ都被系统的其他组件用作运动表示。具体来说,在第 5 节中,我们在量化的潜在序列 Z ^ \hat{Z} Z^上学习手势-文字联合嵌入,而在第 6 节中,潜在扩散模型将手势运动合成为𝒁。
5. 手势-文字联合嵌入
语音内容和手势之间的多对多映射给生成语义正确的动作带来了挑战。为了缓解这一问题,我们学习了手势和语音脚本的联合嵌入空间,从而能够发现两种模式之间的语义联系。
5.1 结构
如图 3 所示,我们训练了两个编码器,一个是手势编码器 E G \mathcal{E}_G EG,另一个是文本编码器 E T \mathcal{E}_T ET,分别将手势动作和语音文本映射到共享的嵌入空间中。两个编码器都以句子为单位处理输入语音。语音转录本使用 T5 tokenizer [Xue 等人,2021 年]进行标记化,并使用蒙特利尔强制对齐器(MFA)[McAuliffe 等人,2017 年]与音频进行时间关联。这一过程还能将文本与手势对齐。随后,语音数据将根据文字记录分割成句子。随后,我们计算
Z t = E T ( T ) , Z g = E G ( Z ^ ) Z^t=\mathcal{E}_T(T), \quad Z^g=\mathcal{E}_G(\hat{Z}) Zt=ET(T),Zg=EG(Z^)
其中, T ∈ W L t T \in \mathcal{W}^{L_t} T∈WLt 表示标记化转录句子,参数化为词嵌入序列 w ∈ W w \in \mathcal{W} w∈W, Z ^ ∈ R L g × C \hat{Z} \in \mathbb{R}^{L_g \times C} Z^∈RLg×C是相应手势序列的量化潜在表示。编码器的输出 Z t ∈ R L t × C s Z^t \in \mathbb{R}^{L_t \times C_s} Zt∈RLt×Cs和 Z g ∈ R L g × C s Z^g \in \mathbb{R}^{L_g \times C_s} Zg∈RLg×Cs是相同维度的特征向量序列。请注意,这些序列的长度 𝐿𝑡 和 𝑔𝐿 可以不同。
在语音中,语义手势与其对应单词或短语的发音往往缺乏完美的对齐[Liang 等人,2022]。如果在训练过程中严格执行两种模态之间的时间对应关系,这种不对齐现象就会使编码器感到困惑。为了缓解这一问题,我们通过最大池化(max pooling)将语义相关的信息汇总到每个特征序列中。
z t = max_pooling ( Z t ) , z g = max_pooling ( Z g ) z^t=\text { max\_pooling}\left(Z^t\right),\quad z^g=\text { max\_pooling }\left(Z^g\right) zt= max_pooling(Zt),zg= max_pooling (Zg)
然后, z t , z g ∈ R C s z^t, z^g \in \mathbb{R}^{C_s} zt,zg∈RCs分别被视为文本和手势的嵌入。
我们采用了一个强大的预训练语言模型 T5-base [Xue 等人,2021 年] 作为文本编码器 E T \mathcal{E}_T ET 。运动编码器 E G \mathcal{E}_G EG是一个 12 层、768 个特征宽、仅有编码器的变换器,有 12 个注意力头,在手势数据集上通过类似于 BERT [Devlin 等人,2019] 的方式预测屏蔽运动进行预训练。两个编码器随后都使用对比学习进行了微调,详情如下。
5.2 对比学习
交叉熵(Cross Entropy)是一种常用于机器学习中的损失函数,特别是在分类问题中。它衡量的是实际输出与期望输出之间的差异,可以用于评估模型的预测性能。
具体来说,对于一个分类问题,交叉熵的计算公式是:
L = − ∑ i y i log ( p i ) \mathcal{L}=-\sum_i y_i \log \left(p_i\right) L=−∑iyilog(pi)
其中:
- ( y_i ) 是实际值,通常为 0 或 1。在二分类问题中,1 表示正类,0 表示负类。
- ( p_i ) 是模型预测该类别的概率。
- 求和是对所有类别进行的。
在实际应用中,如果模型预测得很准确(即预测概率接近实际标签),交叉熵的值会很小;相反,如果模型预测得不准确,交叉熵的值会很大。因此,训练过程中的目标就是最小化交叉熵,以提高模型的预测准确性。
在这篇论文中,交叉熵 H ( x , y ) \mathcal{H}(x, y) H(x,y) 的计算遵循了标准的交叉熵公式。它用于衡量两个分布 (x) 和
(y) 之间的差异。具体地,这里的 (x) 和 (y) 分别代表模型预测的输出分布和真实的目标分布。交叉熵的计算公式为:
H ( x , y ) = − ∑ i x i log ( y i ) \mathcal{H}(x, y)=-\sum_i x_i \log \left(y_i\right) H(x,y)=−∑ixilog(yi)
这里:
- ( x_i ) 是目标分布中第 (i) 个元素的值。
- ( y_i ) 是模型预测分布中第 (i) 个元素的概率。
- 求和是对所有可能的类别 (i) 进行的。
在论文的上下文中,(x) 和 (y) 可能是关于手势和语音转录的嵌入向量,交叉熵用于衡量这些嵌入之间的匹配程度。通过最小化交叉熵,模型被训练以更准确地将手势与相应的语音转录对齐。
我们采用 CLIP 风格的对比学习 [Radford 等人,2021 年] 来微调编码器。给定一批成对的手势和文字嵌入 B = { ( z i t , z i g ) } i = 1 B \mathcal{B}=\left\{\left(z_i^t, z_i^g\right)\right\}_{i=1}^B B={(zit,zig)}i=1B,其中𝐵 是批量大小,训练的目标是最大化嵌入的相似性 ( z i t , z i g ) \left(z_i^t, z_i^g\right) (zit,zig),同时使错误嵌入对 ( z i t , z j g ) i ≠ j \left(z_i^t, z_j^g\right)_{i \neq j} (zit,zjg)i=j的相似度最小。如图 4 所示,该学习目标可表示为在批次中计算的手势到文本(g2t)交叉熵和文本到手势(t2g)交叉熵之和。形式上,损失函数为
L contrast = E B ∼ D [ H B ( y g 2 t ( z i g ) , p g 2 t ( z i g ) ) + H B ( y t 2 g ( z j t ) , p t 2 g ( z j t ) ) ] \begin{aligned} \mathcal{L}_{\text {contrast }}=\mathbb{E}_{\mathcal{B} \sim \mathcal{D}}[ & \mathcal{H}_{\mathcal{B}}\left(y^{\mathrm{g} 2 \mathrm{t}}\left(z_i^g\right), p^{\mathrm{g} 2 \mathrm{t}}\left(z_i^g\right)\right) \\ & \left.+\mathcal{H}_{\mathcal{B}}\left(y^{\mathrm{t} 2 \mathrm{~g}}\left(z_j^t\right), p^{\mathrm{t} 2 \mathrm{~g}}\left(z_j^t\right)\right)\right] \end{aligned} Lcontrast =EB∼D[HB(yg2t(zig),pg2t(zig))+HB(yt2 g(zjt),pt2 g(zjt))]
软最大归一化分布(Softmax Distribution)是一种在机器学习和深度学习中常用的归一化技术,特别是在处理分类问题时。它将一个向量或一组数值转换成概率分布。具体来说,softmax
函数将每个数值转换成一个介于 0 到 1 之间的值,并确保这些值的总和为 1,从而形成概率分布。softmax 函数的数学表达式是:
softmax ( x ) i = e x i ∑ j e x j \operatorname{softmax}(x)_i=\frac{e^{x_i}}{\sum_j e^{x_j}} softmax(x)i=∑jexjexi
这里:
- e x i e^{x_i} exi是 ( x_i ) 的自然指数。
- 分母是对所有 ( j )(即向量中的所有元素)计算自然指数之和。
通过应用 softmax 函数,我们可以将神经网络的输出转换为概率分布,这有助于在分类任务中进行决策。例如,在多分类问题中,softmax
可以用于确定每个类别的预测概率。
每个交叉熵 H \mathcal{H} H 都是在one-hot编码 𝒚 和软最大归一化分布 𝒑 之间计算得出的。y 指定训练批次 B 中手势与文本之间的真实对应关系。p 计算一种模态的嵌入与另一种模态的嵌入之间的相似度。具体来说
p g 2 t ( z i g ) = exp ( z i g ⋅ z i t / τ ) ∑ j = 1 B exp ( z i g ⋅ z j t / τ ) , p t 2 g ( z j t ) = exp ( z j t ⋅ z j g / τ ) ∑ i = 1 B exp ( z j t ⋅ z i g / τ ) p^{\mathrm{g} 2 \mathrm{t}}\left(z_i^g\right)=\frac{\exp \left(z_i^g \cdot z_i^t / \tau\right)}{\sum_{j=1}^B \exp \left(z_i^g \cdot z_j^t / \tau\right)}, \quad p^{\mathrm{t} 2 \mathrm{g}}\left(z_j^t\right)=\frac{\exp \left(z_j^t \cdot z_j^g / \tau\right)}{\sum_{i=1}^B \exp \left(z_j^t \cdot z_i^g / \tau\right)} pg2t(zig)=∑j=1Bexp(zig⋅zjt/τ)exp(zig⋅zit/τ),pt2g(zjt)=∑i=1Bexp(zjt⋅zig/τ)exp(zjt⋅zjg/τ)
在 softmax 函数中,温度参数 ( \tau ) 用来控制输出分布的“平滑度”。温度参数影响 softmax
函数的输出,使得分布更均匀或更集中。具体来说:
- 当 ( \tau ) 接近于 0 时,softmax 函数的输出趋向于一个“硬”最大值,即概率最高的类别将获得接近 1 的概率,而其他类别的概率接近于 0。
- 当 ( \tau ) 增大时,分布变得更加平滑和均匀,各类别的概率差距减小。
调整 ( \tau ) 可以在训练过程中控制模型的决策“确定性”。较低的 ( \tau ) 使模型更有信心地做出选择,而较高的 ( \tau ) 则使模型的选择更加谨慎和分散。在实际应用中,选择合适的 ( \tau ) 值对于模型的性能和稳定性非常关键。
其中,𝜏 是 softmax 的温度。
动量蒸馏 (MoD):通过利用动量模型(其参数是通过 EMA 更新的)来生成伪标签或软目标。这些伪标签用于训练主模型,有助于改进学习过程,特别是在处理噪声或不稳定数据时。
指数移动平均 (EMA):在更新动量模型的参数时使用。EMA 赋予最近的观测值更大的权重,从而在模型参数更新中引入平滑效果,有助于稳定训练过程。
所谓KL散度,是指当某分布q(x)被用于近似p(x)时的信息损失。
D ( p ∥ q ) = ∑ x ∈ X p ( x ) log p ( x ) q ( x ) D(p \| q)=\sum_{x \in X} p(x) \log \frac{p(x)}{q(x)} D(p∥q)=∑x∈Xp(x)logq(x)p(x)
也就是说,q(x)能在多大程度上表达p(x)所包含的信息,KL散度越大,表达效果越差。
在真实数据中,一个语句往往没有对应的手势,一个语义特征可能对应多个不同的手势。这种嘈杂的对应关系可能会导致对比学习的不稳定性。我们采用动量蒸馏(MoD)[Li 等人,2021b] 技术来缓解这一问题。动量蒸馏技术的主要理念是从动量模型生成的伪目标中学习。在训练过程中,我们以指数移动平均(EMA)的方式更新编码器的网络参数,从而保持编码器的动量版本。然后,我们使用动量模型来计算训练手势脚本对的多模态特征 z ~ t \tilde{\boldsymbol{z}}^t z~t和 z ~ g \tilde{\boldsymbol{z}}^g z~g,并通过将这些特征代入公式 (5) 来计算伪目标 p ~ g 2 t \tilde{\boldsymbol{p}}^{\mathrm{g} 2 \mathrm{t}} p~g2t和 p ~ t 2 g \tilde{\boldsymbol{p}}^{\mathrm{t} 2 \mathrm{g}} p~t2g。对比损失修改为
L contrast M o D = ( 1 − w contrast ) L contrast + w contrast E B ∼ D [ D K L ( p ~ g 2 t ( z ~ i g ) ∥ p g 2 t ( z i g ) ) + D K L ( p ~ t 2 g ( z ~ j t ) ∥ p t 2 g ( z j t ) ) ] \begin{aligned} \mathcal{L}_{\text {contrast }}^{\mathrm{MoD}} & =\left(1-w_{\text {contrast }}\right) \mathcal{L}_{\text {contrast }} \\ & +w_{\text {contrast }} \mathbb{E}_{\mathcal{B} \sim \mathcal{D}}\left[D_{K L}\left(\tilde{\boldsymbol{p}}^{\mathrm{g} 2 \mathrm{t}}\left(\tilde{\boldsymbol{z}}_i^g\right) \| \boldsymbol{p}^{\mathrm{g} 2 \mathrm{t}}\left(\boldsymbol{z}_i^g\right)\right)\right. \\ & \left.+D_{K L}\left(\tilde{\boldsymbol{p}}^{\mathrm{t} 2 \mathrm{~g}}\left(\tilde{\boldsymbol{z}}_j^t\right) \| \boldsymbol{p}^{\mathrm{t} 2 \mathrm{~g}}\left(\boldsymbol{z}_j^t\right)\right)\right] \end{aligned} Lcontrast MoD=(1−wcontrast )Lcontrast +wcontrast EB∼D[DKL(p~g2t(z~ig)∥pg2t(zig))+DKL(p~t2 g(z~jt)∥pt2 g(zjt))]
其中 D K L ( ⋅ ∥ ⋅ ) D_{K L}(\cdot \| \cdot) DKL(⋅∥⋅)为 KL divergence, w c o n t r a s t w_{contrast} wcontrast 设为 0.4。
5.3 联合嵌入的应用
联合嵌入空间和编码器为测量手势和记录誊本之间的语义相似性提供了一种有效的方法。为了证明这种方法的有效性,我们将手势动作映射到这个空间中,并根据嵌入的余弦距离从誊本数据集中检索出最接近的句子。图 5a 显示了一些结果。可以看出,检索到的句子可能具有不同的含义,但都可以与查询的手势自然配对。
此外,嵌入式的计算涉及最大池化算子,该算子可汇总语义相关度最高的信息。因此,我们可以利用嵌入来估算手势序列或文本句子中每个姿势或单词的显著性。具体来说,给定一个句子 𝑻 及其编码特征序列 Z t Z^t Zt 和嵌入向量 z t z^t zt,我们计算每个词的语义突出度为
s t = softmax ( Z t ⋅ z t ) s^t=\operatorname{softmax}\left(Z^t \cdot z^t\right) st=softmax(Zt⋅zt)
如图 5b 所示,语义重要性高且可能伴有语义手势的单词将表现出较高的突出得分。这一信息可被视为重要的语义线索,我们的系统将利用它来指导手势生成器创建语义正确的手势。
6. 风格化的共同语音手势扩散模型
我们系统的核心是一个条件潜在生成模型 G \mathcal{G} G,它根据语音和风格提示合成一系列潜在手势代码 Z = [ z l ] l = 1 L Z=\left[z_l\right]_{l=1}^L Z=[zl]l=1L。然后,使用第 4 节中学习的 VQ-VAE 解码器 D V Q \mathcal{D}_{\mathrm{VQ}} DVQ 将潜序列 Z Z Z解码为手势。形式上,生成器 G 计算
Z = G ( A , T , P ) Z=\mathcal{G}(A, T, P) Z=G(A,T,P)
其中,𝑨 和 𝑻 分别表示语音和文字稿,𝑷 是文体提示。语音音频 A = [ a i ] i = 1 L \boldsymbol{A}=\left[\boldsymbol{a}_i\right]_{i=1}^L A=[ai]i=1L被参数化为一系列声学特征,采样长度与手势表示相匹配。每个𝒂𝑖编码分别反映语音节拍和音量的起始点和振幅包络。语音文本𝑻 的预处理过程如第 5 节所述。生成器 G 使用𝑨 来推断节奏和重音等低级手势风格,使用𝑻 来推断语义级特征,使用𝑷 来确定手势的整体风格。
在推理过程中,生成器 G 被重新表述为一个自回归模型,其中一个手势不仅取决于语音上下文和风格提示,还取决于之前的动作。形式上,潜在序列 Z = [ z l ] l = 1 L Z=\left[z_l\right]_{l=1}^L Z=[zl]l=1L的生成方式为
z l ∗ = G ( [ z i ∗ ] i = 1 l − 1 , [ a i ] i = 1 l + δ a , T , P ) z_l^*=\mathcal{G}\left(\left[z_i^*\right]_{i=1}^{l-1},\left[\boldsymbol{a}_i\right]_{i=1}^{l+\delta^a}, \boldsymbol{T}, \boldsymbol{P}\right) zl∗=G([zi∗]i=1l−1,[ai]i=1l+δa,T,P)
其中星号 (∗) 表示 G 已经生成的数量。注意,生成器会利用𝛿 𝑎 帧的未来音频特征来确定当前手势。
6.1 潜扩散模型
生成器 G 基于潜在扩散模型(latent diffusion model)[Rombach 等人,2022 年],它是扩散模型的一种变体,在预训练的潜在特征空间中应用正向和反向扩散过程。扩散过程被模拟为马尔可夫噪声过程。从手势数据集中抽取的潜在手势序列𝒁0 开始,扩散过程逐步向真实数据中添加高斯噪声,直到其分布近似于 N (0, 𝑰)。因此,潜在序列的分布演变为
q ( Z n ∣ Z n − 1 ) = N ( α n Z n − 1 , ( 1 − α n ) I ) q\left(Z_n \mid Z_{n-1}\right)=\mathcal{N}\left(\sqrt{\alpha_n} Z_{n-1},\left(1-\alpha_n\right) I\right) q(Zn∣Zn−1)=N(αnZn−1,(1−αn)I)
其中,𝒁𝑛 是在扩散步骤 𝑛 取样的潜在序列, n ∈ { 1 , … , N } n \in\{1, \ldots, N\} n∈{1,…,N}, α n \alpha_n αn由方差表决定。与此相反,反向扩散过程或去噪过程可以估算出噪声潜序列中的附加噪声。从随机潜码序列 Z N ∼ N ( 0 , I ) Z_N \sim \mathcal{N}(\mathbf{0}, \boldsymbol{I}) ZN∼N(0,I)开始,去噪过程逐步去除噪声,恢复原始运动 Z 0 Z_0 Z0。
为了实现有条件的手势生成,我们训练了一个网络 E θ E_\theta Eθ,即所谓的去噪网络,根据噪声运动代码、扩散步骤、语音上下文和风格提示来预测噪声。该网络可表述为
E n ∗ = E θ ( Z n , n , A , T , P ) . E_n^*=E_\theta\left(Z_n, n, A, T, P\right) . En∗=Eθ(Zn,n,A,T,P).
在推理过程中,生成器 G 利用 DDPM [Ho 等人,2020] 的采样算法合成手势。它首先抽取一系列随机潜码 Z N ∗ ∼ N ( 0 , I ) Z_N^* \sim \mathcal{N}(\mathbf{0}, I) ZN∗∼N(0,I),然后计算一系列去噪序列 { Z n ∗ } , n = N − 1 , … , 0 \left\{Z_n^*\right\}, n=N-1, \ldots, 0 {Zn∗},n=N−1,…,0通过迭代从 Z n ∗ Z_n^* Zn∗中去除估计噪声 E n ∗ E_n^* En∗. 整个过程以自回归方式进行。具体来说,我们首先对第一帧的初始潜在代码 z 1 ( N ) \mathbf{z}_{1(N)} z1(N)进行采样,然后对其去噪 𝑁 步,得到生成的手势代码 z 1 ( 0 ) ∗ \mathbf{z}_{1(0)}^* z1(0)∗。接下来,我们根据上一帧代码 z 1 ( 0 ) ∗ \mathbf{z}_{1(0)}^* z1(0)∗ 和其他条件对初始代码 z2(𝑁 ) 去噪,生成第二帧手势代码 z 2 ( 0 ) ∗ \mathbf{z}_{2(0)}^* z2(0)∗。这一过程自回归地重复以生成手势序列,在每一帧𝑙中,先前的代码 [ z i ( n ) ] i = 1 l − 1 \left[\mathbf{z}_{i(n)}\right]_{i=1}^{l-1} [zi(n)]i=1l−1被生成的代码 [ z i ( 0 ) ∗ ] i = 1 l − 1 \left[\mathbf{z}_{i(0)}^*\right]_{i=1}^{l-1} [zi(0)∗]i=1l−1所取代。这一策略可以自然地扩展到以之前生成的手势为条件生成长序列。最后,潜码 z 0 ∗ \mathbf{z}^*_{0} z0∗被解码为手势动作。
如图 6 所示,我们的去噪网络采用transformer架构。我们采用了 Vaswani 等人[2017]提出的因果注意层,该层只允许当前数据和之前数据的因果关系互通。这种结构可以很容易地转换成方程(9)中的自回归模型。需要注意的是,在处理音频特征时,我们扩展了当前数据的定义,加入了𝛿 𝑎 未来帧。
去噪网络以分层方式融合多模态条件(𝑨, 𝑻, 𝑷): 首先,通过将 𝑨 与噪声潜序列 𝒁𝑛 连接起来,整合与语音节奏和重音相关的低级音频特征;然后,通过语义感知注意力层整合与语音语义相对应的高级文本特征 𝑻;最后,通过 CLIP 引导的 AdaIn 层纳入风格提示 𝑷,以控制生成手势的整体风格。
6.1.1 语义感知注意力
受最近成功的基于注意力的多模态系统[Jaegle 等人,2021 年;Rombach 等人,2022 年]的启发,我们开发了一个基于交叉注意力机制[Vaswani 等人,2017 年]的语义感知注意力层,以纳入输入的文本𝑻。具体来说,我们首先使用第 5 节所述的预训练文本编码器 E𝑇 从𝑻 中提取文本特征 𝒁 𝑡,并使用公式 (7) 计算语义突出度 𝒔 𝑡。然后,我们使用可学习的投影矩阵将𝒁𝑡 投射到注意力机制的键 K ∈ R L t × C t K \in \mathbb{R}^{L_t \times C_t} K∈RLt×Ct和值 V ∈ R L t × C t V \in \mathbb{R}^{L_t \times C_t} V∈RLt×Ct上,并计算𝒁𝑡 的值。最后,语义感知的注意机制会使用可学习的投影矩阵,并使用去噪网络的中间特征计算查询 Q ∈ R L × C t Q \in \mathbb{R}^{L \times C_t} Q∈RL×Ct。最后,语义感知注意力层的实现方式为
Attention ( Q , K , V ) = softmax ( Q K T C t ⋅ S t ) ⋅ V \operatorname{Attention}(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^T}{\sqrt{C_t}} \cdot S^t\right) \cdot V Attention(Q,K,V)=softmax(CtQKT⋅St)⋅V
其中, S t ∈ R L × L t S^t \in \mathbb{R}^{L \times L_t} St∈RL×Lt是𝒔𝑡 的时间广播语义突出矩阵,它引导网络额外关注语义上重要的词语。
6.1.2 CLIP-指导的AdaIN层
AdaIN(自适应实例归一化)的原理可以这样通俗地解释:它是一种技术,用于在神经网络中调整特征图的风格,常见于风格迁移等任务中。AdaIN通过调整每个特征图的均值和方差来实现风格的调整。
具体来说,AdaIN操作接受两个输入:一个是内容特征,另一个是风格特征。然后,AdaIN首先对内容特征进行归一化,使其具有零均值和单位方差。接着,它使用风格特征的均值和方差来调整这些归一化后的内容特征。这样,内容特征就获得了风格特征的“风格”(例如颜色、纹理等),而保持了原始的内容信息。
数学上,AdaIN可以表示为: AdaIN ( x , y ) = σ ( y ) ( x − μ ( x ) σ ( x ) ) + μ ( y ) \operatorname{AdaIN}(x, y)=\sigma(y)\left(\frac{x-\mu(x)}{\sigma(x)}\right)+\mu(y) AdaIN(x,y)=σ(y)(σ(x)x−μ(x))+μ(y)其中:
- (x) 是内容特征
- (y) 是风格特征
- μ ( ⋅ ) \mu(\cdot) μ(⋅) 和 σ ( ⋅ ) \sigma(\cdot) σ(⋅) 分别表示计算均值和标准差
- 最后,使用风格特征的均值和标准差调整归一化后的内容特征
这种方法允许网络灵活地迁移不同的风格特征到内容上,而不改变内容的本质结构。
我们采用自适应实例归一化(AdaIN)层 [Huang 和 Belongie 2017] 将风格提示信息注入去噪网络。具体来说,我们利用预训练的 CLIP 编码器 ECLIP 将输入的风格提示转换为风格嵌入 z s ∈ R C C L I P z^s \in \mathbb{R}^{C_{\mathrm{CLIP}}} zs∈RCCLIP。然后,我们学习一个 MLP 网络,将风格嵌入𝒛 𝑠 映射到 2 C a d a 2C_{ada} 2Cada 参数,这些参数可修改 AdaIn 层的每 C a d a C_{ada} Cada通道均值和方差。
我们采用 CLIP 模型的文本编码器 ECLIP-T [Radford 等人,2021 年] 来处理文本提示,并采用 MotionCLIP 模型的运动编码器 ECLIP-M [Tevet 等人,2022 年] 来处理运动提示。我们还为视频提示开发了基于 CLIP 的视频编码器 ECLIP-V,它由一个预训练的 CLIP 图像编码器 [Radford 等人,2021 年] 和一个 6 层变换器组成,后者将视频的图像特征按时间聚合到 CLIP 空间中的𝒛 𝑠 嵌入中。需要注意的是,所有这些 CLIP 编码器都是在单独的阶段进行预训练的,在训练去噪网络时,它们的权重会被冻结。
6.2 训练
按照去噪扩散模型的标准训练流程,我们通过从训练数据集中随机抽取元组 ( Z 0 , n , A , T , P ) \left(Z_0, n, A, T, P\right) (Z0,n,A,T,P),然后通过添加随机高斯噪声 𝑬 将 𝒁0 破坏成 𝒁𝑛 ,对 𝒁𝑛 应用去噪步骤,并优化损失
L net = w noise L noise + w semantic L semantic + w style L style . \mathcal{L}_{\text {net }}=w_{\text {noise }} \mathcal{L}_{\text {noise }}+w_{\text {semantic }} \mathcal{L}_{\text {semantic }}+w_{\text {style }} \mathcal{L}_{\text {style }} . Lnet =wnoise Lnoise +wsemantic Lsemantic +wstyle Lstyle .
具体来说,地面真实手势动作𝑴0 及其潜在表示𝒁0,以及语音音频𝑨 和文本𝑻 都是从同一个语音句子中提取的。𝑛从均匀分布 U { 1 , N } \mathcal{U}\{1, N\} U{1,N}中抽取。我们不假设手势数据集包含详细的风格标签。相反,我们将随机长度但包含 𝑴0 的动作片段 𝑴𝑃 视为风格提示 P。
我们首先计算扩散模型的标准噪声估计损失[Ho 等人,2020 年],其定义为
L noise = ∥ E − E θ ( Z n , n , A , T , P ) ∥ 2 2 , \mathcal{L}_{\text {noise }}=\left\|\boldsymbol{E}-\boldsymbol{E}_\theta\left(Z_n, n, A, T, P\right)\right\|_2^2, Lnoise =∥E−Eθ(Zn,n,A,T,P)∥22,
然后,我们利用语义损失来确保生成手势的语义正确性。这种损失是在第 5 节中学习到的手势脚本联合嵌入空间中定义的。具体来说
L semantic = 1 − cos ( z 0 g , z 0 g ∗ ) \mathcal{L}_{\text {semantic }}=1-\cos \left(z_0^g, z_0^{g *}\right) Lsemantic =1−cos(z0g,z0g∗)
其中, cos ( ⋅ , ⋅ ) \cos (\cdot, \cdot) cos(⋅,⋅)是余弦距离, z 0 g z_0^{g } z0g和 z 0 g ∗ z_0^{g *} z0g∗分别是GT和生成动作的手势编码,使用第 5 节中预处理的手势编码器 E𝐺 计算得出。最后,我们采用感知损失来鼓励生成器遵循风格提示。这种风格损失定义为
L style = 1 − cos ( E CLIP-M ( M 0 ) , E CLIP-M ( M 0 ∗ ) ) , \mathcal{L}_{\text {style }}=1-\cos \left(\mathcal{E}_{\text {CLIP-M }}\left(\boldsymbol{M}_0\right), \mathcal{E}_{\text {CLIP-M }}\left(\boldsymbol{M}_0^*\right)\right) \text {, } Lstyle =1−cos(ECLIP-M (M0),ECLIP-M (M0∗)),
我们利用无分类器指导法 [Ho and Salimans 2021] 来训练我们的模型。具体来说,我们通过随机设置𝑷 = ∅,让𝑬𝜃同时学习风格条件分布和非条件分布,从而在训练过程中以 10% 的概率禁用 AdaIN 层。推理时,预测噪声的计算方法是
E n ∗ = s E θ ( Z n , n , A , T , P ) + ( 1 − s ) E θ ( Z n , n , A , T , ∅ ) E_n^*=s E_\theta\left(Z_n, n, A, T, P\right)+(1-s) E_\theta\left(Z_n, n, A, T, \varnothing\right) En∗=sEθ(Zn,n,A,T,P)+(1−s)Eθ(Zn,n,A,T,∅)
来代替公式 (11)。这种方案还允许我们通过调整比例因子𝑠来控制风格提示𝑷 的有效性。
6.2.1 CLIP 视频编码器
我们在第 6.1.2 节中开发了基于 CLIP 的视频编码器 ECLIP-V,以视频片段作为风格提示。ECLIP-V 封装了一个预训练的 CLIP 图像编码器 [Radford 等人,2021 年](其权重被冻结)和一个可学习的变换器网络。为了学习 ECLIP-V,我们将随机运动序列 𝑴 渲染到视频中,并优化损失函数
L video = 1 − cos ( sg ( E C L I P − M ( M ) ) , E C L I P − V ( R ( M ; r ) ) ) \mathcal{L}_{\text {video }}=1-\cos \left(\operatorname{sg}\left(\mathcal{E}_{\mathrm{CLIP}-\mathrm{M}}(\boldsymbol{M})\right), \mathcal{E}_{\mathrm{CLIP}-\mathrm{V}}(\mathcal{R}(\boldsymbol{M} ; \boldsymbol{r}))\right) Lvideo =1−cos(sg(ECLIP−M(M)),ECLIP−V(R(M;r)))
其中,sg 表示阻止梯度反向传播的停止梯度算子;R 表示将𝑴 渲染为人体骨骼姿势视频的渲染算子,摄像机参数𝒓 的配置与 [Aberman 等人,2020] 类似;ECLIP-M 是预训练的运动编码器。这一损失函数确保 ECLIP-V 能将视频片段映射到相同的共享 CLIP 嵌入空间。有趣的是,虽然视频编码器仅使用合成视频进行了微调,但我们发现它在实际应用中仍能从真实世界的视频中提取有意义的语义信息。我们将这种鲁棒性归功于预先训练的图像解码器,该解码器是在一个大型数据集上训练的[Radford 等人,2021 年]。
6.3 身体部位的风格控制
受 [Zhang 等人 2022] 的启发,我们对系统进行了扩展,允许使用噪声组合对单个身体部位进行细粒度样式控制。考虑到角色身体的一个分区 O,其中每个身体部位 O ∈ ∣ O ∣ O\in|O| O∈∣O∣由多个关节组成,我们学习 O = ∣ O ∣ O=|O| O=∣O∣个体运动 VQ-VAE,将每个身体部位的运动表示为潜在代码 Z o = E V Q o ( M o ) Z^o=\mathcal{E}_{\mathrm{VQ}}^o\left(M^o\right) Zo=EVQo(Mo)。然后,通过堆叠身体各部分的运动代码,计算出全身运动代码 Z O ∈ R O × ( L × C ) Z^O \in \mathbb{R}^{O \times(L \times C)} ZO∈RO×(L×C)。然后,我们根据𝒁 O 以前面章节介绍的相同方法训练一个新的潜在扩散模型𝑬𝜃。在推理时,我们会预测全身噪声 { E n , o ∗ } o ∈ O \left\{E_{n, o}^*\right\}_{o \in O} {En,o∗}o∈O,条件是每个身体部位都有一组风格提示 { P o } o ∈ O \left\{\boldsymbol{P}_o\right\}_{o \in O} {Po}o∈O,其中每个 E n , o ∗ = E θ ( Z n O , n , A , T , P o ) E_{n, o}^*=E_\theta\left(Z_n^O, n, A, T, P_o\right) En,o∗=Eθ(ZnO,n,A,T,Po)。这些噪声可以简单地融合为 E n ∗ = ∑ o ∈ O E n , o ∗ E_n^*=\sum_{o \in O} E_{n, o}^* En∗=∑o∈OEn,o∗,其中 { M o } o ∈ O \left\{M_o\right\}_{o \in O} {Mo}o∈O是二进制掩码,表示物体在 O 中的分区。为了获得更好的运动质量,我们根据 Zhang 等人的建议[2022],在去噪方向上添加了平滑度项,即
E n ∗ = ∑ o ∈ O ( E n , o ∗ ⋅ M o ) + w body ∇ Z n O ( ∑ i , j ∈ O , i ≠ j ∥ E n , i ∗ − E n , j ∗ ∥ 2 ) , E_n^*=\sum_{o \in O}\left(E_{n, o}^* \cdot M_o\right)+w_{\text {body }} \nabla_{Z_n^O}\left(\sum_{i, j \in O, i \neq j}\left\|E_{n, i}^*-E_{n, j}^*\right\|_2\right), En∗=o∈O∑(En,o∗⋅Mo)+wbody ∇ZnO i,j∈O,i=j∑ En,i∗−En,j∗ 2 ,
其中,∇ 表示梯度算子。 w b o d y w_{body} wbody 设为 0.01。
7. 评估
在本节中,我们将首先介绍我们系统的设置,然后评估我们的结果,与其他系统进行比较,介绍我们系统的几种潜在应用,并通过消融研究验证我们框架的各种设计选择。
7.1 系统设置
7.1.1 数据
我们在两个高质量的语音-手势数据集上训练和测试我们的系统: ZeroEGGS [Ghorbani 等人 2023] 和 BEAT [Liu 等人 2022e]。ZeroEGGS 数据集包含两小时的全身动作捕捉和一名英语女演员以 19 种不同风格表演的独白音频。我们使用自动语音识别(ASR)工具[阿里巴巴,2009 年]获取了同步文本。BEAT 数据集包含 76 个小时的多模态语音数据,包括音频、转录和全身动作捕捉,这些数据来自 30 位演讲者以 8 种情感风格和 4 种不同语言进行的表演。我们只使用了英语发言人的语音数据,总时长约 35 小时。
7.1.2 设置
我们的系统生成 60fps 动作。我们训练运动 VQ-VAE(第 4 节)时采用的下采样率为 𝑑 = 8,批量大小为 32,𝐶 = 512。为了学习手势脚本嵌入空间(第 5 节),𝐶𝑠、𝜏 和 𝐵 的值分别设置为 768、0.07 和 32。至于扩散模块(第 6 节),去噪网络基于一个 12 层、768 个特征宽、仅编码器变换器和 12 个注意头。扩散步数为𝑁 = 1000,每个 GPU 的训练批次大小为 128,参数 δ a , C CLIP , C ada , w noise , w semantic , w style \delta^a, C_{\text {CLIP }}, C_{\text {ada }}, w_{\text {noise }}, w_{\text {semantic }}, w_{\text {style }} δa,CCLIP ,Cada ,wnoise ,wsemantic ,wstyle 分别设置为 8、768、768、1.0、0.1 和 0.07。我们使用长度为 4 秒的常规语音片段来训练运动 VQ-VAE,并使用长度为 1 秒至 15 秒的句子级片段来训练其他模型。我们使用两台英伟达 Tesla V100 GPU 对所有这些模型进行了大约五天的训练。在推理过程中,我们的系统在单个 Tesla V100 GPU 上生成一个 1 秒(60 帧)的手势片段大约需要 1.5 秒。
7.2 结果
图 7 显示了我们的系统根据三种不同类型的风格提示(文本、视频和动作)生成手势的可视化结果,测试语音来自 ZeroEGGS 数据集。我们的系统按照相应提示的要求,成功生成了风格合理的逼真手势。当文本提示人物生气时,人物会做出愤怒的手势。嘻哈风格的手势模仿自嘻哈音乐视频 [Khalifa 2011]。我们的系统还能感知非人类视频中的语义信息,如树木随风摇摆[RelaxingSoundsOfNature 2018],引导角色左右摇摆。至于动作提示,我们的系统成功生成了与动作示例类似的上臂手势。
图 8 展示了使用我们的系统进行身体部位感知风格控制的结果。我们采用不同的提示来控制身体各部分的风格。由此产生的动作在保持身体各部分之间自然协调的同时,也产生了这些风格。
如第 6.2 节所述,无分类器引导方案的比例因子𝑠 控制着输入风格提示的效果。增加𝑠 会增强甚至夸大给定的风格,从图 9 中可以看出,在文字提示举起双手的情况下增加𝑠,人物的双手会抬得更高。
我们的系统允许手势风格随句子的变化而变化。如图 10 所示,我们将风格提示从举起双手变为 “气喘吁吁”,再变为 “尤塞恩-博尔特”。生成的手势准确地匹配了这些风格,并保持了不同风格之间的平滑过渡。
此外,图 12 显示了风格条件合成(第一行)与风格无条件合成(第二行)的可视化对比结果。为每个句子指定风格提示可以有效地引导角色的表演,使共同语音手势更加生动。
7.3 比较
按照近期手势生成研究的惯例[Alexanderson 等人,2020 年;Ao 等人,2022 年;Ghorbani 等人,2023 年],我们通过一系列用户研究对生成的动作进行评估。我们还进行了定量评估,结果将在后面的章节中提供作为参考。
7.3.1 基线模型
BEAT 数据集采用级联运动网络(Cascaded Motion Network,CaMN)基准方法发布,该方法将音频、文字记录、情感标签、说话者 ID 和面部混合形状权重作为输入,使用级联架构生成手势。在这里,我们忽略了生成动作的手指和面部权重。同样,ZeroEGGS 数据集也提供了一个基准,即 ZeroEGGS 算法(ZE),该算法对语音音频和动作示例进行编码,以合成目标风格化手势。在 2022 年 GENEA 挑战赛[Yoon 等人,2022 年]中,ZE 在所有基于深度的模型中取得了最佳性能。由于之前的研究中没有模型支持以文本提示为条件的合成,因此我们将强大的文本提示到动作模型 MotionDiffuse(MD)[Zhang 等人,2022 年] 和 ZeroEGGS 结合起来,构建了一个基准模型 MD-ZE。具体来说,MD 首先将给定的文本提示转换为动作示例,然后 ZE 根据动作示例和输入语音生成目标风格化手势。有关这些基线的更多实现细节,请参阅附录 B。
7.3.2 用户研究
我们采用成对比较的方法进行用户研究,与 [Alexanderson 等人,2022] 中描述的方法类似。在每次测试中,参与者都会看到由不同模型(包括地面实况)为同一语音合成的两个 10 秒钟视频片段,并依次播放。参与者需要根据视频下方显示的说明选择自己喜欢的片段,并在 0 到 2 的范围内打分,0 表示不喜欢。视频配对中的另一个片段会自动获得相反的分数(例如,如果参与者给首选视频打 1 分,则未被选中的视频得分为-1 分)。我们通过 Credamo 平台招募参与者[Credamo 2017]。
我们进行了四种类型的偏好测试:人类相似性、适当性、风格正确性(带数据集标签)和风格正确性(带随机提示)。所有测试都包括注意力检查。在 "人像 "测试中,参与者会被问及生成的动作是否与真人的动作相似。视频片段会被静音,以防止受到语音的影响。在适当性测试中,参与者将对生成的动作是否与语音的节奏和语义相匹配进行评分。在风格正确性(带数据集标签)测试中,参与者需要评估生成的动作在多大程度上代表了给定的文本风格提示。需要注意的是,在本测试中,文本提示包含数据集提供的风格标签,而且视频是静音的。最后,我们还进行了类似的测试–风格正确性(随机提示),以评估系统的通用性。该测试中使用的文本提示不包含数据集中的任何风格标签,文本提示所描述的运动风格也可能不存在于数据集中。有关用户研究的更多详情,请参阅附录 A。
在 BEAT 数据集上,由于 CaMN 在原始论文中不支持以文本提示为条件的风格控制,我们仅使用人类相似性和适当性测试将我们的系统与 CaMN 进行比较。在实践中,我们比较了四种方法:地面实况手势 (GT)、我们的系统 (Ours)、我们的不带文本输入(w/o transcript)的消融系统和 CaMN。所有系统都只将语音作为输入,我们的系统在样式无条件模式(w/o style prompt)下生成动作,而 CaMN 的额外说话者 ID 输入默认为地面实况。
在这项用户研究中,分别有 100 名和 98 名受试者通过了人像测试和适当性测试的注意力检查。表 1 显示了这些测试的平均得分。我们对每项用户研究进行了单因素方差分析和事后 Tukey 多重比较测试。在人类相似性测试中,GT、Ours 和 Ours(无誊本)在统计上并列领先 CaMN(𝑝 < 0.001)。在适当性测试中,Ours 的得分高于其他方法(𝑝 < 0.001),但由于缺乏语义信息,Ours(不含文字记录)的得分明显下降。基于这两项与运动质量相关的研究,我们得出结论:基于扩散的模型优于 CaMN,而语义模块(包括语义感知注意力层和 Lsemantic)对于确保语音和生成手势之间的语义一致性至关重要。
在 ZeroEGGS 数据集上,我们使用所有四种偏好测试来评估我们的系统。在人类相似性和适当性测试中,我们将我们的系统与 ZE 进行了比较。在风格正确性测试中,我们将系统与 MD-ZE 进行比较。为了进行公平比较,我们让系统根据动作提示生成手势,其中动作提示是从包含四种风格(快乐、悲伤、愤怒和苍老)的训练集中随机抽取的。测试集选择了两段中性风格的语音录音,以防止语音中潜在的风格信息影响生成的风格。为风格正确性(含数据集标签)测试准备了四条文本提示: {这个人很高兴、这个人很悲伤、这个人很生气、一个老人在打手势}。至于风格正确性(带随机提示)测试,测试风格提示要么指定说话者的风格(嘻哈说唱歌手),要么定义一种姿势(右手拿着杯子环顾四周),要么描述一种抽象状况(一个人刚刚失业)。请注意,ZeroEGGS 数据集中没有这些测试风格提示的基本事实。
在注意力检查之后,我们记录了 99 位参与者的回答,以进行相似度和适当性测试。如表 1 所示,Ours 和 ZE 的人类相似度得分差异不显著(𝑝 < 0.05),而在语音匹配指标(适当性)上,Ours 则明显优于 ZE(𝑝 < 0.001)。这是因为 ZE 只将语音音频作为输入,可能缺乏足够的语义信息。在风格正确性测试中,对于包含数据集风格标签的文本提示,100 名有效受试者的 Ours 得分高于 MD-ZE(𝑝 < 0.001)。图 11 左侧提供了一个可视化演示,MD-ZE 的结果反映了一些悲伤感,而 Ours 的动作则更加生动。这些结果证实了我们的系统在风格控制方面的效率。即使在随机提示的情况下,我们的方法仍然保持稳健,领先于 MD-ZE(𝑝 < 0.001),并能生成准确的风格化手势。可视化结果如图 11 右侧所示。
7.4 定量评估
我们使用三个指标对动作质量、语音手势内容匹配和风格正确性进行定量测量:弗雷谢特手势距离(FGD)[Yoon 等人,2020 年]、语义相关手势召回(SRGR)[Liu 等人,2022 年e]、语义分数(SC)和风格重现准确性(SRA)[Jang 等人,2022 年]。
FGD 分别测量根据生成手势和真实手势计算出的潜在特征分布之间的距离。这一指标通常用于评估手势的感知质量。较低的 FGD 通常表明运动质量较高。
研究表明,由于语音和手势之间固有的多对多对应关系,香草 L1 距离和正确关键点概率(PCK)并不适合评估手势性能[Liu 等人,2022e;Yoon 等人,2020]。为解决这一问题,我们采用了 Liu 等人提出的 SRGR 指标[2022e],该指标使用人工标注的语义分数作为 PCK 的权重。该指标可确保语义相关的手势与基本事实密切吻合,同时允许其他手势(如节拍手势)的变化。此外,根据[Liu 等人,2022e],SRGR 可部分捕捉生成手势的多样性。SRGR 越高,表示性能越好。
为了评估语音和生成的手势之间的语义一致性,我们提出了一个新的指标,即语义分数(SC),用于计算生成的动作与手势-脚本嵌入空间中的GT脚本之间的语义相似性(第 5 节)。语义分数的计算公式为
S C = cos ( z t , z 0 g ∗ ) \mathrm{SC}=\cos \left(z^t, z_0^{g *}\right) SC=cos(zt,z0g∗)
其中,𝒛 𝑡 和 z g ∗ z^{g *} zg∗分别是地面真实文本编码和生成动作的手势编码。SC ∈ [-1, 1],SC 越高,表明语音与手势内容的匹配度越高。
按照 [Jang 等人 2022] 的方法,我们在 ZeroEGGS 数据集上预先训练分类器,以预测动作风格标签。该数据集包含 19 种不同的风格,但我们排除了一些模棱两可的风格,如同意、不同意、演说、沉思、讽刺和威胁。测试时,我们使用中性风格的所有语音录音作为输入语音。文本提示使用提示模板(人是[风格标签])生成,其中风格标签(如快乐和悲伤)来自数据集。然后,我们使用中性语音和合成文本提示作为输入,生成风格化手势。最后,我们使用风格分类器来测量测试集上的风格识别准确率(SRA)。较高的 SRA 表示在风格控制方面有更好的表现。值得注意的是,SRA 仅限于覆盖数据集中出现的样式。
我们只在 BEAT 数据集上进行运动质量相关的评估,特别是 FGD、SRGR 和 SC,因为要确保运动分布(FGD 和 SRGR)的准确近似和所学语义空间(SC)的通用性,就必须使用大型数据集。对于与风格相关的评估(SRA),我们仅在 ZeroEGGS 数据集上测量性能,因为该数据集具有多种风格,而且基线系统 MD-ZE 也是在该数据集上训练的。FGD、SRGR 和 SC 是使用句子级别的运动片段计算的,而 SRA 则使用 10 秒钟的片段进行测量。我们在测试数据上合成 10 次,计算出每个指标的平均值(± 标准偏差)。BEAT 数据集的测试集由出现在训练集中的每位说话者的对话和自言自语会话的第一个文件组成。
如表 2 所示,在运动质量相关指标(FGD、SRGR 和 SC)方面,我们的系统优于基线 CaMN。当誊本输入被丢弃时,我们系统的 SC 值明显降低,这凸显了手势-誊本嵌入模块的重要性。在风格控制方面,我们的系统在 SRA 指标上明显优于基线 MD-ZE,这与用户研究的结果一致(见第 7.3.2 节)。不同消减设置(即 Ours(不含 Lstyle)和 Ours(串联融合))的 SRA 结果表明了这些组件在我们系统中的必要性。
7.5 应用
我们的系统可以实现几种有趣的应用。其中一项应用涉及通过指定语音中每句话的风格并使用风格提示来指导角色的表演,从而增强协同语音手势。这一过程可由大型语言模型(如 ChatGPT [OpenAI 2022])自动完成。具体来说,我们可以指示 ChatGPT 为语音中的每个句子生成风格提示,然后相应地生成风格化的协同语音手势。图 12 展示了使用生成的文本提示所得到的编辑结果(第一行),它比无样式条件的结果(第二行)更加生动。
另一种应用是让 ChatGPT 写一个故事,并创建相应的文体提示。然后,我们可以使用文本到语音工具[Murf.AI 2022]将生成的文本翻译成音频,并将音频作为语音输入。这样就能产生一个娴熟的讲故事者。如图 13 所示,我们让 ChatGPT 用合适的文本提示编写了一个关于旅行的简短笑话,并用它们合成了手势。生成的手势以不同的肢体风格成功地演绎了这个笑话。
附录 C 详细介绍了这些应用示例对 ChatGPT 的全部提示输入。动画效果请参阅补充视频。
7.6 消融实验
我们分析了手势-转录嵌入、风格损失和风格融合机制对性能的影响。结果见表 1、表 2 和补充视频。
7.6.1 手势-脚本嵌入
在本实验中,我们省略了去噪网络的誊本嵌入输入,用因果自注意层取代了语义感知注意层,并在没有语义损失 Lsemantic 的情况下重新训练了生成器。补充视频表明,生成的动作保持了节奏的和谐,但缺乏合理的语义。此外,语义感知指标,如适当性(表 1)和 SC(表 2),也显示我们的模型(不含手势誊本)显著下降。这些结果证实,手势脚本嵌入模块能有效增强语音与手势之间的语义一致性。
7.6.2 风格损失
在本实验中,我们在没有风格损失 Lstyle 的情况下重新训练了去噪网络。补充视频显示,生成样式的可识别性降低了。表 2 中的风格识别准确率(SRA)也有所下降。直观的解释是,CLIP 中嵌入的风格相关知识通过风格损失为生成手势的风格化提供了指导。这种指导近似于风格感知监督,即使在没有明确标签的情况下也是如此。
7.6.3 风格融合机制
在本实验中,我们用直接串联取代了基于 AdaIN 的风格嵌入融合方案,即在生成器中广播风格嵌入并与中间深度特征串联,以进行风格修改。虽然与 AdaIN 相比,Ours(串联融合)的 SRA 值仅略有下降,但补充视频显示,Ours(串联融合)生成的运动表现出抖动和不自然的动作。
8. 结论
在本文中,我们介绍了 GestureDiffuCLIP,这是一个以 CLIP 为指导的协同语音手势合成系统,可根据任意风格提示生成风格化手势,同时确保与语音在语义和节奏上的和谐。我们利用功能强大的基于 CLIP 的编码器从风格提示中提取风格嵌入,并通过 AdaIN 层将其纳入基于扩散模型的生成器。这一架构可有效引导生成手势的风格。CLIP latents 使我们的系统高度灵活,可支持短文、动作序列和视频剪辑作为风格提示。我们还开发了一种语义感知机制,以确保语音和生成手势之间的语义一致性,即通过对比学习来学习手势和语音记录之间的联合嵌入空间。我们的系统可以扩展到通过噪声组合实现对单个身体部位的风格控制。我们进行了大量实验来评估我们的框架。从 FGD、SRGR、SC 和 SRA 指标以及用户研究结果来看,我们的系统在质量和数量上都优于所有基线系统。在应用方面,我们证明了我们的系统可以通过为每个语音句子指定风格提示并使用这些提示来指导角色的表演,从而有效地增强协同语音手势。我们可以通过使用像 ChatGPT 这样的大型语言模型来进一步实现这一过程的自动化,从而使讲故事的人能够熟练地讲故事。
在我们的系统中,风格是指动作的整体外观,或者更准确地说,是指与输入语音内容无关的手势方面。这包括风格特征和动作限制。我们的系统在一个统一的框架内处理这两种类型的风格,当有强大的语言模型时,用户可以使用组合提示来定义这两种风格,例如 “这个人很高兴,右手拿着一杯咖啡(风格特征 + 约束条件)”。我们当前框架的另一个有趣扩展是允许用户将不同形式的提示结合起来,以更准确地描述一种风格,例如用文本提示指定风格特征,用视频或动作提示定义动作细节。这为未来的工作提供了一个引人注目的方向。
我们的系统使用未见过的风格提示实现了零镜头风格控制,并可泛化到某些未见过的声音,如图 13 中使用的文本到语音工具合成的声音。不过,与基于深度学习的方法一样,我们系统的能力和鲁棒性也受到训练数据和网络架构的限制。例如,由于 Vanilla CLIP 文本编码器的限制,我们的系统无法接受过长的文本提示,用户可能会发现某些描述无法被准确解释。在使用动作剪辑或人体视频作为风格提示时,我们的系统会一直努力生成与提示中显示的姿势相似的手势。不过,如图 14 所示,与数据集差异较大的姿势(如许多瑜伽姿势)可能无法准确再现。此外,由于非人类视频通常缺乏清晰的动作语义解释,视频内容与生成的动作风格之间的语义联系可能会模糊不清。如图 14 所示,我们的视频编码器从鸟类视频和恐龙视频中提取了手臂姿势,但将闪电视频解释为举起双手的提示,这可能是闪电和云朵的形状造成的。最后,如果音频输入的声音特征与训练数据集有很大差异,则生成的动作可能不符合语音节奏或与语音内容不一致,从而导致结果不尽人意。提高系统的通用性和可解释性仍然是有待进一步探索的实际挑战。
我们使用 CLIP 式对比学习框架来学习手势-文字联合嵌入空间,该框架已被证明能有效地从两种模式中提取语义信息,并支持基于动作的文本检索和单词突出识别等应用。CLIP 式模型通常具有良好的扩展性,在更大的数据集上进行训练时,有可能增强其能力[Radford 等人,2021 年]。对这一潜力的研究为未来的研究提供了一个有趣的途径。
我们系统生成的运动表现出轻微的脚部滑动,这是基于运动学方法的常见问题[Holden 等人,2017 年;Tevet 等人,2023 年]。通过基于 IK 的后处理可以缓解这一问题,但后处理后可能会出现不自然的接触状态转换[Li 等人,2022]。开发基于物理的协同语音手势生成系统可以从根本上解决这一问题。
最后,我们的系统基于潜在扩散模型,该模型可有效确保运动质量,但在推理过程中需要大量的扩散步骤,因此对实时合成运动具有挑战性。未来可以考虑采用加速技术,如 PNDM [Liu 等人,2022b],来优化采样效率。
附录
A 用户研究细节
一个对比对包含两段 10 秒钟的视频,从左到右依次播放。我们使用相同的语音和角色模型生成每对对比。用户研究问卷是使用 Credamo 平台提供的人类行为在线(HBO)工具制作的[Credamo 2017]。该工具旨在进行心理实验样本收集,无需复杂的编程。所有测试和问卷都由 24 对视频组成。完成一个实验平均需要 10 分钟。我们通过 Credamo 从美国和中国招募参与者。参加有声测试的参与者必须能说流利的英语。按照[Alexanderson 等人,2022],我们在实验中随机引入了注意力检查,以筛选有效样本。具体来说,在问题的整个持续时间内,视频对的底部都会出现一条文字信息:注意:请选择最右边的选项;在两个片段之间的过渡间隙,视频中也会出现这条文字信息。未通过注意力检查的样本不会被用于最终结果。
运动质量研究
BEAT
我们从 BEAT 数据集的测试集中选取 24 个语音片段来创建手势,为每种方法生成 24 个视频片段。我们比较了四种方法: 我们比较了四种方法:GT、我们的、我们的(不含誊本)和 CaMN,从而产生了 12 个潜在的配对组合,用于并排演示。这就产生了总共 288 对视频(24 个语音样本 × 12 种组合)。每位参与者需要评估 24 对视频,包括所有 24 个语音样本。12 种可能的对比组合各出现两次。每位受试者的语音样本和对比组合都是随机的。
ZEGGS
我们从中性风格的 ZeroEGGS 测试录音(003_Neutral_2 和 004_Neutral_3)中选取 6 个音频片段来合成 4 种不同风格(快乐、悲伤、愤怒和苍老)的手势,每个系统可合成 24 个视频片段。在本研究中,我们对 ZE 和 Ours 两种系统进行了比较。在评估过程中,每位受试者都会以随机顺序接触所有 24 个视频片段(6 个音频片段 × 4 种风格)一次,ZE 和 Ours 的结果均匀分布在每对视频片段的前面位置。
关于 ZeroEGGS 数据集的风格控制研究
除输入文本提示外,风格正确性(含数据集标签)和风格正确性(含随机提示)测试的配置完全相同。在每项研究中,我们使用实验 A.1.2 中相同的 6 个音频片段来生成以 4 个文本提示为条件的动作。这样,每个系统(MD-ZE 和 Ours)在每个测试中都有 24 个视频片段。对于风格正确性(带数据集标签),文本提示为 {这个人很高兴、这个人很悲伤、这个人很生气、一个老人在打手势}。在风格正确性(含随机提示)测试中,文字提示为 {嘻哈说唱歌手、右手拿着杯子、环顾四周、一个人刚失业}。同样,每位受试者以随机顺序对这 24 × 2 个视频片段进行评估,MD-ZE 和 Ours 的运动结果均匀分布在每对视频片段的前端位置。
基线的实施细节
在撰写本作品时,CaMN [Liu 等人 2022e]的作者尚未提供预训练的生成模型。相反,他们提供了一个玩具数据集的训练代码和一个用于计算 FGD 的预训练运动自动编码器。我们在原论文中使用的一个更大的数据集上运行了所提供的训练代码,并从模型条件中剔除了未发布的情感标签。重现模型的 FGD 值为 122.5,接近原论文中报告的值(123.7)。再现模型合成的手势的视觉质量与 CaMN 视频演示中的手势相似。然后,我们按照上述配置,在工作中使用的 BEAT 数据集的一部分(第 7.1 节)上训练一个新的 CaMN 模型。该模型在 FGD(110.23)上取得了更好的性能,本文将其作为基线。
对于 ZeroEggs 数据集上的基线 MD-ZE,该基线的两个组成部分,即 MotionDiffuse(MD)[Zhang 等人,2022 年] 和 ZeroEGGS(ZE)[Ghorbani 等人,2023 年] 是使用官方预训练模型构建的。请注意,这两个模型的骨架是不同的。因此,我们对 MD 生成的运动提示进行重新定位,以适应 ZE 的界面。具体来说,我们首先将生成的运动提示(表示为 SMPL [Loper 等人,2015 年] 关节位置)转换为关节旋转,并将其保存为 BVH 文件。然后,我们使用 Blender 附加组件 BVH Retargeter [Alessandro Padovani 2020],将 SMPL 骨架中的提示重定向到 ZeroEGGS 骨架。
ChatGPT 提示
图 15 展示了第 7.5 节中 ChatGPT [OpenAI 2022] 的提示输入。