利用 Wav2Lip 实现音频驱动数字人

向量数据库大模型智能语音交互

点击下方 卡片 ,关注“ 慢慢学AIGC ”

引言

上周 GPT-4o 的发布引发了各个社群激烈的讨论,尤其是如何利用现有技术实现类似 GPT-4o 实时对话的产品。当解决了基于文本和语音交互的实时性问题后,很自然地想到,如何进一步实现实时视频交互?

上面两个视频是笔者基于 Wav2Lip 创建的。Wav2Lip 是 2020 年的工作,但放在现在仍有一定借鉴意义。

论文:https://arxiv.org/abs/2008.10010

随着音视频内容消费的指数级增长,快速的视频内容创作已成为必需。同时,使这些视频在不同语言中可访问也是一个关键挑战。例如,深度学习讲座系列、一部著名电影或向全国发表的公开演讲,如果翻译成所需的目标语言,可以让数百万新观众受益。翻译这些说话人脸视频或创建新视频的关键方面是 校正唇同步以匹配所需的目标语音 。因此,使说话人脸视频与给定的输入音频流同步已在研究界受到相当大的关注。

picture.image

在这项工作中,我们研究了 将任意身份的说话人脸视频与目标语音片段同步 的问题。当前的工作在静态图像或训练期间看到的特定人物视频上生成准确唇部动作方面表现出色。然而,它们无法准确地变换动态、非约束说话人脸视频中的任意身份的唇部动作,导致视频的显著部分与新音频不同步。我们识别并解决了这一问题,通过从一个强大的唇同步鉴别器中学习。此外,我们提出了新的严格评估基准和指标来准确衡量非约束视频中的唇同步。我们在具有挑战性的基准上的广泛量化评估表明,我们的 Wav2Lip 模型生成的视频的唇同步准确度几乎与真实同步视频一样好。

动手实践

代码:https://github.com/Rudrabha/Wav2Lip

环境:miniconda,Python 版本 3.8.18,依赖包的版本如下


          
absl-py==2.0.0
          
accelerate==0.25.0
          
aiofiles==23.2.1
          
aiohttp==3.8.6
          
aiosignal==1.3.1
          
altair==5.1.2
          
annotated-types==0.6.0
          
antlr4-python3-runtime==4.8
          
anyio==4.0.0
          
astunparse==1.6.3
          
async-timeout==4.0.3
          
attrs==23.1.0
          
audioread==3.0.1
          
backports.zoneinfo==0.2.1
          
bitarray==2.8.2
          
blinker==1.6.3
          
cachetools==5.3.1
          
certifi==2023.7.22
          
cffi==1.16.0
          
charset-normalizer==2.1.1
          
click==8.1.7
          
colorama==0.4.6
          
contourpy==1.1.1
          
cpm-kernels==1.0.11
          
cycler==0.12.1
          
Cython==3.0.3
          
decorator==5.1.1
          
distro==1.9.0
          
dlib==19.24.2
          
edge-tts==6.1.8
          
einops==0.7.0
          
exceptiongroup==1.1.3
          
face-alignment==1.4.1
          
fairseq==0.12.2
          
faiss-cpu==1.7.4
          
fastapi==0.108.0
          
ffmpeg==1.4
          
ffmpeg-python==0.2.0
          
ffmpy==0.3.1
          
filelock==3.12.4
          
Flask==2.1.2
          
Flask-Cors==3.0.10
          
flatbuffers==23.5.26
          
fonttools==4.43.1
          
frozenlist==1.4.0
          
fsspec==2023.9.2
          
future==0.18.3
          
gast==0.4.0
          
gitdb==4.0.10
          
GitPython==3.1.37
          
google-auth==2.23.3
          
google-auth-oauthlib==1.0.0
          
google-pasta==0.2.0
          
gradio==3.41.2
          
gradio_client==0.5.0
          
grpcio==1.59.0
          
h11==0.14.0
          
h5py==3.10.0
          
httpcore==0.18.0
          
httpx==0.25.0
          
huggingface-hub==0.20.1
          
hydra-core==1.0.7
          
idna==3.4
          
imageio==2.31.5
          
importlib-metadata==6.8.0
          
importlib-resources==6.1.0
          
itsdangerous==2.1.2
          
Jinja2==3.1.2
          
joblib==1.3.2
          
jsonschema==4.19.1
          
jsonschema-specifications==2023.7.1
          
keras==2.13.1
          
kiwisolver==1.4.5
          
langdetect==1.0.9
          
latex2mathml==3.77.0
          
lazy_loader==0.3
          
libclang==16.0.6
          
librosa==0.9.1
          
llvmlite==0.41.0
          
loguru==0.7.2
          
lxml==4.9.3
          
Markdown==3.5
          
markdown-it-py==3.0.0
          
MarkupSafe==2.1.3
          
matplotlib==3.7.3
          
mdtex2html==1.2.0
          
mdurl==0.1.2
          
more-itertools==10.1.0
          
mpmath==1.3.0
          
multidict==6.0.4
          
networkx==3.1
          
numba==0.58.0
          
numpy==1.22.4
          
oauthlib==3.2.2
          
omegaconf==2.0.6
          
onnx==1.14.1
          
onnxoptimizer==0.3.13
          
onnxsim==0.4.33
          
openai==1.6.1
          
openai-whisper @ file:///E:/Base/whisper
          
opencv-python==4.8.1.78
          
opt-einsum==3.3.0
          
orjson==3.9.9
          
packaging==23.2
          
pandas==2.0.3
          
peft==0.7.1
          
Pillow==10.0.1
          
pkgutil_resolve_name==1.3.10
          
platformdirs==3.11.0
          
playsound==1.3.0
          
pooch==1.7.0
          
portalocker==2.8.2
          
praat-parselmouth==0.4.3
          
protobuf==4.25.1
          
psutil==5.9.5
          
pyarrow==13.0.0
          
pyasn1==0.5.0
          
pyasn1-modules==0.3.0
          
PyAudio==0.2.12
          
pycparser==2.21
          
pydantic==2.5.3
          
pydantic_core==2.14.6
          
pydeck==0.8.1b0
          
pydub==0.25.1
          
Pygments==2.16.1
          
pynvml==11.5.0
          
PyOpenGL==3.1.7
          
pyparsing==3.1.1
          
python-dateutil==2.8.2
          
python-multipart==0.0.6
          
pytz==2023.3.post1
          
PyWavelets==1.4.1
          
pywin32==306
          
pyworld==0.3.0
          
PyYAML==6.0.1
          
referencing==0.30.2
          
regex==2023.10.3
          
requests==2.28.1
          
requests-oauthlib==1.3.1
          
resampy==0.4.2
          
rich==13.6.0
          
rpds-py==0.10.4
          
rsa==4.9
          
sacrebleu==2.3.1
          
safetensors==0.4.0
          
scikit-image==0.18.1
          
scikit-learn==1.3.1
          
scikit-maad==1.3.12
          
scipy==1.7.3
          
semantic-version==2.10.0
          
sentencepiece==0.1.99
          
shellingham==1.5.4
          
six==1.16.0
          
smmap==5.0.1
          
sniffio==1.3.0
          
sounddevice==0.4.5
          
SoundFile==0.10.3.post1
          
sse-starlette==1.8.2
          
starlette==0.32.0.post1
          
streamlit==1.29.0
          
sympy==1.12
          
tabulate==0.9.0
          
tenacity==8.2.3
          
tensorboard==2.13.0
          
tensorboard-data-server==0.7.1
          
tensorboardX==2.6.2.2
          
tensorflow==2.13.0
          
tensorflow-estimator==2.13.0
          
tensorflow-intel==2.13.0
          
tensorflow-io-gcs-filesystem==0.31.0
          
termcolor==2.3.0
          
threadpoolctl==3.2.0
          
tifffile==2023.7.10
          
tiktoken==0.3.3
          
timm==0.9.12
          
tokenizers==0.13.3
          
toml==0.10.2
          
tomlkit==0.12.0
          
toolz==0.12.0
          
torch==2.1.0+cu121
          
torchaudio==2.1.0+cu121
          
torchcrepe==0.0.22
          
torchvision==0.16.0+cu121
          
tornado==6.3.3
          
tqdm==4.63.0
          
transformers==4.32.0
          
transformers-stream-generator==0.0.4
          
trimesh==4.0.0
          
typer==0.9.0
          
typing_extensions==4.8.0
          
tzdata==2023.3
          
tzlocal==5.1
          
urllib3==1.26.17
          
uvicorn==0.25.0
          
validators==0.22.0
          
watchdog==3.0.0
          
websockets==11.0.3
          
Werkzeug==3.0.0
          
win32-setctime==1.1.0
          
wrapt==1.15.0
          
yarl==1.9.2
          
zipp==3.17.0
      

准备一段音频,可以自己录制,或者从其他视频中提取,保存为 audio.mp3。 准备一张人像照片,保存为 face.png。 之后进入项目,运行如下命令:


        
            

          python inference.py --checkpoint\_path wav2lip\_gan.pth --face face.png --audio audio.mp3 --outfile talking\_video.mp4
        
      

使用视频播放器查看生成的 talking_video.mp4 即可。


点击下方 卡片 ,关注“ 慢慢学AIGC ”

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生机器学习系统落地和实践
机器学习在字节跳动有着丰富业务场景:推广搜、CV/NLP/Speech 等。业务规模的不断增大对机器学习系统从用户体验、训练效率、编排调度、资源利用等方面也提出了新的挑战,而 Kubernetes 云原生理念的提出正是为了应对这些挑战。本次分享将主要介绍字节跳动机器学习系统云原生化的落地和实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论