如何用人工智能帮你剪视频?
2022-11-24 11:31:28 Author: sspai.com(查看原文) 阅读量:19 收藏

制作视频已经好几年了,但是剪片子一直是让我比较头疼的事。

在我制作视频的最初,如果讲的时候出现了磕绊,或者有些展示过程出现问题,我会停下来,然后重新录制 。因为那时候的我不懂得剪辑的意义,觉得所有视频都是「一条过」的产物。

后来我才明白过来:录制「一条过」的成本实在太高,实在有些打消我的主观能动性。在经过若干轮次的迭代之后,我甚至已经用卡片法来录制视频了。既然明白了剪辑的重要性,剪辑的工具也就引起了我的重视。

提到视频剪辑,一般用户可能会想到剪映,而相对专业的用户往往会想起 Final Cut Pro 或者 LumaFusion 等。这些工具都很好,不过对于我来说,它们中的大部分功能,我其实都用不上。但是我真正需要的那些功能,它们提供得也不好。

我是个懒人,在开始录制视频之前,一般只有一个提纲,甚至只有一个主题。所以讲的时候,很有可能中间进了一个死胡同,绕出来的时候前面的就都应该删掉。可是之前的问题在于整体录制完成,再去找这些比较麻烦。

所以,我的剪辑目标是:剪掉素材中的错误、口癖和过长的停顿;至于 B roll 之类的素材,并不是必须要考虑的问题。

对我来说,剪映或 Final Cut Pro 等软件在处理这些问题上,难以给我有效的帮助。

为何选择 Autocut

后来,我看到了立青推荐的 Recut ,试过之后,发现真的是剪视频的利器。它的原理其实非常简:找到那些长时间声音低于某一阈值的片段,然后去掉它。这样句子之间更加连贯。

我一开始对「剪掉所有的无声片段」颇有些不以为然,因为我头疼的主要是处理口癖和中间去喝水的片段等。但是实际用起来,我发现这种情况出现的时候,前后一般也会有无声片段出现。所以我可以根据自动切分的片段长度,来找寻可能有问题的地方。很多时候,长时间流畅表达的部分中间一般都是没问题的。反之,反复出现无声片段,意味着这一部分在磕磕绊绊,点开一听,确实是可疑。这样一来,剪辑效率提高很多。

Recut 支持把剪掉无声片段之后的内容直接输出为视频文件,也可以把它输出为 Final Cut Pro 的 XML 项目文档。我还是觉得在 Final Cut Pro 里面进行精剪更为稳妥,这样如果切断的地方有需要的,还可以找补回来。

Recut 虽然好,但是还是没有解决我的另一个痛点:剪掉不想呈现的那部分内容。

每次剪辑,我还是要在 Final Cut Pro 里面从头到尾听一遍。当然,我一般会用 L 快捷键,把播放开到二倍速,以显著提升效率。不过对于某些内容来说,可能听了半天,才发现前面的有问题,于是还得重新回过头去找出来剪掉。这样操作起来并不直观,效率明显还有提升空间。

看到这儿,你可能觉得我太贪心了。但是事实证明,工具确实还能进一步发挥作用。不过这次,就需要人工智能介入了。

我最近发现了一款有意思的视频剪辑工具,来自于李沐老师。李沐是亚马逊首席科学家,人工智能框架 Apache MXNet 作者之一。他在 B 站开设直播课程,教大家深度学习课程。

在 B 站做视频,李沐老师也经常需要面临剪辑的问题。根据他自己的介绍,每段视频里需要剪掉的部分还不少。久而久之,对现在市面上的工具不满,所以干脆自己用人工智能做一个。

这个工具,叫做 Autocut ,对应的 Github 项目的地址在这里

这种「一言不合就自己开发工具」的脾气,我特别欣赏。

如何使用 Autocut

Autocut 涉及的人工智能,主要指的是 Whisper ,它是 OpenAI 出品的一个模型,主要功能是将声音转写为文字。

本文内容聚焦在 Autocut ,所以关于 Whisper 的具体细节就不展开了。如果你感兴趣的话,少数派上面有一篇文章,对 Whisper 做了比较详细的介绍。我觉得写得不错,推荐给你。

李沐老师创造的工具,是这样的工作原理:

  • 首先,调用 Whisper 生成字幕;
  • 然后,用户可以编辑生成的字幕,按照文字来挑选内容。保留有用的部分,删除无用的部分;
  • 最后,Autocut 会依照保留的字幕内容和时间轴,把对应的视频或者音频剪辑完毕,形成单独的视频文件。

机理并不复杂,下面咱们来看一个实际的例子。

实操案例

这是我前几天录制的一段视频,讲盗版软件为什么会没落了下去。

我使用 iPhone 录制视频素材,将其 Airdrop 到电脑,文件名为 IMG_6764.mov。我把这段素材存放在名为 2022-11-14-software-pirate 的目录中。

然后执行以下命令:

autocu -d /Users/wsy/Movies/2022-11-14-software-pirate/

这条命令可以让 Autocut 监控指定的文件夹。如果目录下有视频文件,就进行处理。如果相关的文件发生变动,也会激发 Autocut 进行后续的操作。此处略过对视频的第一波处理,因为反正都是自动进行的。完成 Whisper 的声音转录后,这个目录里就自动生成了 3 个文本文件。

一个是项目控制文件,autocut.md。这个文件主要用来合并多个视频。所以如果你目前只录制一段视频的话,暂时不用管它。

一个是字幕文件,IMG_6764.srt

注意因为 Autocut 默认使用的是 Whisper 一个小型化模型(small)。这样处理的速度更快,但是识别率比起完整模型有妥协。你可以看到其中第一句「盗版」写成了「倒板」,第二句「莫韦」显然应该是「末尾」。不过这无伤大雅,不干扰后续识别就好。

另外一个文件,是与字幕对应的 Markdown 文件,IMG_6764.md。建议你使用 Visual Studio Code 打开。

左侧是 Markdown 原始信息,每一句字幕之前,都有一个选项框(checkbox)。一开始默认都是不勾选。如果你觉得哪一句的内容需要保留,只需要把 - [] 加上一个 x ,变成 - [x] 即可。

就像这样:

之后,你就可以快速在字幕文本中游走,把需要的内容摘取出来。剪片子从原本需要面对视频,就变成了面对文本。如果只看视频,可能需要反复观看某一片段,才会发现其中的错误;但如果换成文本,几乎一眼就可以看出需要修改的地方,效率自然提高很多。这也是为什么有的人平时更喜欢看书而非教学视频,就是因为他们觉得这样的信息密度才足够高。

不过,像这样一行接一行的修改标记,还是有些麻烦。这就是为什么我们要用到 Visual Studio Code,它拥有丰富的插件系统,可以帮助我们轻松批量给任务「调勾」。

安装插件

你需要在 Visual Studio Code 中搜索并安装这个插件(Markdown Checkbox):

安装完成之后,还需要进行一下简单设定,保持插件设置与下图一致即可:

在这个插件的帮助下,只需要选中文本中的若干行(只选一行当然也没问题),执行快捷键 Shift + cmd + Enter 即可完成勾选。

不过,大部分情况下,视频里需要保留的内容远比需要删除的多。把保留的句子都一一选出来,听起来有点儿反直觉。其实也好办,你可以把所有需要删除的句子先选定,然后全选文本,重新执行 Shift + cmd + Enter ,相当于进行一次反选。

注意修改完之后,一定不要忘记勾选该 Markdown 文件的第一行。这个标记是用来提示 Autocut 已经完成了内容筛选,可以进行剪辑了。

Autocut 剪辑完毕后会依照「原文件名_cut」的命名规则,生成一个新的视频文件,在这个案例中,新的文件名为IMG_6764_cut.mov

除此之外,Autocut 还会自动生成新的字幕文件,名为 IMG_6764_cut.srt。如此一来,剪辑好的视频和对应的字幕就一步到位了。不过 Whisper 对于中文识别的准确率还有待提升,你可能有必要在这里直接修改 srt 内容保证字幕更加精准。

实现效果

Autocut 用人工智能做视频剪辑,效果怎么样呢?

我觉得不错。至少里面大段讲废了的内容,可以非常容易识别出来,并且批量去除掉,比人工看、听和剪的过程,要高效许多。

但是现在 Autocut 还存在几个小问题:

  • 首先是刚才已经提到的,有些语句识别不准确,如果只看文本,可能无法知晓其原意。这个问题和 Autocut 选择的模型有关系。如果选择更大的模型最好有 GPU 支持。我使用 Macbook M1 只能调用 CPU 的功能,所以无法选择更大的模型。我处理的办法是不知道是否保留的,先保留下来,后续再进行精剪;
  • 其次是调用 ffmpeg 剪辑的时候耗费时间长度是个问题。如果内容较长,ffmpeg 剪辑起来需要用到比较长的时间。之前我用过另一款名为 losslesscut 的轻量级剪辑工具,它同样基于 ffmpeg ,却可以做到瞬间剪辑完毕。我认为是 Autocut 的 ffmpeg 设定存在问题,通过调整参数,也许也可以做到更快速的剪辑;
  • 最后是直接剪出来的视频,有时候会出现莫名其妙的吞字。虽然这种情况不常见,但是只要出现一次就会让人很不舒服。毕竟剪掉内容容易,但是之后再调整就很难了。

我觉得最好的解决办法,是让 Autocut 可以像 Recut 一样,直接选择生成 XML 项目文件,以便在 Final Cut Pro 或者其他视频剪辑工具里面再做精修。一来,这种方法省去了调用 ffmpeg 剪辑的时间;二来,如果发生错误吞字的情况,也可以在 Final Cut Pro 里面简单拖拽找回来。

关于这一点,已经有人给李沐老师提了建议:

我也在后面表示了自己对这个提议的支持:

希望这个功能可以早日实现。

小结

本文介绍了李沐老师的人工智能剪辑工具 Autocut 。通过 Whisper 声音到文本转换,实现依照文字的高效剪辑。希望这款工具可以帮助到你。

你有没有其他好用的视频剪辑工具可以分享?欢迎留言,咱们共同进步。

祝剪辑愉快!

如果你觉得本文有用,请充电

如果本文可能对你的朋友有帮助,请转发给他们。

欢迎关注我的专栏「科研利器」,以便及时收到后续的更新内容。

延伸阅读

玉树芝兰

王树义。大学教师,终身学习者。稍微懂一点儿写作、演讲、Python和机器学习。欢迎关注我的公众号“玉树芝兰”(nkwangshuyi)。


文章来源: https://sspai.com/post/76939
如有侵权请联系:admin#unsafe.sh