1/3
2/3
3/3
聊天机器人+文字转语音+口型动画数字人制作虚幻引擎Metahuman SDK【每天·十点半】
北冥的鱼鱼
2023年05月28日 10:30
收录于文集
共6篇

首发于公众号:  Unreal补丁 

MetahumanSDK是虚幻引擎的一个插件,它扩展了用于创建数字人的工具箱。首先,需要将插件添加到工程,可以是新工程或使用存在的工程。

安装方法有两种:商城安装和手动安装。

从虚幻商城中安装

建议从虚幻商城中安装这个插件,从而保证获取到稳定的版本。

前提是,需要有一个EPIC游戏账号。登录账号后,打开EPIC启动器,选择 虚幻引擎--虚幻商城,搜索“Metahuman SDK",在页面上选择安装到引擎,选择需要的引擎版,这样就将插件整合到了工程中了。

         

从档案中下载后手动安装(未找到archive文件,所以建议使用上述方法安装)

如果你想使用最新的版本,官方在发布到商城之前的版本,可以在档案中下载。这种安装方式与上述方法不一致,可以参考文章公众号下载的插件安装和开启方法

1,下载最新的build。

2,将文件解压到%your_project_path%/Plugins/MetahumanSDK文件夹。

千万不要解压到引擎根目录。

激活插件

插件安装后,需要在项目的设置中激活。编辑--插件标签,找到MetahumanSDK.勾选旁边的选择框,根据提示,进行重启。

激活插件后,检查是否拥有安装口令接入服务,在项目设置菜单找到MetahumanSDK 插件设置,查看APIToken字段 ,如果是空白的,点击按钮”Generate new API Token“生成一个新口令。

         

文本转语音

插件提供了文字转语音的工具。

使用合成语音命令时,使用以下声音合成提供商的服务,在未来MetahumanSDK会添加更多文本转语音提供商的支持,

目前可以使用的文本转语音提供商列表:

                 

引擎编号

                 

声音编号               

                 

                 

google

                 

https://cloud.google.com/text-to-speech/docs/voices

                 

提供男女声

                 

azure

                 

https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=stt-tts

                 

提供男女声

         

编辑器内的使用方法

可以通过如下步骤,使用编辑器内的文字转语音功能,并生成一个声音资产:

1,在内容浏览器的文件夹的空白区域右键点击。

2,在菜单中选择”Create Speech from Text tab“。

         

弹出生成窗口,在这里填写上述列表中提供的引擎和声音值,在文本字段处填写转化为声音的文字。

点击 生成 按钮。

这样我们就获取到文字转换的声音了。

运行时生成方法

在软件运行时也可以使用这个选项,通过MetahumanSDKApiManager 子系统,使用TTSTextToSpeech方法。

声音与口型同步

使用MetahumanSDK插件创建口型动画,简直小菜一碟。

编辑器内使用

通过如下步骤,完成声音同步的口型动画:

1,在内容浏览器中选择需要产生口型的声音资产。

2,在菜单中选择”Create Lipsync Animation “标签。

这时候会弹出窗口。

选择需要产生口型动画的骨架。

使用默认设置,动画产生ArKit-FACS混合图形。参考https://developer.apple.com/documentation/arkit/arfaceanchor/blendshapelocation

为了使生成的动画整合到Metahuman,我们需要先映射。插件可以为我们做这些工作,在MappingMode标签选择EMetahuman,从而产生Metahuman兼容的口型合成动画。

点击生成,我们就得到了Metahuman兼容的动画。

另外,我们也可以在sequencer中使用这个动画,需要把声音的起点与文本的起点放在一起,保证时间同步,就可以获得最好的效果。

更多的情况是,我们在场景中直接使用动画。

运行时产生

在有些情况下,我们需要在运行时产生口型同步动画。

我们先来看一下meta human的映射配置。为了使动画更好得匹配meta human,我们需要应用如下配置。

                 

Pose Asset

                 

mh_dhs_mapping_anim_PoseAsset

                 

Mapping Asset

                 

none

                 

BoneMapping Asset

                 

none

                 

Setup for Metahumans

                 

enable

         

短暂的运行时生成延迟

当运行时生成口型同步动画时,会遭遇到响应时间的问题,响应时间取决于输入声音文件的长度。为了减少播放延迟,建议采用短延迟的声音口型同步方法,这种方法可以获取生成的块状动画,而不需要完全生成后再进行处理。

在请求执行的时候,会生成一个用于添加动画块数据的缓存,当缓存足够时就会播放,会触发OnFilled事件,在这个事件之后,就可以顺序得播放动画结果,选择缓存中需要的动画块。

聊天机器人

另外,MetahumanSDK支持在工程中添加聊天机器人。目前,插件支持谷歌的聊天机器人系统,未来会添加更多的机器人提供商。

         

以上功能的组合使用

因为聊天,文字转语音和口型动画经常一起使用,所以插件提供了一个优化后的方法,将多个请求整合为一次请求,避免额外的请求消耗。

组合执行模块如下:

                 

模式

                 

文字

                 

聊天,文字转语音,口型动画

                 

1,Chat request execution->TTSInput.Text.result

2, TTS request execution->ATLInput.Sound result

3, ATL request result

                 

文字转语音,口型动画

                 

2, TTS request execution->ATLInput.Sound result

3, ATL request result

                 

聊天 文字转语音

                 

1,Chat request execution->TTSInput.Text.result

2,TTS request result

这就是MetahuanSDK的主要功能了。

当然还不止这些,还有表情,面部动画等等。

今天分享到这里。

我是鱼鱼,明天见。

注:部分链接与内容 仅在 公众号内 有效