Closed gobigrassland closed 1 month ago
我对比了一下wav2lip 与当前推理代码,发现wav2lip使用audio库提取频谱特征,而当前推理代码是使用whisper提取特征。这两种提取特征应该是有差异的。但不清楚train_codes分支为啥这样写,提取音频部分都没有和推理代码一致
@gobigrassland 参考https://github.com/TMElyralab/MuseTalk/pull/62
@gobigrassland 参考#62
这个issue提到的问题我注意到了,音频特征分块后数量不一定与视频帧一致。我预处理时进行了过滤。当我将视频帧率和音频调整到25fps, 16kHZ后,当这两者差异超过3,我就丢弃掉了。
主要是想确认一下推理代码中的
center_idx = int(vid_idx*50/fps)
与train_codes中Dataloader.py中
start_idx = int(80. * (start_frame_num / float(hparams.fps)))
让我感到困惑
@gobigrassland 参考#62
这个issue提到的问题我注意到了,音频特征分块后数量不一定与视频帧一致。我预处理时进行了过滤。当我将视频帧率和音频调整到25fps, 16kHZ后,当这两者差异超过3,我就丢弃掉了。
主要是想确认一下推理代码中的
center_idx = int(vid_idx*50/fps)
与train_codes中Dataloader.py中
start_idx = int(80. * (start_frame_num / float(hparams.fps)))
让我感到困惑
确认了一下,crop_audio_window
并没有被使用。是代码没整理干净。。。
实际上我们是预先保存与推理代码相同的whisper特征,并在dataloader里读进来。 见这里
推理代码中调用提取音频特征,musetalk/whisper/audio2feature.py,其中定位音频特征索引是center_idx = int(vid_idx*50/fps)
而train_codes分支训练代码,包括Wav2Lip代码中,定位的音频索引是start_idx = int(80. * (start_frame_num / float(hparams.fps)))
这两处系数一个是50,一个是80,怎么没有保持一致呢?