介绍
正如建筑师路德维希·密斯·凡·德罗所说:“少即是多”,这就是摘要的意义。摘要是将大量的文本内容减少为简洁、相关的要点,迎合了当今快节奏的信息消费方式。在文本应用中,摘要有助于信息检索,支持决策制定。基于生成式人工智能(如OpenAI GPT-3模型)的集成,不仅可以从文本中提取关键要素,生成保留源内容本质的连贯摘要,而且有趣的是,生成式人工智能的能力也可以扩展到视频摘要。这涉及从视频中提取关键场景、对话和概念,创建内容的缩减表示。可以通过多种不同的方式实现视频摘要,包括生成简短摘要视频、执行视频内容分析、突出显示视频的关键部分或使用视频转录创建视频的文本摘要。
Open AI Whisper API利用自动语音识别技术将口语转换为书面文本,从而提高了文本摘要的准确性和效率。另一方面,Hugging Face Chat API提供了最先进的语言模型,如GPT-3。
学习目标
本文我们将学习以下内容:
- 学习视频摘要技术
- 了解视频摘要的应用
- 探索Open AI Whisper模型架构
- 学习使用Open AI Whisper和Hugging Chat API实现视频文本摘要
本文作为数据科学博客马拉松的一部分发表。
视频摘要技术
视频分析
这涉及从视频中提取有意义的信息。使用深度学习来跟踪和识别视频中的对象和动作,并识别场景。一些流行的视频摘要技术包括:
关键帧提取和镜头边界检测
这个过程包括将视频转换为有限数量的静态图片。视频摘要是这些关键镜头的较短视频。
视频镜头是连续的一系列帧。镜头边界识别检测镜头之间的转换,如切换、淡入淡出或溶解,并选择每个镜头中的帧来构建摘要。以下是从较长的视频中提取连续的短视频摘要的主要步骤:
- 帧提取 – 从视频中提取快照,可以在30帧每秒的视频中采用1帧。
- 人脸和情绪检测 – 然后我们可以从视频中提取人脸并给人脸评分以检测情绪分数。使用SSD(单次多框检测器)进行人脸检测。
- 帧排序和选择 – 选择情绪得分高的帧,然后进行排序。
- 最终提取 – 我们从视频中提取字幕以及时间戳。然后,我们提取与上述选择的帧对应的句子,以及它们在视频中的起始和结束时间。最后,我们合并与这些时间间隔对应的视频部分,生成最终的摘要视频。
动作识别和时间子采样
在这种方法中,我们尝试识别视频中执行的人类动作,这是视频分析的广泛应用。我们将视频分解成小的子序列而不是帧,并尝试使用分类和模式识别技术(如隐藏马尔可夫链分析)来估计段落中执行的动作。
单模态和多模态方法
在本文中,我们使用单模态方法,即使用视频的音频来创建视频的摘要文本。我们将视频的一个方面,即音频,转换为文本,然后使用该文本生成摘要。
在多模态方法中,我们结合音频、视觉和文本等多种模态的信息,以获得对视频内容更准确的摘要的整体知识。
视频摘要的应用
在深入实施视频摘要之前,我们应该首先了解视频摘要的应用。以下是各个领域和领域中视频摘要的一些示例:
- 安全与监控:视频摘要可以帮助我们分析大量监控视频,获取重要事件的亮点,而无需手动查看视频。
- 教育与培训:可以通过提供关键笔记和培训视频,使学生能够在不浏览整个视频的情况下复习视频内容。
- 内容浏览:YouTube使用这个功能突出与用户搜索相关的视频重要部分,以便用户根据他们的搜索需求决定是否观看该特定视频。
- 灾难管理:在紧急情况和危机中,视频摘要可以根据视频摘要中突出显示的情况采取行动。
Open AI Whisper模型概述
Open AI的Whisper模型是一种自动语音识别(ASR)模型。它用于将语音音频转录为文本。

它基于Transformer架构,通过堆叠编码器和解码器块以及传递信息的注意机制。它将音频录制分成30秒的片段,并单独处理每个片段。对于每个30秒的录音,编码器对音频进行编码,并保留每个单词的位置,解码器使用这些编码信息确定说了什么。
解码器将期望来自所有这些信息的标记,这些标记基本上是每个发音的单词。然后它会重复这个过程,为下一个单词使用所有相同的信息,以帮助它识别更有意义的下一个单词。

视频文本摘要的编码示例

1 – 安装和加载库
!pip install yt-dlp openai-whisper hugchat
import yt_dlp
import whisper
from hugchat import hugchat
2 – 从YouTube视频链接提取音频
#用于保存来自YouTube输入视频id的音频的函数
def download(video_id: str) -> str:
video_url = f'https://www.youtube.com/watch?v={video_id}'
ydl_opts = {
'format': 'm4a/bestaudio/best',
'paths': {'home': 'audio/'},
'outtmpl': {'default': '%(id)s.%(ext)s'},
'postprocessors': [{
'key': 'FFmpegExtractAudio',
'preferredcodec': 'm4a',
}]
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
error_code = ydl.download([video_url])
if error_code != 0:
raise Exception('下载视频失败')
return f'audio/{video_id}.m4a'
#使用视频id调用函数
file_path = download('A_JQK_k4Kyc&t=99s')
3 – 使用Whisper将音频转录为文本
#加载Whisper模型
whisper_model = whisper.load_model("tiny")
#音频转录函数
def transcribe(file_path: str) -> str:
# `fp16`默认为`True`,告诉模型尝试在GPU上运行。
transcription = whisper_model.transcribe(file_path, fp16=False)
return transcription['text']
#使用音频文件路径调用转录函数
transcript = transcribe('/content/audio/A_JQK_k4Kyc.m4a')
print(transcript)
4 – 使用Hugging Chat对转录文本进行总结
请注意,要使用Hugging Chat API,我们需要在Hugging Face平台上登录或注册。之后,我们需要用我们的Hugging Face凭据替换“username”和“password”的位置。
from hugchat.login import Login
# 登录
sign = Login("username", "password")
cookies = sign.login()
sign.saveCookiesToDir("/content")
# 从usercookies加载cookies
cookies = sign.loadCookiesFromDir("/content") # 如果JSON文件存在,则会返回cookies,如果不存在,则会引发异常。
# 创建一个ChatBot
chatbot = hugchat.ChatBot(cookies=cookies.get_dict()) # 或者cookie_path="usercookies/<email>.json"
print(chatbot.chat("嗨!"))
#总结转录
print(chatbot.chat('''总结以下内容:'''+transcript))
结论
总的来说,总结的概念是信息管理中的一股变革力量。它是一种将大量内容浓缩为简明、有意义的形式的强大工具,以适应当今世界的快速消费。
通过集成像OpenAI的GPT-3这样的生成式AI模型,总结已经超越了其传统界限,演变成了一个不仅提取而且生成连贯、上下文准确的摘要的过程。
进入视频总结的旅程揭示了它在各个领域的相关性。通过将音频提取、使用Whisper进行转录和通过Hugging Face Chat进行总结的实现,可以无缝地创建视频文本摘要。
重点
1. 生成式AI:可以使用像LLMs和ASR这样的生成式AI技术来实现视频总结。
2. 应用领域:视频总结在许多重要领域中都非常有益,其中需要分析大量视频以获取重要信息。
3. 基本实现:在本文中,我们探讨了基于音频维度的视频总结的基本代码实现。
4. 模型架构:我们还了解了Open AI Whisper模型的基本架构及其流程。
常见问题
本文中显示的媒体不归Analytics Vidhya所有,仅供作者自行决定使用。