基于 wav 文件音量的口形同步 (Web)

[最后更新时间:2021/05/13]

 

概述

Cubism SDK for Web 示例使用口形同步功能提供根据 wav 文件音频数据的音量实时移动口形同步的功能。
此示例由 Cubism 4 SDK for Web R3beta1或更高版本提供。

 

如何使用

准备

在 .json 文件中写入与动作关联的 wav 文件。指定每个动作的“声音”键对应的wav文件路径。

将 wav 文件放在上面指定的位置。如果 wav 文件路径不正确,将不会发生口形同步。

 

体积采集开始

在示例中,信息是通过 LAppWavFileHandler 类从 wav 文件中获取的。
执行LAppWavFileHandler::Start()从wav文件中读取音频数据,初始化口形同步所需的内部状态。

 

 

状态更新和容量获取

执行LAppWavFileHandler::Update()时,测量经过时间对应部分的音量。测量结果的音量可以通过LAppWavFileHandler::GetRms()获得。使用 CubismModel :: AddParameterValue 函数将获取的音量设定为模型中的口形同步值。

在样本中,采集到的体积乘以 0.8 得到口形同步值。这里,也可以将从声音库等获得的音量设定为口形同步值。

 

 

补充

  • 该示例无法在设备上播放音频。
  • LAppWavFileHandler::GetRms()返回0-1范围内的当前音量值。
    • 体积单位是 RMS(均方根)。
    • 计算所有声道音频的平均值。
      • 例如,在立体声音频的情况下,计算包括左右声道的音频的平均值。

 

限制

该示例支持读取以下 wav 文件。如果加载不支持以下格式的文件,将不会执行口形同步。

  • Microsoft WAV(小端格式)
  • 直线PCM
    • 不支持以 μ-raw、ADPCM 等编码的 Wav。
  • 通道数: 单声道/立体声
  • 对应位深: 8、16、24位有符号整数

© 2010 - 2022 Live2D Inc.