前几天在找数字人方案,需求是把一段产品介绍的录音配上一个"真人讲解"的视频。以前这种活要么找真人拍,要么用那种很假的数字人工具,嘴型对不上看着难受。

然后发现了 InfiniteTalk 这个模型,试了一下,说实话效果比我预期好不少。

它能干什么

你给一张人像照片 + 一段音频,它生成一个这个人在"说话"的视频。唇形跟着音频走,头部和身体也会有自然的微动。最长能做 10 分钟。

不是那种嘴巴一张一合的粗糙效果,是真的能看出在说哪个字的那种同步程度。

跑起来

装 SDK,拿 Key:

pip install wavespeed

Key 在 wavespeed.ai/settings/api-keys 创建。准备两个文件:一张正面人像照,一段语音。

我用的这张照片:

from wavespeed import Client

client = Client(api_key="wsk_xxxxxxxx")

image_url = client.upload("./portrait.jpg")
audio_url = client.upload("./speech.mp3")

output = client.run(
    "wavespeed-ai/infinitetalk",
    {
        "image": image_url,
        "audio": audio_url,
        "resolution": "720p"
    },
    timeout=600.0
)

print(output["outputs"][0])

就这么多。端点 wavespeed-ai/infinitetalk,核心参数三个:image、audio、resolution。

试了几种音频

先用了一段 30 秒的中文产品介绍,正常语速。唇形同步挺准的,头部会跟着语气有轻微的点头和偏转。生成等了大概 5 分钟,官方说每 1 秒视频需要 10-30 秒生成时间,差不多。

然后换了段英文试试——嗯,效果居然比中文好一点。官方文档也说了 prompt 建议用英文,估计训练数据英文占比更大。

最惊喜的是唱歌。纯粹好奇传了一段哼歌的音频上去,嘴型居然也能跟上。没有说话那么精准,但看着不违和,这个我没想到。

踩坑记录

prompt 参数坑了我一次。这个模型有个可选的 prompt,用来控制表情姿态。我一开始写了一大段中文描述,结果生成出来脸上全是噪点。后来看到官方文档写的:

改成简短英文 "natural head movements, subtle expressions" 就好了。或者干脆别写,让模型自己来。

另一个坑是 mask_image。如果照片里有多个人,可以用 mask 指定让谁说话。但我手贱把原图直接当 mask 传了进去——输出全黑。mask 应该只画你要动的那个人脸区域,别把整张图传进去。

还有就是音频质量。背景噪音大的录音,出来的唇形会乱。建议先降噪再传。

生成时间也要注意,30 秒视频等 5 分钟,1 分钟的要等十几分钟。代码里 timeout 记得设大,默认值可能不够。

费用

480p 是 0.03/秒,720p翻倍0.03/秒,720p 翻倍 0.06/秒。最低收 5 秒的钱。

算下来 1 分钟 720p 大概 $3.6,约 25 块r民币。比找真人拍便宜太多了。但如果一天要出几十条,成本也不低,可以考虑用 480p 省一半。

什么时候用它

我觉得最合适的场景是产品介绍和教学视频——不想露脸或者没时间拍的时候,传张照片配上录音就行。做多语言版本也方便,同一张照片配不同语言的音频就能出不同语言的视频。

但别指望它做大幅度的肢体动作,它主要是头部和面部在动,身体动作很小。侧脸照片效果也不好,正面或者微侧最佳。


模型文档:wavespeed.ai/models/wave…
SDK:github.com/WaveSpeedAI…

本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:alixiixcom@163.com