上期博客已经实现了流式输出纯语音对话的延迟已经达到了实时对话的标准主要影响体验的还是唇形同步当前项目使用Audio2Face插件但插件使用深度学习算法计算口型需要用上GPU跑模型就导致对电脑性能要求极高天选4笔记本带不动本博客将记录我对基于Oculus Lipsync插件的音频驱动唇形方案实现纯CPU和低性能需求的唇形同步Oculus Lipsync插件下载及安装为什么下载和安装要单拎出来讲因为Oculus Lipsync插件官方已停止对插件的维护。我在第四篇博客已经有了初步调研原配插件不支持UE5.6且不支持实时唇形同步。原插件主要是烘培动画使用。但为什么现在又重新启用该方案了呢首先就是我变牛逼了当前对UE C了解更加深入可以尝试动手改插件。其次我们“请循其本”该插件的核心原理是“实时分析音频的波形计算出‘音素Visemes’的权重并驱动面部表情”也就是说计算音素这一步可以做到实时我只需讲音素拿过来实时驱动面部表情就够了。理论成立实践开始。插件下载我使用的是Github上大佬开源的UE5增强版。将项目改为C重新编译启动即可。实现音频转音素主要通过插件FeedAudio()函数实现。首先注意到最后一行ProcessFrameAsync()函数FeedAudio()调用是逐帧调用然而音频是好几秒所以我需要一个将音频切片的辅助函数。已知我的运行帧率是30fps音频采样率为 24000 Hz单声道16-bit所以应该给函数传递的数据量为( 24000*2 ) / ( 1/30 ) 1600B。实现音素驱动嘴型首先第一大难题找到Metahuman控制面部表情的地方在哪。由于UE迭代速度过快原先Face_BP这些蓝图都没有了一大波教程都被淘汰了UE官方说是升级了但也没写好文档导致我只能一点点摸索。最终摸索出来两个方案通过Control Rig控制和通过姿势资产控制。Control Rig在Metahumans/Common/Face/CR_MetaHuman_HeadMovement_IK_Proc那是个控制绑定蓝图导入Metahuman预览网格体后出现如下UI界面就可以手动调整面部表情了。关于该UI界面UE文档中有详细教程这样做有个致命缺陷代码调用难度极高。Metahuman面部有51个控制点每个点代表着一条曲线虽说动画蓝图可以通过ControlRig接口驱动控制点变化但是只通过一个音素去驱动多个Control Rig太过于复杂且没有直接操作、所见即所得不利于美术调试。2. 姿势资产。在Metahumans/Common/Face/ARKit/PA_MetaHuman_ARKit_Mapping这里烘培了许多姿势可以通过调整权重来控制角色面部表情。这个方案较Control Rig最好的点就是交互直观且易懂最重要的一点它支持姿势混合后生成新姿势这意味着我们可以为16种音素设立一一对应的唇形。Viseme Reference通过Modify Curve接口即可实现动画的调用最终效果及未来计划在我自己的笔记本上已经能够流畅实时运行。本周将每一个音素的对应口型设计出来以更好地唇形同步
山东大学项目实训个人纪实(6)——降低唇形同步延迟及性能需求
发布时间:2026/6/3 4:02:54
上期博客已经实现了流式输出纯语音对话的延迟已经达到了实时对话的标准主要影响体验的还是唇形同步当前项目使用Audio2Face插件但插件使用深度学习算法计算口型需要用上GPU跑模型就导致对电脑性能要求极高天选4笔记本带不动本博客将记录我对基于Oculus Lipsync插件的音频驱动唇形方案实现纯CPU和低性能需求的唇形同步Oculus Lipsync插件下载及安装为什么下载和安装要单拎出来讲因为Oculus Lipsync插件官方已停止对插件的维护。我在第四篇博客已经有了初步调研原配插件不支持UE5.6且不支持实时唇形同步。原插件主要是烘培动画使用。但为什么现在又重新启用该方案了呢首先就是我变牛逼了当前对UE C了解更加深入可以尝试动手改插件。其次我们“请循其本”该插件的核心原理是“实时分析音频的波形计算出‘音素Visemes’的权重并驱动面部表情”也就是说计算音素这一步可以做到实时我只需讲音素拿过来实时驱动面部表情就够了。理论成立实践开始。插件下载我使用的是Github上大佬开源的UE5增强版。将项目改为C重新编译启动即可。实现音频转音素主要通过插件FeedAudio()函数实现。首先注意到最后一行ProcessFrameAsync()函数FeedAudio()调用是逐帧调用然而音频是好几秒所以我需要一个将音频切片的辅助函数。已知我的运行帧率是30fps音频采样率为 24000 Hz单声道16-bit所以应该给函数传递的数据量为( 24000*2 ) / ( 1/30 ) 1600B。实现音素驱动嘴型首先第一大难题找到Metahuman控制面部表情的地方在哪。由于UE迭代速度过快原先Face_BP这些蓝图都没有了一大波教程都被淘汰了UE官方说是升级了但也没写好文档导致我只能一点点摸索。最终摸索出来两个方案通过Control Rig控制和通过姿势资产控制。Control Rig在Metahumans/Common/Face/CR_MetaHuman_HeadMovement_IK_Proc那是个控制绑定蓝图导入Metahuman预览网格体后出现如下UI界面就可以手动调整面部表情了。关于该UI界面UE文档中有详细教程这样做有个致命缺陷代码调用难度极高。Metahuman面部有51个控制点每个点代表着一条曲线虽说动画蓝图可以通过ControlRig接口驱动控制点变化但是只通过一个音素去驱动多个Control Rig太过于复杂且没有直接操作、所见即所得不利于美术调试。2. 姿势资产。在Metahumans/Common/Face/ARKit/PA_MetaHuman_ARKit_Mapping这里烘培了许多姿势可以通过调整权重来控制角色面部表情。这个方案较Control Rig最好的点就是交互直观且易懂最重要的一点它支持姿势混合后生成新姿势这意味着我们可以为16种音素设立一一对应的唇形。Viseme Reference通过Modify Curve接口即可实现动画的调用最终效果及未来计划在我自己的笔记本上已经能够流畅实时运行。本周将每一个音素的对应口型设计出来以更好地唇形同步