https://youtu.be/vmt_WVBJMj4?si=OZlzEqfEvWjPakYV
我开发了一个系统,利用生成式AI自动从博客文章中创建演示视频,并上传到YouTube。
只要运用一些巧妙的方法,生成式AI不仅能构思演示文稿的故事情节,还能制作演示材料。
此外,让生成式AI创建演示文稿的讲稿,再让文本转语音的生成式AI朗读讲稿,就可以生成音频数据。
将演示材料和音频数据结合起来,便能制作出视频。
通过自动化这一系列任务,我现在可以一键自动生成演示视频。
机制
整个过程中最关键的部分是演示材料的生成。
生成式AI擅长生成图像,但这通常仅限于照片或绘画。对于以文本和图形为中心的文档,例如演示材料,图像生成AI很难创建。
因此,我将以文本和图形为中心的材料生成为一种基于文本的格式,类似于编程语言。
有几种格式可用于创建此类材料。
最初,我尝试了Marp这种专门用于演示文稿创建的格式,但其功能有限。因此,我决定使用更通用的SVG格式,它是一种矢量图形格式。
如果采用像SVG这样的文本格式,只需向标准的聊天型生成式AI发出请求,例如“请以SVG格式创建介绍这篇博客文章内容的演示材料”,它就可以创建出所需材料。
文本溢出问题
这里遇到的问题是,文本经常超出文档的外框或文档内图形的边框。
人类在查看完成的文档时会立即注意到文本溢出。然而,在SVG文本阶段检测文本溢出,而非通过目视检查完成的文档,是困难的。
因此,聊天型生成式AI经常生成文本频繁溢出的文档。
当然,AI生成的大部分内容都很好,我可以手动纠正文本溢出。但这会每次都引入一个手动步骤。
因此,有必要在生成SVG文档时,采取措施防止文本溢出,并开发一种机制来自动检测生成的SVG中是否存在任何文本溢出。
为了防止文本溢出,我采取了一种方法:在指示生成式AI创建演示材料时,向其提供基本规则、操作规程和注意事项。
作为规则,我指示它不要使用复杂图形,并固定文本的字体大小。
此外,我还指示它遵循一个程序:计算文档中句子的字符数,乘以字体大小以估计宽度和高度,然后预先确认文本不会溢出框架或图形。
在此过程中,我指示AI将检查过的过程和结果作为预检查注释记录在SVG文件中。
添加这些指示带来了一些改进,但初始准确性不令人满意。因此,我反复生成了几种变体,将常见的错误点作为注意事项添加到指示中,并在提示文本中反复强调规则和指示(如果它们未被遵循)。
通过这种反复试验的提示改进,文本溢出可以在一定程度上得到抑制。
然而,即使付出了所有这些努力,也无法达到完美,所以我决定在后期阶段实施检查。
对于这种生成后检查,我尝试使用能够视觉检查图像的生成式AI,但它无法有效检测文本溢出,因此我放弃了这种方法。
接下来,我尝试了另一种方法:将SVG文本重新输入到聊天型生成式AI中进行检查。
这种方法比视觉检查AI在检测文本溢出方面做得更好,但其检测准确性仍然不高。同样,通过迭代改进检测溢出的指示,我可以达到一定的准确性,但不能达到完美的程度。
因此,我决定创建一个程序来更严格地检测文本溢出。该程序通过计算演示材料中句子的长度和字体大小来确定宽度和高度,然后检查文本是否溢出文档框架或内部图形,这与指示生成式AI的方式相同。
创建这个程序费力,但最终它能够准确检测。
除了文本溢出,还有一些情况是AI试图创建复杂图表并产生扭曲的输出。对于这些方面,我保留了让聊天型生成式AI执行规则违反检查的方法。
此检查确定AI是否创建了超出规则定义的复杂图形,并将其标记为不可接受。
有了这个用于溢出检查的程序和用于规则违反检查的生成式AI,现在大部分问题都可以被检测出来。
后续处理
如果在这些检查中检测到不合格,则生成的SVG格式材料将被丢弃并重新生成。这是因为指出并纠正问题区域往往会导致其他问题,最终会花费更多时间。
一旦完成没有文本溢出的演示材料,下一步就是将这些材料和原始博客文章输入生成式AI,以创建旁白脚本。这里无需特别巧妙的设计。
然后,使用文本转语音的生成式AI将旁白脚本转换为音频数据。同样,这也不需要特殊技术。
最后,将SVG格式的演示材料转换为PNG图像,然后使用名为ffmpeg的工具将其转换为带音频的mp4视频。至此,整个过程完成。
在创建SVG格式幻灯片之后的一系列过程,可以通过在咨询生成式AI的同时编写程序,轻松实现自动化。
结语
在我成功构建并完善这个自动化演示视频生成系统后,我已于上周开始在YouTube上发布视频。
然而,就在这个系统完成不久,谷歌的AI工具NotebookLM也新增了类似的功能,可以自动生成视频来解释文本文档。
因此,可以预见,未来提供AI服务的公司将会推出类似的服务,从而不再需要个人从零开始构建此类系统。
尽管如此,以如此严谨的方式开发一个利用生成式AI的实用程序,对我来说是一项重大成就,让我掌握了有效利用生成式AI的关键原则。