我的数字人开发最初的缘由是因为,我懒,而且身体不太好,不适合长时间的念稿。于是就萌生了克隆音频的想法,自然而然,音频都可能了,就不能一步到位直接生成数字人吗?
那自然是可以的,于是我就着手进行开发了。
首先是技术选型,因为我主要是视频为主不是直播,对于实时性要求不高,因此,我选择首要是克隆我的音频克隆效果比较好的。
摆在下面的有:gpt-sovits,chattts,f5-tts,cosyvoice 等几个。
先说说他们的优缺点吧。
GPT-Sovits 这玩意的优点呢,就是克隆的速度贼快,而且如果训练得好,克隆的效果贼好。
但是缺点也很明显,需要训练,而且炼丹的成果,看天。哪怕你原始的音频效果很好,有时也会有问题。
chattts,cosyvoice 我的声音克隆出来很闷。而f5-tts则有个问题,他不会读数字。
我当时懵逼了,难道天要亡我?
然后居然还有个fish-speech
非常不错,克隆出来的音频,同事说有50%像我。
于是,音频的选项,则选择了这个。
再说视频方面,有同步嘴型选项,以及直接图生视频选项。
同步嘴型有wav2lip,musetalk 这两个。图生视频,则是echomimic,和MimicTalk,还有hallo2。
期初我选择的是图生视屏的,但是问题比较大,生成的脸啊什么的不太协调,下面是原图以及原视频
这个是原图
这个是生成后的视频,采用的是echomimic ,还好是吧。后面当我穿半身照改变参数的时候,脸直接就变形了。。。而且吧这玩意只能成成10多秒,后续的就一直最后一帧走到底了。
于是我放弃了,采用对嘴型的模式,对嘴型的wav2lip有一个问题,脖子下面会有一条线,于是我直接采用了musetalk。
再经历了跟ChatGPT,claude 历时一个多月的博弈之后,我终于把这个数字人界面给弄出来了。
界面是比较丑陋的,但是呢数字人的生成效果还是不错的。第一个版本的数字人嘴巴开口比较小
但是呢,生成的非常的自然,很像人,这个版本是Claude给我改的musetalk的代码。
后面第二个版本,我始终无法让Claude给我改出来嘴巴大一点的代码,于是采用了原始的代码方案,改出来的效果如下:
可以看到,嘴巴是张大了,但是脸部表情,以及脸部的色差和平滑度就差了很多了。但是他嘴巴张大了压,不错不错。
然后我就想到了,可以用高清修复么,于是就加入了GFPGan,这玩意,是高清修复的好手,可以看看效果奥
效果还是挺不错的,把我的双眼皮都拉出来了,哈哈哈哈。
再后来,微信提了,说不能发布同质化的内容,于是我问GPT有啥玩意是可以换背景的。
得到的答案是RobustVideoMatting,换背景的效率非常的高
可以看见,我整个人的轮廓已经无缝的切入到视频里去了。哈哈哈,后续就是把这个功能整合到开发界面里去了。
到时候开放出来,让哥哥们用用看哈。