声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

本文涉及的产品
模型训练 PAI-DLC,100CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: PaddlePaddle是百度开源的深度学习框架,其功能包罗万象,总计覆盖文本、图像、视频三大领域40个模型,可谓是在深度学习领域无所不窥。PaddleGAN视觉效果模型中一个子模块Wav2lip是对开源库Wav2lip的二次封装和优化,它实现了人物口型与输入的歌词语音同步,说白了就是能让静态图的唇部动起来,让人物看起来仿佛正在唱歌。除此以外,Wav2lip还可以直接将动态的视频,进行唇形替换,输出与目标语音相匹配的视频,如此一来,我们就可以通过AI直接定制属于自己的口播形象了。

借助So-vits我们可以自己训练五花八门的音色模型,然后复刻想要欣赏的任意歌曲,实现点歌自由,但有时候却又总觉得少了点什么,没错,缺少了画面,只闻其声,却不见其人,本次我们让AI川普的歌声和他伟岸的形象同时出现,基于PaddleGAN构建“靓声靓影”的“懂王”。

PaddlePaddle是百度开源的深度学习框架,其功能包罗万象,总计覆盖文本、图像、视频三大领域40个模型,可谓是在深度学习领域无所不窥。

PaddleGAN视觉效果模型中一个子模块Wav2lip是对开源库Wav2lip的二次封装和优化,它实现了人物口型与输入的歌词语音同步,说白了就是能让静态图的唇部动起来,让人物看起来仿佛正在唱歌。

除此以外,Wav2lip还可以直接将动态的视频,进行唇形替换,输出与目标语音相匹配的视频,如此一来,我们就可以通过AI直接定制属于自己的口播形象了。

本机配置CUDA和cudnn

要想把PaddlePaddle框架在本地跑起来,并非易事,但好在有国内深度学习领域的巨擘百度进行背书,文档资源非常丰富,只要按部就班,就不会出太大问题。

首先,在本地配置好Python3.10开发环境,参见:一网成擒全端涵盖,在不同架构(Intel x86/Apple m1 silicon)不同开发平台(Win10/Win11/Mac/Ubuntu)上安装配置Python3.10开发环境

随后,需要在本地配置好CUDA和cudnn,cudnn是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,而CUDA作为计算平台,就需要cudnn的配合,这俩个在版本上必须配套。

首先点击N卡控制中心程序,查看本机N卡驱动所支持的CUDA版本:

从图上可知,笔者的显卡是RTX4060,当前驱动最大支持CUDA12.1的版本,换句话说只要是小于等于12.1的CUDA就都是支持的。

随后查看PaddlePaddle框架的官方文档,查看Python3.10所支持的框架版本:

https://www.paddlepaddle.org.cn/documentation/docs/zh/install/Tables.html#ciwhls-release
AI 代码解读

根据文档可知,对于Python3.10来说,PaddlePaddle最高的支持版本是win-cuda11.6-cudnn8.4-mkl-vs2017-avx,也就是CUDA的版本是11.6,cudnn的版本是8.4,再高就不支持了。

所以本机需要安装CUDA11.6和cudnn8.4。

注意版本一定要吻合,否则后续无法启动程序。

知晓了版本号,我们只需要去N卡的官网下载安装包即可。

CUDA11.6安装包下载地址:

https://developer.nvidia.com/cuda-toolkit-archive
AI 代码解读

cudnn8.4安装包下载地址:

https://developer.nvidia.com/rdp/cudnn-archive
AI 代码解读

首先安装CUDA11.6,安装完成后,解压cudnn8.4压缩包,将解压后的文件拷贝到CUDA11.6安装目录中即可,CUDA安装路径是:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6
AI 代码解读

随后需要将bin目录添加到系统的环境变量中:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\bin
AI 代码解读

接着在终端进入demo文件夹:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite
AI 代码解读

执行bandwidthTest.exe命令,返回:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite>bandwidthTest.exe  
[CUDA Bandwidth Test] - Starting...  
Running on...  
  
 Device 0: NVIDIA GeForce RTX 4060 Laptop GPU  
 Quick Mode  
  
 Host to Device Bandwidth, 1 Device(s)  
 PINNED Memory Transfers  
   Transfer Size (Bytes)        Bandwidth(MB/s)  
   33554432                     12477.8  
  
 Device to Host Bandwidth, 1 Device(s)  
 PINNED Memory Transfers  
   Transfer Size (Bytes)        Bandwidth(MB/s)  
   33554432                     12337.3  
  
 Device to Device Bandwidth, 1 Device(s)  
 PINNED Memory Transfers  
   Transfer Size (Bytes)        Bandwidth(MB/s)  
   33554432                     179907.9  
  
Result = PASS  
  
NOTE: The CUDA Samples are not meant for performance measurements. Results may vary when GPU Boost is enabled.
AI 代码解读

即代表安装成功,随后可通过deviceQuery.exe查询GPU设备:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6\extras\demo_suite>deviceQuery.exe  
deviceQuery.exe Starting...  
  
 CUDA Device Query (Runtime API) version (CUDART static linking)  
  
Detected 1 CUDA Capable device(s)  
  
Device 0: "NVIDIA GeForce RTX 4060 Laptop GPU"  
  CUDA Driver Version / Runtime Version          12.1 / 11.6  
  CUDA Capability Major/Minor version number:    8.9  
  Total amount of global memory:                 8188 MBytes (8585216000 bytes)  
MapSMtoCores for SM 8.9 is undefined.  Default to use 128 Cores/SM  
MapSMtoCores for SM 8.9 is undefined.  Default to use 128 Cores/SM  
  (24) Multiprocessors, (128) CUDA Cores/MP:     3072 CUDA Cores  
  GPU Max Clock rate:                            2370 MHz (2.37 GHz)  
  Memory Clock rate:                             8001 Mhz  
  Memory Bus Width:                              128-bit  
  L2 Cache Size:                                 33554432 bytes  
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)  
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers  
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers  
  Total amount of constant memory:               zu bytes  
  Total amount of shared memory per block:       zu bytes  
  Total number of registers available per block: 65536  
  Warp size:                                     32  
  Maximum number of threads per multiprocessor:  1536  
  Maximum number of threads per block:           1024  
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)  
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)  
  Maximum memory pitch:                          zu bytes  
  Texture alignment:                             zu bytes  
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)  
  Run time limit on kernels:                     Yes  
  Integrated GPU sharing Host Memory:            No  
  Support host page-locked memory mapping:       Yes  
  Alignment requirement for Surfaces:            Yes  
  Device has ECC support:                        Disabled  
  CUDA Device Driver Mode (TCC or WDDM):         WDDM (Windows Display Driver Model)  
  Device supports Unified Addressing (UVA):      Yes  
  Device supports Compute Preemption:            Yes  
  Supports Cooperative Kernel Launch:            Yes  
  Supports MultiDevice Co-op Kernel Launch:      No  
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0  
  Compute Mode:  
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >  
  
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 12.1, CUDA Runtime Version = 11.6, NumDevs = 1, Device0 = NVIDIA GeForce RTX 4060 Laptop GPU  
Result = PASS
AI 代码解读

至此,CUDA和cudnn就配置好了。

配置PaddlePaddle框架

配置好CUDA之后,让我们来安装PaddlePaddle框架:

python -m pip install paddlepaddle-gpu==2.4.2.post116 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html
AI 代码解读

这里安装paddlepaddle的gpu版本,版本号是2.4.2.post116,2.4是最新版,其中116就代表Cuda的版本,注意版本一定不能弄错。

随后克隆PaddleGan项目:

git clone https://gitee.com/PaddlePaddle/PaddleGAN
AI 代码解读

运行命令本地编译安装PaddleGan项目:

pip install -v -e .
AI 代码解读

随后再安装其他依赖:

pip install -r requirements.txt
AI 代码解读

这里有几个坑,需要说明一下:

首先PaddleGan依赖的numpy库还是老版本,它不支持最新的1.24版本,所以如果您的numpy版本是1.24,需要先把numpy卸载了:

pip uninstall numpy
AI 代码解读

随后安装1.21版本:

pip install numpy==1.21
AI 代码解读

接着在Python终端中验证PaddleGan是否安装成功:

import paddle  
paddle.utils.run_check()
AI 代码解读

如果报这个错误:

PreconditionNotMetError: The third-party dynamic library (cudnn64_7.dll) that Paddle depends on is not configured correctly. (error code is 126)  
      Suggestions:  
      1. Check if the third-party dynamic library (e.g. CUDA, CUDNN) is installed correctly and its version is matched with paddlepaddle you installed.  
      2. Configure third-party dynamic library environment variables as follows:  
      - Linux: set LD_LIBRARY_PATH by `export LD_LIBRARY_PATH=...`  
      - Windows: set PATH by `set PATH=XXX; (at ..\paddle\phi\backends\dynload\dynamic_loader.cc:305)  
      [operator < fill_constant > error]
AI 代码解读

则需要下载cudnn64\_7.dll动态库,然后复制到CUDA11.6的bin目录中,动态库地址后面会贴出来。

再次运行验证程序,返回:

Python 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)] on win32  
Type "help", "copyright", "credits" or "license" for more information.  
>>> import paddle  
>>> paddle.utils.run_check()  
Running verify PaddlePaddle program ...  
W0517 20:15:34.881800 31592 gpu_resources.cc:61] Please NOTE: device: 0, GPU Compute Capability: 8.9, Driver API Version: 12.1, Runtime API Version: 11.6  
W0517 20:15:34.889958 31592 gpu_resources.cc:91] device: 0, cuDNN Version: 8.4.  
PaddlePaddle works well on 1 GPU.  
PaddlePaddle works well on 1 GPUs.  
PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
AI 代码解读

说明大功告成,安装成功。

本地推理

下面我们给川普的歌曲配上动态画面,首先通过Stable-Diffusion生成一张懂王的静态图片:

关于Stable-Diffusion,请移步:人工智能,丹青圣手,全平台(原生/Docker)构建Stable-Diffusion-Webui的AI绘画库教程(Python3.10/Pytorch1.13.0),囿于篇幅,这里不再赘述。

接着进入到项目的tools目录:

\PaddleGAN\applications\tools>
AI 代码解读

将川普的静态图片和歌曲文件放入tools目录中。

接着运行命令,进行本地推理:

python .\wav2lip.py --face .\Trump.jpg --audio test.wav --outfile pp_put.mp4 --face_enhancement
AI 代码解读

这里--face是目标图片,--audio则是需要匹配唇形的歌曲,--outfile参数是输出视频。

face\_enhancement:参数可以添加人脸增强,不添加参数默认为不使用增强功能。

但添加了这个参数需要单独下载模型文件。

Wav2Lip实现唇形与语音精准同步突破的关键在于,它采用了唇形同步判别器,以强制生成器持续产生准确而逼真的唇部运动。此外,它通过在鉴别器中使用多个连续帧而不是单个帧,并使用视觉质量损失(而不仅仅是对比损失)来考虑时间相关性,从而改善了视觉质量。

具体效果:

结语

有的时候,人工智能AI技术的发展真的会让人有一种恍若隔世的感觉,耳听未必为实,眼见也未必为真。最后,成品视频可在Youtube平台(B站)搜索:刘悦的技术博客,欢迎诸君品鉴,本文所有涉及的安装包和动态库请参见:

https://pan.baidu.com/s/1-6NA2uAOSRlT4O0FGEKUGA?pwd=oo0d   
提取码:oo0d
AI 代码解读
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
打赏
0
0
0
0
1681
分享
相关文章
生成AI的两大范式:扩散模型与Flow Matching的理论基础与技术比较
本文系统对比了扩散模型与Flow Matching两种生成模型技术。扩散模型通过逐步添加噪声再逆转过程生成数据,类比为沙堡的侵蚀与重建;Flow Matching构建分布间连续路径的速度场,如同矢量导航系统。两者在数学原理、训练动态及应用上各有优劣:扩散模型适合复杂数据,Flow Matching采样效率更高。文章结合实例解析两者的差异与联系,并探讨其在图像、音频等领域的实际应用,为生成建模提供了全面视角。
57 1
利用通义灵码AI在VS Code中快速开发扫雷游戏:Qwen2.5-Max模型的应用实例
本文介绍了如何利用阿里云通义灵码AI程序员的Qwen2.5-Max模型,在VS Code中一键生成扫雷小游戏。通过安装通义灵码插件并配置模型,输入指令即可自动生成包含游戏逻辑与UI设计的Python代码。生成的游戏支持难度选择,运行稳定无Bug。实践表明,AI工具显著提升开发效率,但人机协作仍是未来趋势。建议开发者积极拥抱新技术,同时不断提升自身技能以适应行业发展需求。
22067 6
轻量级AI革命:无需GPU就能运算的DeepSeek-R1-1.5B模型及其低配部署指南
随着AI技术发展,大语言模型成为产业智能化的关键工具。DeepSeek系列模型以其创新架构和高效性能备受关注,其中R1-1.5B作为参数量最小的版本,适合资源受限场景。其部署仅需4核CPU、8GB RAM及15GB SSD,适用于移动对话、智能助手等任务。相比参数更大的R1-35B与R1-67B+,R1-1.5B成本低、效率高,支持数学计算、代码生成等多领域应用,是个人开发者和初创企业的理想选择。未来,DeepSeek有望推出更多小型化模型,拓展低资源设备的AI生态。
37 8
ACK Gateway with AI Extension:大模型推理的模型灰度实践
本文介绍了如何使用 ACK Gateway with AI Extension 组件在云原生环境中实现大语言模型(LLM)推理服务的灰度发布和流量分发。该组件专为 LLM 推理场景设计,支持四层/七层流量路由,并提供基于模型服务器负载感知的智能负载均衡能力。通过自定义资源(CRD),如 InferencePool 和 InferenceModel,可以灵活配置推理服务的流量策略,包括模型灰度发布和流量镜像。
学什么能不被AI取代?探索生成式人工智能认证的价值
在AI快速发展的时代,生成式人工智能(Generative AI)成为关键竞争力。掌握其技能可拓宽职业空间,而生成式人工智能认证(如GAI认证)提供了系统学习框架,涵盖核心知识、实用工具及道德法律内容,获国际认可。选择此认证,不仅能提升个人竞争力,还能应对AI带来的职业挑战,开启未来职场新篇章。无论学生还是在职人士,都可通过学习迎接AI时代的机遇。
AI改变世界,我们培养改变AI未来的人:生成式人工智能(GAI)认证时代的认知革命
人工智能(AI)正以前所未有的速度改变世界,生成式人工智能(GAI)作为其重要分支,引领了认知革命。文章探讨了AI对行业、社会的深远影响,以及AI时代对创新型人才的需求。GAI认证成为衡量个体技能水平的重要标准,在企业用人和人才培养中发挥关键作用。未来需注重跨学科融合、主动学习、创新思维及伦理道德的培养,以适应AI时代的变革需求。
当AI将“思维工业化”,生成式人工智能(GAI)认证引领“人类思考"新航向
本文探讨了生成式人工智能(GAI)在“思维工业化”背景下的影响及其认证对职场的重要性。文章分析了思维工业化的挑战与机遇,强调GAI认证不仅提升职场竞争力,还促进个体成长与人机协同能力。同时,文章呼吁在工具理性之外重视价值理性,通过终身学习适应AI时代变化,实现人类独特性与技术高效性的结合,共同迈向更美好的未来。
2025春招市场迎AI热潮:生成式人工智能(GAI)认证如何重构人才竞争力
随着科技发展,人工智能(AI)已深入生活各领域。2025年春招市场见证了AI人才需求激增,生成式人工智能(GAI)成为新焦点。GAI通过学习数据生成新内容,在文学、艺术、营销等领域展现广阔前景。企业日益重视技能认证,GAI认证助力职场人士提升竞争力、规划职业路径,契合终身学习理念。在全球化竞争中,GAI认证提供国际化机会,推动个人成长与职业发展。未来,拥有GAI认证的求职者将在职场中脱颖而出。
AI替代潮下,3亿人如何逆袭?生成式人工智能(GAI)认证或是破局关键!
在AI快速发展的今天,全球职场正经历深刻变革。据IMF报告,未来五年全球可能有9200万个工作岗位被AI取代,而在中国,到2025年或有4000万人面临失业风险。然而,AI不仅带来挑战,也创造了新机遇,如AI算法工程师、数据科学家等新兴职业。生成式人工智能(GAI)认证成为提升竞争力的关键,帮助个人适应AI时代,实现职业逆袭。未来是人与AI共舞的时代,通过学习和认证,我们可在AI浪潮中抓住新机遇,创造更美好的职业前景。
当AI代做PPT时,教师如何完成自我迭代?——从生成式人工智能(GAI)认证看教育者的未来突围
本文探讨了AI在教育领域的广泛应用及其对教师角色的挑战,强调知识观与教育观的转变。生成式人工智能(GAI)认证为教师提供了提升AI应用能力、促进教育创新的机会。文章建议教师通过转变观念、加强情感交流及参与创新实践完成自我迭代,并呼吁政府、学校和社会共同支持AI时代教育的发展,以培养适应未来的高素质人才。

热门文章

最新文章