在木偶戏后台,一根细线就能让一块不会说话的木头活起来:师傅的手指一捻,木偶的嘴就跟着台词张合,眼皮落下又抬起,脑袋轻轻转向观众。照片驱动数字人,做的就是同一件事——你手里那张静止的人脸照片,就是那块“木头”;一段音频台词,就是师傅嘴里的“口技”;而驱动模型,就是那根看不见的提线。本篇将带你从后台走到前台:先把照片这块木头打磨到位(预处理),再挑选合适的提线(模型选型),然后练好口型和表情两门“口技”(口型同步与表情驱动),布置好舞台(背景与形象优化),最后让同一个偶人连轴演出上百场(批量生成)。学完这条全流程,你就能用最低成本让照片“开口说话”,批量生产口播视频。
掌握这条从预处理到批量生成的完整流水线,你就有能力用最低成本为企业批量交付口播视频、虚拟主播与新闻播报数字人,把拍视频从几天压缩到几小时。
可视化演示
展示从人脸照片到可说话数字人的完整流程:预处理→驱动模型→口型同步→视频输出,含3DMM表情参数控制与唇形同步质量评估。
本节配有交互动效(进入视口后自动加载,约 3KB)。
照片驱动数字人流程 PHO照片输入→PRE预处理→MOD模型→LIP同步→OUT输出 各阶段耗时可视化,驱动模型最耗时 T_total=sum(t_i) 批量生产关键路径优化
照片预处理
老木匠拿到一块木头,第一件事不是雕脸,而是先看木纹、去毛刺、把料子在案板上摆正。因为他知道:料子不正,后面刻得越精细,五官越歪。照片驱动数字人也是这个道理——你在手机上随手拍的照片,脸的朝向、大小、明暗五花八门,如果直接丢给模型,模型就像在歪斜的木料上雕刻,生成的嘴再准也弥补不了“整张脸是歪的”。
所以正式开工前,要经过“照片预处理”这道打磨工序。它要做三件事:人脸检测(找到脸在哪)、人脸对齐(把脸旋转摆正)、光影校正(抹平过曝和阴影)。你可以把它想象成木匠的三把工具:尺子(框出人脸区域)、水平仪(矫正倾斜)、砂纸(磨匀明暗)。
人脸检测常用 RetinaFace、MTCNN 等模型,返回一个人脸边界框和五个关键点(双眼、鼻尖、嘴角)。拿到关键点后,用相似变换把眼睛对齐到同一水平线,使人脸归一化到统一尺寸(比如 256×256);光照不匀的部分则做直方图均衡化或伽马校正。这一步的产出是一张“五官端正、明暗均匀”的标准脸,后续所有模型都吃这张脸。
经过这三把工具的打磨,原来那块歪斜的木料已经变成尺寸统一、姿势端正的“标准偶人坯子”。接下来,就可以给这个坯子挑一根合适的提线了。
- 坐标向量原始照片上一个人脸关键点(比如左眼)的位置,以及变换后的新位置。
- 旋转矩阵中间那个含 sin/cos 的 2×2 矩阵负责“转头”,θ 是人脸相对水平线的倾斜角,把歪脸转到正前方。
- 缩放系数s 是统一尺寸的比例因子,比如把脸缩放到模型要求的 256 像素宽。
- 平移向量把整张脸挪到画面中央,保证裁剪后人脸不偏不倚。
模型选型
木偶戏后台挂着一排提线,有的粗如棉绳,一挥就是大开大合的打斗;有的细若发丝,能做出兰花指的微颤。选哪根线,取决于今天这出戏要演什么。照片驱动数字人的“线”,就是驱动模型——主流的有 Wav2Lip、SadTalker,以及按形象类型划分的真人复刻、卡通形象驱动等方法。
戏路决定选线,场景决定选模型。如果你只需要“嘴型对上、批量出货”的口播视频,Wav2Lip 这类轻量模型速度快、部署简单,像一根粗线,胜在高效;如果你要的是“整体自然、有点像真人在讲话”的虚拟主播,SadTalker 这类模型会在嘴型之外顺带生成表情和头部姿态,像一根细线,胜在细腻。
从技术角度看,Wav2Lip 是一个基于生成对抗网络的模型:它把音频转换为唇部特征,再让生成器在真实视频帧的监督下重建脸的嘴部区域,训练时用一个“口型判别器”确保嘴部运动和音频同步,损失函数由重建损失与同步损失两部分组成。SadTalker 则先用 3DMM 从单张照片估计三维人脸参数,再用音频驱动这些参数产生变化。选型的本质,是在“质量、速度、形象类型”三者之间做取舍。
挑线的诀窍是“别拿细线演武生”。做批量口播、追求出片速度,就选 Wav2Lip 这类;做单条精品、追求拟人效果,就选带表情驱动的模型。线定好了,接下来要让偶人练口技。
- 总损失模型训练时的总失分,分数越低代表生成的嘴部越接近真实。
- 重建损失度量生成的脸和真实拍摄帧在像素层面的差距,相当于“画得像不像”。
- 同步损失度量嘴部动态与音频波形的对齐程度,相当于“嘴型和台词配不配”。
- 平衡权重λ 是超参数,调大更看重口型同步,调小更看重画面还原。
口型同步
木偶师傅有一门看家功夫叫“对口型”:后台竹笛一响,前台偶人的嘴一张一合,恰好踩在唱词的节拍上,观众看不出破绽。数字人的“口技”,就是口型同步(Lip Sync)——让照片里那张静态的嘴,跟随音频逐帧张合。
口型同步是一条流水线般的链路:先把音频切成一小段一小段窗口,提取出能代表“这一刻发音”的特征(如梅尔频谱);再把每一帧特征映射成嘴部形状参数(嘴宽、嘴高、开合度);最后用“时序对齐”保证嘴动和声音严格同步,不能声音先到、嘴后动。
映射关系不是人肉配的,而是模型在大量“名人讲话视频”上学出来的——训练时模型同时听声音、看嘴,学到“发这个音时嘴应该张多大”。训练完成后,评估口型好坏常用 LSE-D(口型同步误差距离):把音频特征和视频嘴部特征投影到同一个共享空间,算它们的平均欧氏距离,距离越小说明越同步。
口技练好后,偶人终于“会说话”了,但台下观众仍觉得它像个会张嘴的木头——因为它没有表情。嘴是戏的骨架,眉眼神态才是戏的灵魂,下一节我们给偶人安上会动的眉眼。
- 帧索引t 从 1 取到 T,表示把视频切成 T 个时间窗,逐帧打分。
- 音频特征从第 t 帧的音频窗口提取的特征向量,代表“这一刻声音长什么样”。
- 视频特征从第 t 帧嘴部图像提取的特征向量,代表“这一刻嘴型长什么样”。
- 欧氏距离与平均范数计算两个特征向量的距离,再对所有帧求平均,得到整段视频的口型同步分数。
表情驱动
真正厉害的木偶师傅,不只抓嘴上功夫:唱到悲处,偶人眼皮低垂;唱到欢处,偶人嘴角上扬、轻轻点头。观众看的是“活人”,不是“动嘴的木头”。照片驱动数字人的表情驱动,就是给照片补上这些“活气”。
表情驱动的核心工具是面部关键点与三维人脸参数。第一步是“铺点”:用 68 点关键点检测在脸上标出眉毛、眼睛、鼻子、嘴巴的位置;第二步是“建模具”:用 3DMM 三维形变模型把正脸照片重建出一个三维人脸;第三步是“上表情”:把音频或参考视频里提取的表情系数叠加到三维人脸上,再投影回二维,生成带表情的帧。
表情系数可以这样理解:一张平均脸是“素颜模具”,把它当作零点;每个人真实的脸相对平均脸的差异,可以分解为一组主成分方向(比如“嘴角上扬”“眉头紧皱”)。表情驱动就是算出“当前时刻应该偏离平均脸多少”,再用这个系数去捏动三维模型。头部姿态(点头、摇头)由同样的参数控制,眨眼则由一条独立的眨眼曲线按随机间隔触发,避免“三十秒不眨眼”的恐怖谷效应。
到这一步,偶人“形神兼备”:嘴会动、眉会挑、头会点。但一位好演员还得站上配得上它的戏台——背景、灯光、滤镜。接下来进入形象优化,给这场独角戏搭布景。
- 关键点向量所有 68 个关键点的 (x, y) 坐标拼成的长向量,比如 136 维。
- 平均脸向量大量人脸关键点取平均得到的“标准脸”,作为表情的零点。
- 投影矩阵W 的每一列是一个主成分方向(对应一种表情变化),把高维差异压缩到 k 个维度。
- 表情系数当前帧的表情参数向量,模型以它为输入去绘制新的脸部图像。
形象优化
木偶台上,一块素净的天鹅绒幕布和一面刷白的木板墙,演出效果天差地别。照片驱动数字人同理:即便脸生成得再自然,如果身后是杂乱的宿舍、闪烁的吊灯,产品感立刻归零。“形象优化”就是替偶人搭布景、打灯光。
形象优化有三板斧:背景替换、画质增强、美颜处理。背景替换先用分割模型(如 MODNet、RobustVideoMatting)把人物从原照片里抠出来,得到一个软边 alpha 蒙版,再把它按到新的背景上——可以是纯色棚、PPT 模板,也可以是虚拟演播室场景。画质增强对低像素老照片做超分辨率,美颜处理则负责磨皮、提亮肤色。
抠像的关键在于“边缘要软”:头发丝、衣服毛边这些地方如果一刀切,前景和背景之间会出现一圈白边,像木偶没粘好的假发。数学上,融合一帧的公式是加权的像素混合。alpha 的值越接近 1,说明该像素越属于人(前景),越接近 0 越属于背景。
布景、灯光、滤镜都安排妥当,这一场戏就算能拿得出手了。可是商业世界里,偶人不能只演一场——它要一天连演一百场,场场只换台词不换人。最后,我们把整个流程拧成一条流水线。
- 输出像素合成后最终帧里某个像素的颜色值。
- 前景像素抠出来的人物(前景层)在该像素的颜色;α 是该像素属于前景的程度。
- 背景像素替换后的背景层在该像素的颜色。
- 加权混合前景和背景按权重相加,完全前景时 α=1,完全背景时 α=0,边缘处介于两者之间形成柔和渐变。
批量生成
木偶班主最擅长的一件事是“连台本戏”:同一个偶人,今晚演《白蛇传》,明晚演《梁祝》,只需换台词、换伴奏,动作模板几乎复用。批量生成口播视频,就是把这场“连台戏”变成工业流水线:脚本一进,成片一出。
一条标准流水线有四个工位:文案工位负责把长文拆成一段段适合口播的脚本;音频工位用 TTS 把每段脚本合成语音;驱动工位把每段音频喂给驱动模型,逐帧生成口型与表情视频;质检工位用 LSE-D 等指标自动筛掉“口型漂移、人脸崩坏”的片段,不合格的退回重做。
流水线要解决的核心问题是“别让工位互相等”。如果四个工位串行排队,一条 60 秒视频要挨个跑完四道工序;如果让工位并行——这边音频还在合成,那边上一段的驱动已经开跑——总耗时大幅下降。用数学语言描述,N 段视频的总工期等于启动时间加上 (N−1) 个瓶颈工序的耗时:瓶颈是谁最慢,总时长就被谁卡住。
从这个公式能看出批量生成的经营智慧:要提速,不一定要优化每个环节,只要盯住最慢的工位。偶人还是那个偶人,但连台戏的场次从一天一场变成了一天百场。至此,从打磨木料、挑选提线、练口技、安眉眼,到搭布景、开流水线,一个“照片驱动的数字人工厂”就完整运转起来了。
- 总工期产出 N 段视频一共需要的时间。
- 启动时间第一段视频走完所有工序的时间,包括模型加载、缓存构建等一次性开销。
- 视频段数本次要生成的脚本片段数量。
- 瓶颈耗时四个工位中最慢者的单段耗时,它决定流水线的节拍。
AI 应用场景
短视频口播批量生产
阶段:批量生成 + 形象优化
解决的问题:MCN 机构传统口播视频需要真人出镜,妆发、场地、NG 重拍成本高,一天最多产出 2-3 条。用照片驱动数字人后,运营只需准备文案,TTS 合成音频,驱动模型自动生成口播画面,一天可批量产出 50-100 条——像同一个偶人连演百场,只换台词不换人。
具体案例:某知识类账号用一张律师正装照片 + Wav2Lip 流水线,批量生成法律知识口播视频,日更 5 条,单条成本从 800 元降到不足 10 元。
虚拟主播快速上线
阶段:模型选型 + 表情驱动
解决的问题:电商直播间需要长时间在线主播,真人排班昂贵且状态不稳定。用 SadTalker 类模型驱动品牌虚拟形象,能同步生成表情和头部动作,配合实时 TTS 实现低配版“直播间虚拟人”,让品牌形象在深夜时段也能开口讲解。
具体案例:某美妆品牌用品牌 IP 插画作为形象照片,接入实时语音驱动,在深夜时段顶替真人主播讲解商品卖点,转化率与真人基本持平。
新闻播报数字人
阶段:照片预处理 + 形象优化
解决的问题:县级融媒体中心缺专业主持人出镜。用一张主持人证件照生成数字人,预处理摆正姿态、背景替换为虚拟演播室,配合新闻稿件 TTS,快速产出民生新闻视频,比外聘主持人或演播室录制省时省钱。
具体案例:某地方融媒体用数字人播报每周天气与政策通知,照片预处理后接入虚拟演播室背景,3 小时完成一周的节目素材。
Python 演示
"""照片驱动数字人流水线模拟: 预处理、音频驱动口型与表情、批量生成帧"""import mathimport time import numpy as np IMG_W, IMG_H = 200, 260FACE_BOX = (50, 60, 150, 200)MOUTH_CY = 178 class PhotoPuppetPipeline: """一张照片 + 一段音频 -> N 帧口型视频(模拟版)""" def __init__(self, total_frames): self.total_frames = total_frames self.face_rect = None self.frame_list = [] def preprocess_photo(self, pixels): """照片预处理: 裁剪人脸区域 + 亮度归一化""" x0, y0, x1, y1 = FACE_BOX face = pixels[y0:y1, x0:x1] mean = face.mean() std = face.std() + 1e-6 face_norm = (face - mean) / std * 40 + 128 out = pixels.copy() out[y0:y1, x0:x1] = face_norm self.face_rect = FACE_BOX return out def extract_energy(self, wave, frame_idx): """音频特征提取: 当前帧窗口的短时能量""" hop = max((len(wave) - 160) // self.total_frames, 1) start = min(frame_idx * hop, len(wave) - 160) window = wave[start:start + 160] return float(np.sqrt((window ** 2).mean())) def to_mouth_open(self, energy): """口型映射: 音频能量 -> 嘴巴开合半径""" return 2.0 + 12.0 * float(np.clip(energy, 0.0, 1.0)) def to_expression(self, frame_idx): """表情驱动: 头部轻微摆动 + 周期性眨眼""" tilt = math.sin(frame_idx / self.total_frames * math.pi) * 4.0 blink = 1.0 if frame_idx % 8 != 3 else 0.15 return tilt, blink def render_frame(self, pixels, mouth, tilt, blink): """形象合成: 在照片上画嘴画眼, 生成一帧视频画面""" frame = pixels.copy() cx, cy = 100, 130 for oy in range(-int(mouth), int(mouth) + 1): for ox in range(-6, 7): if oy * oy + ox * ox <= mouth * mouth: px = int(cx + ox + tilt) py = int(MOUTH_CY + oy) if 0 <= px < IMG_W and 0 <= py < IMG_H: frame[py, px] = [200, 80, 80] eye_r = int(5 * blink) for dx, dy in ((-22, -28), (22, -28)): for oy in range(-eye_r, eye_r + 1): for ox in range(-eye_r, eye_r + 1): if ox * ox + oy * oy <= eye_r * eye_r: px = int(cx + dx + ox) py = int(cy + dy + oy) if 0 <= px < IMG_W and 0 <= py < IMG_H: frame[py, px] = [30, 30, 30] return frame def run_batch(self, pixels, audio_wave): """批量生成: 遍历音频窗口, 逐帧生成视频并返回同步质量""" pixels = self.preprocess_photo(pixels) t0 = time.time() energies = [] mouths = [] for i in range(self.total_frames): e = self.extract_energy(audio_wave, i) m = self.to_mouth_open(e) tilt, blink = self.to_expression(i) self.frame_list.append(self.render_frame(pixels, m, tilt, blink)) energies.append(e) mouths.append(m) elapsed = time.time() - t0 corr = float(np.corrcoef(energies, mouths)[0, 1]) print(f"生成 {len(self.frame_list)} 帧, 耗时 {elapsed:.2f} 秒") print(f"能量-口型相关系数(同步度): {corr:.3f}") def make_photo(): """造一张证件照: 浅色背景 + 椭圆肤色人脸""" rng = np.random.default_rng(42) photo = np.full((IMG_H, IMG_W, 3), 230, dtype=np.uint8) yy, xx = np.mgrid[0:IMG_H, 0:IMG_W] face_mask = (yy - 130) ** 2 / 70 ** 2 + (xx - 100) ** 2 / 52 ** 2 <= 1 photo[face_mask] = [244, 214, 196] return photo def make_audio(duration=3.0, sr=16000): """合成一段模拟台词音频: 220Hz 与 180Hz 两段交替""" t = np.arange(int(sr * duration)) / sr wave = 0.5 * np.sin(2 * np.pi * 220 * t) * (t < 1.5) wave += 0.3 * np.sin(2 * np.pi * 180 * t) * (t >= 1.5) return wave if __name__ == "__main__": pipe = PhotoPuppetPipeline(total_frames=30) audio = make_audio() pipe.run_batch(make_photo(), audio)
face_norm = (face - mean) / std * 40 + 128把裁剪出的人脸区域做亮度归一化,抹平明暗差异,相当于用砂纸磨匀木料。window = wave[start:start + 160]切出一个 160 样本的音频窗口,提取当前帧的发音特征。return 2.0 + 12.0 * float(np.clip(energy, 0.0, 1.0))音频能量映射为嘴巴开合半径:能量 0 时嘴接近闭合,能量 1 时嘴张到最大。blink = 1.0 if frame_idx % 8 != 3 else 0.15每隔 8 帧出现一次“半闭眼”,模拟自然眨眼节奏,避免呆滞感。frame[py, px] = [200, 80, 80]把当前像素涂成暗红色,逐点填充出椭圆的嘴部区域。corr = float(np.corrcoef(energies, mouths)[0, 1])计算音频能量序列与口型开合序列的相关系数,作为口型同步度的简易质检指标。face_mask = (yy - 130) ** 2 / 70 ** 2 + (xx - 100) ** 2 / 52 ** 2 <= 1用椭圆方程生成一张模拟人脸照片,做流水线的输入原料。pipe.run_batch(make_photo(), audio)程序入口:建木偶、练口技、开流水线,一步到位批量出帧。
常见误区
误区“我这张照片是 4000 万像素拍的,足够清晰了,直接丢给模型不就行了吗?预处理就是多此一举。”
正解清晰度不等于可用性。模型真正需要的是“脸的位置正确、角度端正、光照均匀”。一张 4K 侧脸照,如果不经过人脸检测裁剪、姿态归一化和光影校正,生成结果往往是歪脸配正嘴,比低清正脸照更出戏。相当于木料再名贵,不摆正直接下刀,雕出来的也是歪像。
为何常见:普通人习惯以“照片好不好看”来衡量质量,而模型关心的是“几何与光照是否规整”,两者标准完全不同。
误区“反正都是把照片变成会说话的视频,Wav2Lip 和 SadTalker 不都一个意思?选个下载量大的就行。”
正解两者的戏路不同。Wav2Lip 专注嘴部重建,速度快但头部基本不动;SadTalker 会带动表情和头部姿态,更自然但更慢。批量口播选轻薄模型,精品虚拟主播选重模型。选错提线,要么出片慢,要么表情僵。
为何常见:只看到“都会让嘴动”这个共同点,忽略了它们在表情、姿态、速度上的重要取舍。
误区“只要每帧嘴型和音频对得上,观众就一定觉得自然。”
正解口型同步只是及格线。如果人物全程面无表情、三十秒不眨眼、头部像石膏像,观众会产生“恐怖谷”般的排斥感。真实感来自口型、表情、头部姿态、眨眼的多维配合——就像木偶光有张嘴,没有眉眼,终归是木头。
为何常见:评判时只盯“嘴”这个最显眼的部位,忽略了人类感知整体神态的底层机制。
误区“批量生成不就是把单条视频的代码套个 for 循环,循环一百遍就完事了?”
正解批量生成的核心是流水线:文案、TTS、驱动、渲染并行推进,还要加自动质检。否则一旦某段音频过长导致口型漂移,可能等全部生成完才发现,白白浪费几小时算力。流水线的关键是让最慢工位一直忙碌,而不是机械地一张张循环。
为何常见:从单条流程直观外推,忽略了规模化场景下“并行、队列、质量门禁”这些系统工程问题。
面试题
Q1. 照片驱动数字人流程中,照片预处理的首要目的是什么?
- A.给照片加滤镜使肤色更白
- B.定位人脸并统一位置姿态← 正确答案
- C.压缩照片减少存储占用
- D.把照片转换成黑白照片
答案:B。预处理的核心是让人脸“标准入模”——定位人脸、旋转摆正、统一尺寸和光照。加滤镜只能改变观感,压缩是省存储,黑白转换丢失肤色信息,都不能解决模型对“几何规整”的要求。好比木料不摆正,雕得越细越歪。
Q2. Wav2Lip 这类模型最擅长的事情是什么?
- A.根据音频驱动嘴部动作← 正确答案
- B.根据音频生成完整身体
- C.替换照片中的衣服款式
- D.把中文音频翻译成英文
答案:A。Wav2Lip 是经典的口型驱动模型,输入音频与脸部区域,输出嘴部重建结果,专注“嘴动”这一件事。它不生成身体、不改衣服、不翻译语言,其余选项把它的能力夸大或偏移了。
Q3. SadTalker 相比纯口型模型的核心优势是什么?
- A.生成速度比纯口型模型更快
- B.口型准确率稳定高出两倍
- C.同步生成表情与头部姿态← 正确答案
- D.完全不需要输入任何音频
答案:C。SadTalker 的核心卖点是从单张照片估计三维人脸,再用音频同时驱动嘴型、表情与头部姿态。它比纯口型模型更重更慢,口型准确率也没有“高出两倍”的定论,且必须有音频输入才能驱动。
Q4. 下列属于口型同步自然度评估手段的有哪些?
- A.计算嘴部与音频的同步距离← 正确答案
- B.用 LSE-D 指标量化口型偏差← 正确答案
- C.把视频时长压缩到原来一半
- D.只统计视频的导出文件大小
答案:AB。口型同步评估关注“听的”和“看的”是否对齐:可以用共享空间中的特征距离(LSE-D)度量,也可以逐帧比较嘴部与音频窗口的同步程度。压缩时长和统计文件大小与同步性无关。
Q5. 表情驱动中“眨眼动作”的主要作用是什么?
- A.减少生成视频的存储体积
- B.让数字人摆脱呆滞无神感← 正确答案
- C.加快音频特征提取的速度
- D.替代口型同步的核心作用
答案:B。眨眼是表情驱动里的“生命感零件”:每隔几秒一次自然的眨眼能消除呆滞感,避开恐怖谷效应。它不参与文件体积控制、不加速音频处理,更不可能替代口型同步——那是嘴的事,这是眼皮的事。
Q6. 批量生成口播视频时,流水线标准工位包括哪些?
- A.文案脚本的准备与分段← 正确答案
- B.TTS 语音合成每段音频← 正确答案
- C.逐帧生成驱动视频画面← 正确答案
- D.演员实拍补录全部镜头
答案:ABC。标准流水线是“文案脚本 → TTS 音频 → 驱动渲染 → 质量抽检”四段式,各工位并行推进。实拍补录与照片驱动方案相悖——我们正是要用照片替代真人出镜,它不属于流水线环节。
Q7. 关于 LSE-D(口型同步误差距离)数值的解释,正确的是?
- A.数值越大说明口型越同步
- B.数值越小说明音画越同步← 正确答案
- C.数值等于音频文件的码率
- D.数值决定了视频分辨率
答案:B。LSE-D 把音频特征与视频嘴部特征投影到共享空间求平均距离,距离越小说明“听得见的”和“看得见的”越同步,是越小越好的指标。它与码率、分辨率没有关系。
Q8. 照片驱动数字人中“姿态归一化”处理的是什么问题?
- A.把歪斜人脸转到正面视角← 正确答案
- B.把侧脸样本全部直接丢弃
- C.把嘴巴统一调成微笑线
- D.把背景全部替换为绿幕
答案:A。姿态归一化是预处理的一环,通过相似变换把人脸旋转、缩放到正面统一视角。直接丢弃样本会损失数据,调微笑属于表情生成,绿幕是背景优化的手段,它们都不是“摆正姿态”。
Q9. 关于 Wav2Lip 与 SadTalker 的区别,下列说法正确的有?
- A.Wav2Lip 侧重嘴部区域的生成← 正确答案
- B.SadTalker 生成头部与表情姿态← 正确答案
- C.两者都要求音频和照片输入← 正确答案
- D.两者都不需要任何训练数据
答案:ABC。两者都以“照片 + 音频”为输入,前者专注嘴部生成、速度快,后者额外生成表情姿态、更自然。二者都是经过大量数据训练的深度模型,绝非零训练可用——选模型本质是选“提线的粗细”。
Q10. 在 Alpha 融合背景替换中,α 值接近 1 表示什么?
- A.合成画面几乎全部是背景
- B.合成画面几乎全部是人物← 正确答案
- C.合成画面亮度整体提升一倍
- D.合成画面饱和度完全归零
答案:B。α 是前景占比权重,α 越接近 1,该像素越属于人物前景,背景占比 (1-α) 越接近 0。α=0 才是纯背景,亮度与饱和度与 α 本身无关,它只控制前景与背景的混合比例。