图形引擎实战:基于音素对齐和语音驱动的中文口型同步

近些年,随着玩家对游戏艺术效果需求的增加,越来越多的写实技术被运用于3D游戏领域,其中的面部动画技术是刻画角色人物形象和丰富游戏艺术效果的关键技术点之一。在角色扮演的游戏类型中,游戏设计者为了让玩家能够获得更加真实的角色扮演体验,会根据游戏进程布置相应的剧情对话交互场景,通过交互场景的设计来提升玩家对故事情节的体验,对话时优秀的人物面部动画可以使游戏角色在交互时表现地更加惟妙惟肖,让玩家身临其境,其中语音与口型同步更是让玩家不产生违和感的重要点之一。

实现语音与口型的同步核心在于如何完成语音信号到口型动画的视觉映射,这里我们以汉语为例,介绍如何实现中文语音与口型的同步。汉语产生的单位主要由词汇、音节和音素等组成,通俗讲就是我们的中文语句由若干个词组成,词又由相应的音节组成,其中声母和韵母构成了我们所熟知的拼音,从这段介绍中我们也可以得出,声母和韵母即音素构成了汉语文本的基本要素,如何将一段对话中的音素映射至相应的口型则成为了实现汉语语音和口型同步的关键。

音素对齐:

随着游戏规模的增大,游戏中会存在的大量的对话配音及文本,如何讲这些配音与文本音素的对齐成为了实现口型同步的第一步,所幸的是,语音文本对齐在语音识别等领域有着非常成熟的研究成果,我们可以借助相应的工具实现这些配音及音素的对齐。我们以Montreal Forced Aligner(MFA)工具为例简要地介绍下语音及音素的对齐过程,MFA是一个开源语音文本对齐工具,该工具提供了基于语料库训练的各种语音模型(acoustic model),我们利用工具将音频和对应的转录文本(用数字表示音调的拼音文本)进行对齐,生成相应的音素时间序列,根据音素时间序列进一步生成口型动画的时间序列,图1所示为音频与词素和音素的对齐结果。

音素到视素的映射:

在利用音素序列信息之前,我们要先设置音素到口型上的映射,根据各种汉语音素的发音特征以及视觉相似程度可对汉语音素口型进行分类,比如a、an、uang等可归为mth-a口型,o、u、ou等可归为mth-o,b、p、m等可归为mth-b,zh、ch、sh等可归为mth-r等等,如图2所示为部分音素的口型示意图。通过上述归类,我们可以制作一定类别口型的BlendShape,并设置这些BlendShape的权重来表示不同音素的口型,从而完成音素到口型的映射,图3为音素至视素的映射表。

口型BlendShape权重计算:

由于口型与音频信号的音量等语音特征相关,我们需要根据语音特征对口型BlendShape的权重进行调整。按照音素序列,我们以一定的采样率去采样音频信号,计算音频的音量等语音特征参数,根据语音特征参数对相应口型的BlendShape权重进行加权调整,从而影响口型的张合程度,将计算得到的BlendShape权重以关键帧的形式保存为动画曲线并对关键帧数量进行一定的优化,以供后期美术或动画工作者进行编辑调整。

最后,用以Unity酱角色模型来演示两段中文语音和口型同步的效果,第一段文本为:“卡尔普陪外孙玩滑梯”、第二段文本为:“赵荻约曹云腾去鬼屋”。

结语:

本篇文章简单介绍了一种中文语音和口型同步的实现方案,方案还有许多可改进之处,针对本篇文章如有疑问和建议,欢迎指正和讨论。

参考引用:

  1. MFA工具:https://montreal-forced-aligner.readthedocs.io/en/latest/
  2. 标贝语音数据:https://www.data-baker.com/data/index/TNtts/
  3. JALI Model:https://jaliresearch.com/

欢迎加入我们!

感兴趣的同学可以投递简历至:CYouEngine@cyou-inc.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搜狐畅游引擎部

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值