BlueRoseNote/02-Note/DAWA/AI偶像陪伴项目/AI偶像陪伴项目笔记.md

3.0 KiB
Raw Blame History

各个服务负责人

  • TTS文字=>音频)
    • 张守高
  • 动作 (文字=>动作)
    • 张渤林
    • 孙佳俊
  • 口型(音频=>表情数据)
    • 张渤林
    • 常清

存在问题

  1. 目前是否以文件的方式实现。
  2. 文字、声音、表情与动作的关联性。(主要是声音、表情与动作)
  3. 生成资产数据存在顺序依赖问题
    1. 文字 => 声音 => 表情(口型)
    2. 文字 => 动作

设计思路

  1. 服务器发送的数据都使用一个基于玩家发送对话生成的UUID作为时间戳。
  2. 数据采用Stream式发送。

参考RTMP

RTMP

Message & Chunk

RTMP中一个重要的概念就是消息。 600

600

800 网络中实际发送的内容

600

Chunk Format

Message被切割成一个或多个Chunk然后在网络上进行发送。
当发送时一个chunk发送完毕后才可以发送下一个chunk。

600

Message被拆分成一个或多个Chunk然后在网络上发送

拆分的时候,默认的Chunk Size是128字节以Message大小为300字节举例进行拆分。

300 = 128 + 128 + 44

600

作者FlyingPenguin
链接:https://www.jianshu.com/p/715f37b1202f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

声音

Runtime Import Sound

使用RuntimeAudioImporter插件,里面的解码使用了第三方库https://github.com/mackron/dr_libs。导入Sound使用了UImportedSoundWave::PopulateAudioDataFromDecodedInfo()

UE的做法

/*SoundStreaming->RawPCMDataSize = DataSize;
SoundStreaming->RawPCMData = AudioData;*/

表情

在状态机里生成完成之后通过BP_Player的接口ATF_TO_BS传递数据到动画蓝图NV2_Full_Skeleton_AnimBlueprint中。之通过动画蓝图的Pose读取曲线并且播放动画。