CTRL-F-VIDEO 是一个开源项目,使用户能够在视频中搜索特定的单词或短语。
这个项目主要针对YouTube视频,通过一个Chrome扩展来实现搜索功能。用户在YouTube视频页面通过扩展输入想要搜索的词汇,可以直接在视频时间条上标记出匹配的词汇或相似词汇的出现位置。
例如,如果你在观看一个讲座视频,想要找到讲师提到“全球变暖”的部分,只需要在这个扩展中输入“全球变暖”,就可以看到所有提到这个短语的时间点。这个功能尤其适合学习和研究使用,可以帮助你节省查找信息的时间。
主要功能
- 文本搜索和时间条标记: 用户可以在YouTube视频中搜索特定的词汇或短语,并在视频的时间条上用不同颜色标记出直接匹配和相似匹配的词汇。
- 直接匹配: 在视频中直接出现的词汇用绿色标记。
- 相似匹配: 基于Levenshtein距离或音素距离显示的相似词汇用紫色标记(准确度较低)。
- 音素完全匹配: 音素完全相同的匹配用橙色标记(偶尔有效)。
- 音频到文本转换: 利用OpenAI的Whisper模型将视频中的音频转换为文本,从而实现准确的搜索和匹配。
- 结果存储: 对于每一个搜索过的YouTube URL,搜索结果会被存储在json文件中,便于之后再次访问该视频时快速获取之前的搜索结果。
工作原理
- Chrome扩展: 用户首先需要将CTRL-F-VIDEO项目作为Chrome扩展加载到浏览器中。这个扩展提供了一个用户界面,让用户可以输入他们想要在视频中搜索的词汇。
- Flask API: 通过运行一个Python应用,启动一个Flask API,这个API允许本地的Whisper模型在用户的GPU上运行。这一步骤是必要的,因为它处理音频到文本的转换,并支持搜索功能。
- 视频处理: 当用户在YouTube视频页面使用该扩展并输入搜索词后,Flask API会处理视频中的音频,将其转换为文本,并寻找匹配的词汇。
- 结果显示: 匹配的词汇会根据其类型(直接匹配、相似匹配、音素匹配)在视频的时间条上以不同颜色标记。
效率
该项目能够在高性能的GPU(如RTX 3090)上处理一个5分钟的视频仅需约16秒,显示了其高效的处理能力和快速的响应时间。
虽然该项目还处于很初级的阶段,偶尔不是很奏效,但是提供了一个很好的思路。