Hallo 登场!突破传统,音频赋能视觉合成的创新先锋

在当今飞速发展的人工智能领域,音频驱动的视觉合成技术正逐渐成为一颗璀璨的明星,为多媒体内容创作带来了前所未有的可能性和创新机遇。今天,我将带大家深入了解一款由复旦大学、百度、苏黎世联邦理工学院和南京大学的研究人员共同精心打造的音频驱动的层次化视觉合成工具——Hallo

一、项目概述

Hallo是一个专注于音频驱动的层次化视觉合成的创新项目,其核心目标是生成高质量、生动逼真的肖像图像动画。它的诞生汇聚了多所高校和企业的智慧与力量,是跨领域合作的结晶。来自复旦大学的深厚学术底蕴、百度的强大技术实力、苏黎世联邦理工学院的前沿科研理念以及南京大学的创新思维,共同为Hallo注入了强大的生命力。该项目致力于打破传统视觉合成的局限,为用户提供一种全新的、高效便捷的视觉合成解决方案,使得多媒体内容创作更加丰富多彩、生动有趣。

二、技术原理

1、分层音频驱动视觉合成模块:Hallo的独特之处在于其采用了分层音频驱动视觉合成模块,将人脸细致地划分为嘴唇、表情和姿态三个区域。这种划分方式并非随意为之,而是基于对人脸生理结构和语音与面部动作关联的深入研究。通过分别学习这三个区域与音频的对齐关系,能够更加精准地捕捉语音中的细微变化,并将其转化为相应的面部动作。避免了传统方法中可能出现的面部动作不协调、不自然的问题。

2、端到端扩散范式:Hallo摒弃了传统的中间面部表示模型,运用端到端扩散范式直接从语音输入生成面部动画。在这个过程中,语音信号首先经过音频编码器进行特征提取,将其转换为运动相关的特征表示。同时,参考图像经过ReferenceNet编码全局视觉特征,人脸编码器提取身份相关特征。这些特征在后续的处理中相互融合、交互,直接驱动生成面部动画。这种端到端的方式简化了处理流程,减少了中间环节可能带来的误差和复杂性,大大提高了合成效率和质量。而且,由于不需要依赖特定的中间面部表示模型,Hallo具有更强的通用性和适应性,能够更好地应对不同的输入和任务需求。


三、功能特点

1、精细的区域划分与同步建模:如前文所述,Hallo对人脸的嘴唇、表情和姿态三个区域进行分别学习和建模,这使得它在音视频同步方面表现出色。无论是快速的对话场景,还是情感丰富的演讲场景,Hallo都能够准确地捕捉语音与面部动作之间的对应关系,使生成的动画在细节上更加逼真,人物的表情和动作更加自然流畅,仿佛真实人物在现场表演一般。

2、端到端的扩散范式:这一特点使得Hallo在处理效率和质量上都有了显著提升。传统的视觉合成方法往往需要经过多个中间步骤和复杂的模型转换,不仅耗时费力,而且容易出现误差积累。Hallo的端到端扩散范式直接从语音到动画,大大缩短了处理时间,提高了合成的实时性。同时,由于减少了中间环节的干扰,生成的动画质量更加稳定和可靠,能够更好地保留参考图像的身份特征和细节信息,使生成的动画人物既具有与参考图像相似的外貌特征,又能够根据语音内容展现出丰富多样的表情和动作。

3、多种预训练模型支持:Hallo涵盖了denoising UNetface locatorimage & audio proj等多种预训练模型,为用户提供了丰富的选择和强大的基础支持。这些预训练模型在各自的领域都经过了大量的数据训练和优化,具有很高的准确性和泛化能力。用户可以根据具体的任务和需求,灵活调用和组合这些预训练模型,快速搭建起适合自己的视觉合成系统。

四、应用场景

1、多媒体内容创作:在视频制作领域,Hallo可以为创作者提供极大的便利。无论是制作电影、电视剧、广告还是短视频,都可以利用Hallo快速生成高质量的肖像图像动画,大大缩短制作周期,降低制作成本。

2、虚拟人物互动:在虚拟现实、增强现实以及游戏等应用中,虚拟人物的真实感和互动性是至关重要的。Hallo可以为虚拟人物赋予更加自然的语音驱动的面部表情和动作,使虚拟人物能够根据用户的语音输入做出相应的反应,增强虚拟人物与用户之间的互动性和沉浸感。

3、智能客服与教育:在智能客服系统中,Hallo可以为客服头像添加语音驱动的动画效果,使客服头像能够根据语音内容展现出相应的表情和动作,提高服务的亲和力和可视化程度。

五、快速使用

1安装环境准备

首先,确保你的操作系统为Ubuntu 20.04/Ubuntu 22.04,并且配备了Cuda 12.1A100GPU,这将为Hallo的运行提供强大的计算支持。然后,创建conda环境并激活,接着使用pip安装相关包和项目本身,在安装过程中要注意检查依赖项是否安装完整。此外,还需要安装ffmpeg,它将用于音频和视频的处理。

1创建conda环境:

conda create -n hallo python=3.10conda activate hallo

2)安装依赖

git clone https://github.com/fudan-generative-vision/hallo.gitpip install -r requirements.txtpip install .

3此外,还需要 ffmpeg

apt-get install ffmpeg

2下载预训练模型

你可以从HuggingFace仓库获取预训练模型,这是一种方便快捷的方式。或者,你也可以从各源repo分别下载并按特定结构组织,但这种方式需要你对项目的结构和模型的存放位置有一定的了解。在下载预训练模型时,要根据自己的需求和实际情况选择合适的模型,确保模型与你的任务和数据相匹配。

1)安装LFS

curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bashsudo apt-get install git-lfs

2)下载模型

通过下面的 cmd 将预训练模型克隆到 ${PROJECT_ROOT}/pretrained_models 目录中:

git clone https://huggingface.co/fudan-generative-ai/hallo pretrained_models

3准备推理数据

对于源图像,需要将其裁剪为正方形,并且人脸在图像中的占比应控制在50%-70%左右,同时要确保人脸朝前,旋转角度小于30°,这样可以保证模型能够更好地识别和处理人脸特征。对于驱动音频,必须将其转换为WAV格式,并且最好是英语语音,因为目前Hallo在英语语音上的处理效果相对较好。在准备数据时,要仔细检查数据的质量和格式,避免因数据问题导致合成结果不理想。

参考官网提供的样例:https://github.com/fudan-generative-vision/hallo/blob/main/examples

4运行推理

通过`scripts/inference.py`脚本并传入`source_image``driving_audio`作为输入,默认将动画结果保存为`${PROJECT_ROOT}/.cache/output.mp4`,你也可以通过`–output`指定输出文件名。在运行推理时,要注意观察控制台的输出信息,及时发现和解决可能出现的问题。如果对合成结果不满意,可以尝试调整参数或更换数据,以获得更好的效果。

python scripts/inference.py --source_image examples/reference_images/1.jpg --driving_audio examples/driving_audios/1.wav

结语

Hallo作为一款先进的音频驱动的层次化视觉合成工具,在技术原理、功能特点和应用场景等方面都展现出了独特的优势和巨大的潜力。它为多媒体内容创作、虚拟人物互动、智能客服与教育等领域带来了全新的解决方案和创新思路,有望在未来的人工智能发展中发挥更加重要的作用。

项目地址:https://github.com/fudan-generative-vision/hallo

(文:小兵的AI视界)

欢迎分享

发表评论