为你的生活打造 AI 旁白的指南 [译]

为你的生活打造 AI 旁白的指南

发布于:2023 年 12 月 6 日 作者:cbh123

不久前,一个仿制的大卫·阿滕伯勒爵士在图书馆看着我喝水的视频意外走红。

相关推文:https://twitter.com/i/status/1724815159590293764

尽管我当时感冒,周围充满噪音,这个视频还是火了。它登上了 Hacker NewsBusiness InsiderArs Technica 的头条,吸引了近 400 万 观众。人工智能化的大卫·阿滕伯勒甚至描述了我蓝衬衫背后的“求偶动机”。

你可能会对现在我们能制造的东西感到惊奇(我自己也是)。我曾试验过制作一个 姿势检查器生产力教练,这些工具能捕捉我的电脑屏幕并对我的行为提出(建设性的)批评。

在本文中,我会详细介绍如何打造你专属的 AI 旁白。文章末尾,我还会分享一些实用的代码。

我曾把 AI 模型形容为“魔术盒”,它们能处理输入信息,然后产生输出结果,而我们无需深入理解它们的工作原理。

为此,我们需要三个“魔术盒”:

  • 一个 视觉 模型,通过电脑摄像头“观察”并描述我们所见。
  • 一个 语言 模型,负责撰写我们的剧本(例如,模仿大卫·阿滕伯勒的风格)。
  • 一个 文本转语音 模型,将文本转换为语音输出。

赋予模型以视觉

Pasted image 20231201120324.png
Pasted image 20231201120324.png

首先,我们需要找到一个能“看见”事物的视觉模型。我们常用的模型,像 ChatGPT 或 稳定扩散 (stable diffusion),一般接受文本输入,并返回文本、图像或视频。但对于我们这个旨在讲述生活故事的项目,我们需要的模型得能够接受图像作为输入,并对这些图像提出的问题给出回答。

我们的视觉模型有两个输入:一张图像和一个文本提示。模型随后会给出文本回答。

这里有几个可选的模型,但请注意,我对此有所偏好。

Llava 13B

Llava 13B 是一个开源的视觉模型。它不仅价格实惠,而且速度也足够快,非常适合我们的需求。我个人推荐这个模型。Llava 在 A40 GPU 上运行,运行成本为每秒 $0.000725。

下面是一个 Llava 13B 预测的实例:

这个人在做什么?
这个人在做什么?

提示词:这个人在做什么?

Llava 给出的答案是:

照片中的人正把一个红色杯子举到嘴边,张开嘴巴,好像在装作咬杯子或从杯中喝东西。

Llava 预测通常需要 1.5 至 3 秒时间来给出回答,所以每次查询的成本约为 $0.0017。

GPT-4-Vision

这是我在示范视频中用到的模型。它比 Llava 更智能,但运行速度稍慢,成本也略高。

当我们用同样的图片和问题对它进行提示(“这个人在做什么?”),它在 2.5-4 秒内给出了这样的答案:

图片里的人正拿着一个红杯子贴近张开的嘴巴,看起来像是要吃或喝杯子里的东西。他们正直视镜头,面部表情似乎既俏皮又幽默。实际上他们并没有真的用杯子做任何事,这个姿势更像是在模仿某种动作,可能是为了拍一张轻松有趣的照片或开个玩笑。

GPT-4-Vision 的运作略显复杂。它根据图像分辨率和每个 Token 的数量来定价。比如,一个 250px * 140px 的图像成本为 0.00255,外加每千个输出Token0.00255,外加每千个输出 Token 的 0.03。此外,想尝试这个模型,你还需要摆脱他们的等候名单。

提供模型输入

我们还需要一种方式来向这些视觉模型提供输入图像。我建议使用你的电脑网络摄像头。这是我编写的一个脚本,在 GPT-4 的帮助下,它能每 5 秒从你的摄像头捕捉一张照片并保存到本地文件。脚本还会压缩图片大小 — 这一步很关键,因为它能让图像模型更快速(且更经济)地处理图像。

现在我们有了让模型“观察”的对象。接下来,让我们设置一个功能,能够描述我们实时看到的图像。

编写剧本的模型

编写剧本的模型
编写剧本的模型

下一步,我们期望一个模型能够为我们的视频编写旁白剧本。这个神奇的模型的输出,就是 David Attenborough 在视频中的旁白。

这里有一个利用 Mistral 7B 来实现这一功能的例子。我们的提示语如下:

这是一张图片的描述。能否扮演 {narrator},像在自然纪录片中那样讲述这张图片?请保持简洁。
如果我做了什么特别有趣的事,就大力渲染一下!
描述:
图片中的人正把一个红色杯子举到嘴边,
张大嘴巴,仿佛要从杯子里咬下一口或喝一口。

这段描述是我们先前视觉模型输出的结果。我们的回答是这样的:

在这个引人入胜的观察中,我们见证了人类行为的独特展现。
图片中的人手拿红色杯子,正要咬一口或喝一口。
当他们大张嘴巴时,我们能看到他们牙齿和下巴的细致结构,
这展示了人体惊人的适应力。
这是一个令人赞叹的场景,让我们回想起构成我们身体的复杂性。

Prediction ID

我建议限制返回的最大 Token 数目约为 128 个。我们追求的是尽可能快的响应时间。上面的输出用时 2.7 秒,因此我们现在的总响应时间约为 5-6 秒左右。

值得注意的是,我们也可以使用 GPT-4-Vision 来得到我们需要的回答。实际上,我们可以省去一个步骤——我们不必先要求一个图像的描述,再将其转换成 David Attenborough 风格的剧本。我们可以在一次预测中同时完成这两个任务。GPT-4-Vision 足够聪明,能够一次性完成这两项工作。

这是我使用的 系统提示

作为 {narrator},我要以自然纪录片的口吻来描述这张人类的照片。
让我们来点嘲讽和幽默吧。内容要新颖,简洁明了。
哦,如果我做了点什么稍微有趣的事,那就要大书特书!

GPT-4-Vision API 的反应速度大约在 3.5 到 8 秒之间,不过多数情况下更倾向于 3 秒。

一个能说会道的模型

接下来,我们希望我们的模型能开口说话,并且要说得有模有样!我们追求的不是那种冰冷的机械音,而是更有激情的声音。

Pasted image 20231201142650.png
Pasted image 20231201142650.png

这里有许多选择。最高品质的输出可以通过 ElevenLabs 的声音克隆功能实现。如果你想要一个更实惠的、开源的替代方案,可以考虑 XTTS-v2。这两个平台都允许你上传文本和音频,让你的发言听起来就像是某个特定的声音。这样你就能得到一个听起来像你选定的声音样本的输出了。

如果你使用 ElevenLabs,请选择他们的 Turbo v2 模型 — 它的延迟只有 400 毫秒。你可以在这里查看我的 play_audio() 功能。

现在的世界真奇妙

我们现在的完整工作流看起来是这样的:

narrator pipeline
narrator pipeline

就是这样!现在你知道怎样制作自己的交互式语音克隆了。现在有很多令人兴奋的可能性。正如我之前提到的,我已经试验过制作姿势检查器生产力教练。就在几天前,OthersideAI 发布了一个名为“自我操作计算机框架”的项目,它可以通过捕捉你电脑屏幕的截图来控制你的电脑。


现在的世界变得很不一样了。这是件好事。祝你编程愉快!

保持关注