使用Python进行YouTube视频摘要

2025年1月4日 | 阅读 4 分钟

引言

我想知道你是否也一样,但每当我空闲时,我经常花费数小时在 YouTube 上观看各种各样的电影。视频,例如“成功的 7 个秘诀”、“10 个最有用的机器学习工具”,甚至“伦敦最美的 5 个地方”也经常包含在内。

为了让视频播放时间更长并吸引更多观众,人们在您打开视频后,并没有直接告诉您想要知道的内容,而是开始了一个没完没了的独白。

然而,有时,似乎像变魔术一样,您会在评论中发现一位好心人总结了电影并为您提供了要点列表,这样您就不必浪费三十分钟(或十五分钟两次)盯着它看了!

因此,有一天我有了这个想法:“既然我擅长机器学习,我不能让这些视频自动被总结吗?”

在本文中,我将讨论我尝试构建一个功能性但略有缺陷的小型 Python 程序。

从 YouTube 下载音频

我们必须首先弄清楚如何下载 YouTube 视频。实际上,我们只需要音频,而不需要整个视频。因此,在从视频中提取音频后,我们将仅下载音频。

因此,我们使用 pip 安装库,并使用以下方法从 YouTube 获取音频。

说明

该脚本使用 pytube 库从特定的 YouTube 视频下载 MP4 格式的音频。首先从 Python 导入 YouTube 类,并指定视频的 URL。yt.filter(file_extension='mp4', only_audio=True).initially().The download(filename='ytaudio.mp4') 行通过仅按文件名 ytaudio.mp4 过滤可用流来下载 MP4 格式的音频。

将 MP4 转换为 WAV 并检查音频

音频文件是否已正确下载?通过直接从笔记本发送音频,让我们来验证一下。

说明

此脚本使用 ffmpeg(具有特定的音频编解码器 pcm_s16le)和 16 kHz 的采样率将 MP4 音频文件转换为 WAV 格式。使用 librosa 库,它使用转换后的 WAV 文件来测量其音频采样率。转换命令确保音频与需要给定采样率和 WAV 格式的程序兼容。

音频到文本

为了实现低的词错误率,必须将录音转换为文本。这将很有帮助,因为文本可以被 NLP 算法立即处理以进行摘要。

有关我们将用于文本到文本转换的模型,可以在此处找到更多信息。

说明

使用预训练的 Wav2Vec2 模型,此应用程序使用 huggingsound 库进行语音到文本转录。在设置好计算设备(如果可用则为 GPU,否则为 CPU)后,便初始化语音识别模型。使用 librosa 库,音频文件以 30 秒的段落进行处理,并为每个片段存储为单独的 WAV 文件。之后,处理每个 WAV 文件,并将所有转录文本合并成一个单独的文本字符串,以创建音频文件的完整转录。

文本摘要

唯一剩下要做的就是总结我们从电影中提取的文本。

只需在摘要按钮上选择 hugging face 过滤器,即可从数百种可用模型中选择最适合您情况的摘要模型。

我将在本项目中使用 Google/Pegasus-Xsum 方法。模型的具体信息可以在此处找到;我将在未来的出版物中讨论这些摘要方法的理论。

使用 HugginFace 的这些预训练模型非常容易;只需看看我在几行代码中如何使用摘要即可。

说明

此应用程序将大文本分解成 1000 个字符的片段,并使用 Google Pegasus XSum 模型对其进行摘要。通过迭代地将每个片段分解成一个简洁的摘要,然后将这些摘要编译成原始文本的最终、浓缩版本。


下一主题Python 数字