快速入门
在开始使用语音套件之前,你必须先下载和安装语音模型包。从 https://github.com/endink/Mediapipe4u-plugin/releases 页面中找到 Speech Models, 下载对应语言的 TTS 模型包。
关于语音模型下载和安装的详细说明,请阅读插件配置文档。
创建 MediaPipeSpeechActor 组件
向场景中添加一个 MediaPipeSpeechActor 组件。
使用语音合成(TTS)和口型同步(LipSync)
使用 MediaPipe4U 的语音合成功能,只需要几个简单步骤:
- 准备动画资产
- 添加动画蓝图节点
- 运行程序
语音套件不包含在免费授权许可中。
语音套件是一个商业授权功能,只有 Ultimate 版本的授权许可能够打包此功能。
免费授权版本仅能够在 Ureal Editor 中使用它
下面,详细介绍这些步骤的操作方法。
准备动画资产
制作一个姿势资产(PoseAsset) 包含 15 个音素曲线(这里我将这个 Pose Asset 命名为 Pose_LipSync)。
SIL 为自然状态下的面容。
音素表情请参考Lipsync文档或OVRLipSync文档
添加动画蓝图节点
在动画蓝图中添加 MediaPipe LipSync 节点和 Evalute Pose 节点。
使用蓝图中进行语音合成
在蓝图中使用 MediaPipeSpeechActor 的 SpeakText 函数,可以进行文本朗读。
在蓝图中使用 MediaPipeSpeechActor 的 StopSpeak 函数,可以停止朗读。
列出发音人
在蓝图中调用 MediaPipeSpeechActor 的 ListSpeakers 函数,如果当前 TTS Solution 支持多发音人,可以列出发音人信息。
ListSpeakers 返回 true 表示 TTS 支持多发音人,可以通过访问 Speakers 得到发音人列表,每个发音人包含 Id 和 Name 字段。
设置发音人
在蓝图中调用 MediaPipeSpeechActor 的 SetTTSSpeakerId 函数,如果当前 TTS Solution 支持多发音人,可以设置 TTS 要使用的发音人。
SetTTSSpeakerId 将返回实际作用的发音人 Id,通常这和你传入的 Id 相同,当你传入一个 TTS 不存在的发音人 ID 时会返回 -1。
其他 TTS 蓝图函数
IsTTSSpeaking
判断 TTS 是否正在朗读文本。
GetTTSSpeakerId
获取 TTS 当前正在使用的发音人。
使用语音识别
使用 MediaPipe4U 的语音合成功能,只需要几个简单步骤:
- 绑定识别事件获取识别到的文本。
- 在蓝图中开始语音识别
当你不再需要语音识别时,你应该停止语音识别。
绑定语音识别事件
在蓝图中绑定 MediaPipeSpeechActor 的 OnTextRecognized 事件,可以在事件回调中获取到 ASR 识别到的文本。
开始语音识别
在蓝图中调用 MediaPipeSpeechActor 的 StartASR 函数,可以从默认的音频输入设备(麦克风)中捕获语音数据并识别为文本。
如果你发现无法识别到语音,并且日志中无错误,请检查你的操作系统中的默认声音输入设备是否是你的麦克风,MediaPipe4U Speech 将自动使用操作系统中默认的输入设备。
停止语音识别
在蓝图中调用 MediaPipeSpeechActor 的 StopASR 函数,可以停止捕获音频数据。
其他 ASR 蓝图函数
IsASRCapturing
判断 ASR 是否正在识别语音
使用 MediaPipe4U 语音工具
MediaPipe4U Speech 提供了在 Unreal Editor 中快速测试语音功能的工具,你可以从 窗口(Windows)>> MediaPipe4U >> MediaPipe4U Speech
菜单中打开它。
- 点击
Text To Speech
按钮可以朗读输入框中的文字。 - 点击
Start ASR
按钮可以启动麦克风语音识别,将会把识别到的文字输出到界面。
当 ASR 启动后,如果 VAD 被启用,语音工具界面中的 VAD 状态指示器为绿色时表示有人说话,方便你监视语音识别状态。