Skip to content

口型同步

读取 wav 文件响度的工具:live2d.utils.lipsync.WavHandler

示例代码:main_pygame.py

用法:

创建 wavHandler 对象并设置口型同步幅度 lipSyncN

python
from live2d.lipsync import WavHandler
wavHandler = WavHandler()
lipSyncN = 3

在播放动作的同时,播放音频并进行口型同步

python
def start_callback(group, no):
    # 播放音频
    pygame.mixer.music.load("audio1.wav")
    pygame.mixer.music.play()
    # 处理口型同步
    wavHandler.Start("audio1.wav")

model.StartMotion("Speak", 0, live2d.MotionPriority.FORCE.value, start_callback)

将 wav 响度同步到 ParamMouthOpenY

python
...

live2d.clearBuffer()
model.Update()

# 在 Update 之后,Draw 之前调用
if wavHandler.Update():  # 获取 wav 下一帧片段的响度(Rms),并返回当前音频是否已结束
    model.AddParameterValue("ParamMouthOpenY", wavHandler.GetRms() * lipSyncN)

model.Draw()