潇大

Feb 26, 2024

Video2Article: 段落大纲与分而治之(2)

这是 Video2Article 的第二篇文章,刚来的读者可以参考第一篇 Video2Article: 追求更深度的视频理解(1) 。其中谈到了将视频转为图文的两条不同的线路。

分而治之,简化问题

语音转文字技术相当容易一些,可以利用 Whisper 等开源的模型即可达到不错的转录效果。而从视频中抽帧就会变得复杂一些,通常因为图像的信息量更大,处理起来更加复杂一些。
于是,我借鉴了“分而治之”的思路。如果从一个10分钟的视频抽取关键帧是困难的,那么从一个30秒的视频抽关键帧是否会简单一些呢?然而,又怎么样能将视频合理分段呢?于是,皮球又被踢回了音频转文字这一条线。

段落作为简化的基本单元

前文讲到,已经可以将语音转换为文本的段落。假定段落的分割是基本准确的,那它就可以作为构建这一层级的基本单元(building blocks)。以一个1500字的段落为例,一个段落平均150字的话,大概就会有10段,即10个基本单元。
这时就需要有一个大纲能将这10个基本单元串联起来,组成一段符合行文逻辑的内容。
工作流示意图,从转换后的文本,提取段落作为基本单元,然后再将其转换为大纲视图。
工作流示意图,从转换后的文本,提取段落作为基本单元,然后再将其转换为大纲视图。
 
大纲的内容应是可以从文本中作推断的,所以这里需要再次利用到大语言模型的阅读理解能力。在简单尝试了几个提示词后,发现同时做大纲生成和内容填充是有困难的。(GPT 系列的表现是可以的,但国产模型的表现会更逊色一些)
在我尝试让其直接输出大纲的时候+文段的前几个字之时,模型直接把文段标题和要点列了出来。也就是说它偏离了我原来的提示词而将其当成了一个总结任务(可能训练数据集中这种任务比较多的缘故),既然这种行为比较稳定,那就干脆借坡下驴直接用了吧。

曲线救国:从要点到文段

虽然生成的要点不是直接的内容,但是它的核心思想和内容应该是相似的。也就是说,我可以通过计算要点和正文段落的语义相似度,从而得到一个从 要点 list → 文段 list 之间的一个相似度矩阵。
整个赋予段落以大纲的任务,就可以视为从矩阵的左上角出发,到底矩阵的右下角。同时只能向右或者向下,这是为了保证行文的自然顺序和大纲的逻辑顺序。这个问题类似于 LCS 的连续版本,因此势必可以通过动态规划来解决。
具体的算法细节,详见下一篇文章。

如何合并?

分而治之的另一挑战,是如何将大纲视图结合在一起。这通常会引起困难,因为前面分割的原因,未必能把同一段内容放在一起作为输入。而每一个大纲任务的提示词又是单独生效的,所以结果看起来会像是有多个一级大标题的组合。
但是考虑到文段的压缩比(即原始文段长度 / 大纲文段长度)通常在 2~3 之间,整体的输入可以尝试扩增到 ~4000 字左右,这大概是10分钟语段的输入长度了。而且随着未来大模型的能力发展,这个长度上限有希望进一步提升,从而逐渐达到工程上可用的程度。
 

Copyright © 2025 潇大

logo