LipSync主要由三个模块组成。
·前端负责分析语音,辨识指定的音节,输出位置、类型和强度。LipSyncPro的作者直接使用了PocketSphinx开源库来完成这部分的内容。
·中端没有明确的界限,负责将语音识别的结果转化为驱动表情动画的事件帧。LipSync中提供一个ClipEditor,界面功能全面,可以方便的增减和编辑AutoSync生成的帧信息。
*前端和中端都是在编辑器中离线完成的。
·后端负责在runtime时根据事件帧驱动表情动画。LipSync支持BlendShape、骨骼动画和2D帧动画。
初步试用下来感觉挺好用,但有个关键问题:插件不支持中文! 强行识别的结果根本没法看。作者已经在尝试做多国语言的支持,但因为不会中文,暂时还无法支持。
内置的英语音素分类定义
总结一下,要扩展LipSync支持中文,需要解决两个问题:
1)寻找中文音素表
2)寻找一个开源库来识别中文语音中的音素(最好还是Sphinx)
对于第一个问题,英文搜索几乎没有靠谱的内容,百度倒是找到好几篇研究中文LipSync的论文[1][2],看引用数不高,可能是LipSync的学术价值太低,但工程上还是挺有意义的。
[1]使用HTK自行训练中文语音模型,我没做过语音识别,比较苦手。只能看看有没有现成可用的中文模型。
[2]提出一个三段式的方案,先结合过零率和短时能量将语音切割为片段,逐片段识别为文字(论文里使用的是微软S