AVI-Talking——能通过语音生成很自然的 3D 说话面孔

概述

论文地址:https://arxiv.org/pdf/2402.16124v1.pdf

逼真的人脸三维动画在娱乐业中至关重要,包括数字人物动画、电影视觉配音和虚拟化身的创建。以往的研究曾试图建立动态头部姿势与音频节奏之间的关联模型,或使用情感标签或视频剪辑作为风格参考,但这些方法的表现力有限,无法捕捉到情感的细微差别。它们还要求用户手动选择风格源,这往往会导致应用不自然。

本文提出了一种更自然的方法。它旨在利用人类语音中的风格信息,生成能直接反映说话者情绪和风格的富有表现力的说话表情。从音频中合成各种逼真的面部动作是一项复杂而具有挑战性的任务,同时还要保持准确的唇部同步。为了解决这个问题,我们正在开发一个名为 AVI-Talking 的新系统。该系统可通过视听引导系统生成富有表现力的说话表情。

AVI-Talking 通过使用中间视觉教学表征而不是直接从音频中学习,有效地弥补了视听差距。具体来说,该框架将生成过程分为两个阶段,每个阶段都有一套明确的目标,从而大大降低了优化的复杂性。此外,将视觉指令作为中间输出的呈现方式提高了模型的可解释性,并为用户根据自己的意愿进行指令和修改提供了灵活性。

这项技术有望开辟娱乐技术的新天地。

AVI-Talking 概述

AVI-Talking 的目标是根据语音片段生成具有同步嘴唇动作和一致面部表情的三维动画人脸。它不是根据直接语音合成会说话的人脸,而是利用大规模语言模型来有效指导生成过程。

下图概述了 AVI-Talking 系统的流程。该系统由两个主要阶段组成:第一个阶段是 “通过 LLMs 进行视听教学”。第二个阶段是 “会说话的面部 指令系统”。在这里,三维面部动作是根据指导实时合成的。其目的是从输入语音中生成三维参数系数的时间序列。

这种方法能够真实地再现说话者的自然面部表情和嘴部动作,为观众提供更逼真的视觉体验。

实验和结果

对生成的指南和会说话的面孔的质量进行量化评估。评估分为两类:第一类是视听指令预测。在这里,自然语言生成领域广泛采用的指标被用来评估使用 BLEU1、BLEU4、METEOR、ROUGE-L、CIDEr 和 SPICE 生成的指南的准确性。使用 GAN 指标 FID 和 KID 评估面部保真度,并通过多样性得分进一步衡量特定语音片段的面部表情多样性。它还通过计算不同噪音条件下风格特征之间的距离来量化生成面部表情的变化,并使用 LSE-D 来衡量唇部同步的准确性。

在 MeadText 和 RAVEDESS 数据集上获得的 "三维会说话的人脸合成 "结果如下表所示。在许多评估指标上,AVI-Talking 都表现出色。不过,在唇音同步的准确性方面,它可能略逊于其他方法,这主要是由于 SyncNet 是基于无表情视频预先训练的,因此偏向于中性面部表情。

AVI-Talking 的重点是面部表情,这是影响得分的一个因素。不过,它获得的 LSE-D 分数接近参考视频,这表明生成精确的唇音同步视频是可能的。

本文还进行了定量评估。主观评估对于验证模型在生成任务中的表现至关重要。下图显示了AVI-Talking 与传统技术在三种不同情况下的比较结果。结果表明,AVI-Talking可根据说话者的状态生成可靠的视听指令和富有表现力的面部细节。

关于唇语同步的性能,据观察,CodeTalker 和 Faceformer 等其他方法可以在没有面部表情的情况下产生更自然的发音。然而,根据这项研究,在涉及情绪的场景中,可以观察到唇部动作的轻微失真。这一观察结果与上述表格中的 LSE-D 分数也是一致的,后者是一种定量评估。

此外,论文还包括一项用户研究,15 名参与者对AVI-Talking 和三种竞争方法生成的共 30 个视频进行了评分。这些视频是使用从 MeadText 测试集中随机抽取的 20 段口语音频和从 RAVEDESS 中抽取的 10 段音频生成的。

评估采用业内广泛使用的 MOS。参与者从三个维度对每段视频进行 1 到 5 分的评分。

  • 唇语同步质量:评估与口语内容同步的嘴部动作。
  • 动作的表现力:评估面部细节的丰富程度。
  • 面部表情的一致性:评估面部动作与说话者表情的一致性。

结果如下表所示,由于 MeshTalk 采用了简单的 UNet 架构设计,因此在各方面的得分都最低。另一方面,EmoTalk 和 CodeTalker(引入了转换器块)的唇音同步质量得分较高。

在动作的表现力和面部表情的一致性方面,AVI-Talking明显优于其他方法。总体而言,AVI-Talking 在表现力合成方面优于其他模型,清楚地表明了该方法的有效性。
在这里插入图片描述

总结

本文提出的 AVI-Talking 是一种基于语音生成富有表现力的三维说话表情的新型系统。该系统首先将语音-视觉生成分解为两个不同的学习步骤,并通过使用中间视觉引导来促进语音驱动的说话表情生成。它还引入了一种新颖的软提示策略,利用大规模语言模型的语境知识来捕捉说话者的语音状态。此外,我们还建立了一个预训练程序,以整合唇语同步和视听指令。最后,我们利用扩散预网络将视听指令有效映射到潜在空间中,以实现高质量的生产。

不过,也发现了一些局限性。对特定语音状态的低灵敏度和说话人脸合成网络对有限视觉指示的依赖被认为是挑战。这归因于数据集的异质性,以及说话者的语音没有得到很好的识别。

未来的研究还将考虑使用检索增强生成(RAG)技术进行进一步的微调和知识注入。这将使大规模语言能够专门用于特定的跨模态视听生成任务,从而生成更具表现力的会说话的人脸。此外,通过使用强大的视觉标记器和对一般视觉基础设施模型进行微调,有望获得更通用和更有竞争力的结果。这些发展有望成为未来会说话的人脸生成技术的重要步骤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406737.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot Web请求、响应

一、文章概述 请求方面主要讲,当前端向后端发出请求时,对于不同类型的参数后端都如何接收;对于响应,文章会讲解后端如何向前端响应数据以及如何使返回的数据具有统一的格式。 二、请求 2.1接收简单参数 Controller方法&#xf…

算法的学习笔记—二叉搜索树的后序遍历序列(牛客JZ33)

😀前言 在数据结构与算法的学习中,二叉搜索树(BST)是一个重要的概念,而后序遍历则是树的遍历方式之一。今天,我们将深入探讨一个经典问题:如何判断一个给定的整数数组是否是某个二叉搜索树的后序…

【Prettier】代码格式化工具Prettier的使用和配置介绍

前言 前段时间,因为项目的prettier的配置和eslint格式检查有些冲突,在其prettier官网和百度了一些配置相关的资料,在此做一些总结,以备不时之需。 Prettier官网 Prettier Prettier 是一种前端代码格式化工具,支持ja…

甘肃旅游服务平台代码--论文pf

TOC springboot422甘肃旅游服务平台代码--论文pf 绪论 1.1 研究背景 现在大家正处于互联网加的时代,这个时代它就是一个信息内容无比丰富,信息处理与管理变得越加高效的网络化的时代,这个时代让大家的生活不仅变得更加地便利化&#xff0…

Day45 | 99.岛屿数量 深搜 广搜 100.岛屿的最大面积

语言 Java 99.岛屿数量 深搜 广搜 99. 岛屿数量 题目 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。你可…

【启明智显技术分享】实时操作系统RTOS核心机制与应用

在当今这个对实时性要求日益严苛的嵌入式系统时代,RTOS作为核心软件架构,正扮演着不可或缺的角色。而当我们深入探讨RTOS的广泛应用与优势时,不得不提到启明智显Model系列芯片以其卓越的性能、丰富的外设接口以及对RTOS系统的全面支持&#x…

Qt实现圆型控件的三种方法之子类化控件并重写paintEvent

前言 最近在研究绘制各种形状的控件,这里专门挑出圆形的控件进行记录,其它形状的也大差不差,会了圆形的之后其它的也类似。 正文 这里我挑出Label来进行举例。 子类化 QLabel 并重写 paintEvent 如果需要更复杂的自定义绘制,…

【CSS】使用 CSS 自定义属性(变量)-- var()

自定义属性(有时候也被称作CSS 变量或者级联变量)是由 CSS 作者定义的,它包含的值可以在整个文档中重复使用。由自定义属性标记设定值(比如: --main-color: black;),由 var() 函数来获取值&…

算法全面剖析

算法 查找算法: 顺序查找: 基本思想: 顺序查找也称为线形查找,属于无序查找算法。从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相比较,若相等则表示查找成功&am…

Nginx--监控

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 一、Nginx的基础监控 进程监控 端口监控 注意: 这两个是必须要加在zabbix监控,加触发器有问题及时告警。 nginx 提供了ngx…

编译linux内核时,让版本号不跟着git变化

文章目录 编译linux内核时,让版本号不跟着git变化现象方法一方法二 编译linux内核时,让版本号不跟着git变化 现象 内核每次重新编译时,uname -r都会跟着变。 4.1.15-00005-g482731e4-dirty 导致报错,modprobe: can’t change …

前端算法 | LeetCode第 70 题爬楼梯问题

目录 流程分析 归纳法分析 为什么是斐波那契数列? 推导过程: 解法1:循环累加计算 解法2:递归计算 解法3:利用数组特性 解法4:利用 JavaScript ES6 新特性 拓展知识:每次可以走 1 步、2…

ClickHouse实时探索与实践 京东云

1 前言 京喜达技术部在社区团购场景下采用JDQFlinkElasticsearch架构来打造实时数据报表。随着业务的发展 Elasticsearch开始暴露出一些弊端,不适合大批量的数据查询,高频次深度分页导出导致ES宕机、不能精确去重统计,多个字段聚合计算时性能…

位运算专题

分享丨【题单】位运算(基础/性质/拆位/试填/恒等式/思维) - 力扣(LeetCode) Leetcode 3133. 数组最后一个元素的最小值 我的答案与思路: class Solution { public: // 4 --> (100)2 7 --> (0111)2 // 5 --&g…

怎么让FLV转MP4?建议试试这样做

怎么让FLV转MP4?在数字视频处理的日常中,我们经常会遇到不同格式的视频文件需要相互转换的情况。FLV(Flash Video)作为一种早期的网络视频格式,虽然在互联网上仍有一定应用,但对比来说,MP4格式更…

vue打包设置 自定义的NODE_ENV

默认NODE_ENV 自定义process.env.NODE_ENV的值_process.node.env的值-CSDN博客 ‌NODE_ENV开发环境下:NODE_ENVdevelopment(默认) 生产环境下:NODE_ENVproduction(默认) NODE_ENV 除了默认的 development 和 production 以外,确实可以自定义…

Apache CloudStack Official Document 翻译节选(八)

关于 Apache CloudStack 的 最佳实践 (二) 防火墙的设定 Hardware Firewall 部署Apache CloudStack时,建议部署一套防火墙系统已保护Apache CloudStack的云管理服务。在防火墙的选用方面,既可以使用通用防火墙、也可以使用诸如Ju…

树莓派3B运行rasa init和rasa shell遇到的tensorflow报错总结

终于在我的树莓派上安装rasa-1.4.0版本成功(见《树莓派智能语音助手之聊天机器人-RASA》)。不过,在初始化rasa的时候还是遇到了很多报错,在此总结,供朋友们参考。 1. ModuleNotFoundError: No module named ‘tensorf…

【鸿蒙学习】HarmonyOS应用开发者高级认证 - 应用性能优化一(界面层面)

学完时间:2024年8月22日 学完排名:第1801名 一、介绍 在开发HarmonyOS应用时,优化应用性能是至关重要的。通过/ArkTS高性能编程、减少丢帧卡顿、提升应用启动和响应速度 可以有效提升用户体验。本文将介绍一些优化HarmonyOS应用性能的方法。 一、Ark…

Windows-Server-2016/2019绕过WindowsDefender

当获得了一个webshell的时候,下一步要反弹个shell回来 在尝试了https://github.com/trustedsec/unicorn独角兽失败之后,找到了一篇使用golang将shellcode注入到内存的文章 Bypassing Antivirus with Golang - Gopher it! | JUMPSEC LABS GitHub - brimst…