构建LangChain应用程序的示例代码:3、如何使用Langchain库中的VideoCaptioningChain来生成视频字幕的教程(Video Captioning)

视频字幕生成

这个笔记本展示了如何使用VideoCaptioningChain,它是通过Langchain的ImageCaptionLoader和AssemblyAI实现的,用于生成.srt文件。

这个系统能够自动从视频URL生成字幕和隐藏字幕。

安装依赖

!pip install ffmpeg-python

!pip install assemblyai

!pip install opencv-python

!pip install torch

!pip install pillow

!pip install transformers

!pip install langchain

导入

import getpass

from langchain.chains.video_captioning import VideoCaptioningChain
from langchain.chat_models.openai import ChatOpenAI

设置API密钥

OPENAI_API_KEY = getpass.getpass("OpenAI API密钥:")

ASSEMBLYAI_API_KEY = getpass.getpass("AssemblyAI API密钥:")

必需参数:

  • llm:这个链将使用的语言模型,用于获取如何改进隐藏字幕的建议。
  • assemblyai_key:AssemblyAI的API密钥,用于生成字幕。

可选参数:

  • verbose(默认:True):为下游链调用设置详细模式。
  • use_logging(默认:True):在运行管理器中记录链的过程。
  • frame_skip(默认:None):选择在处理期间跳过多少视频帧。增加它将加快执行速度,但结果可能不够准确。如果为None,则根据帧率手动计算帧跳过。将其设置为0以采样所有帧。
  • image_delta_threshold(默认:3000000):设置图像处理器认为视频中场景变化的灵敏度,用于分隔隐藏字幕。数值越高 = 灵敏度越低。
  • closed_caption_char_limit(默认:20):设置隐藏字幕的字符限制。
  • closed_caption_similarity_threshold(默认:80):设置两个隐藏字幕模型应有多相似,才能被聚类为一个更长的隐藏字幕的百分比值。
  • use_unclustered_video_models(默认:False):如果为true,无法聚类的隐藏字幕将被包括在内。可能会导致隐藏字幕出现自发行为,例如持续时间非常短的字幕或快速变化的字幕。启用此功能是实验性的,不推荐使用。

示例运行

# 示例视频链接
chain = VideoCaptioningChain(
    llm=ChatOpenAI(model="gpt-4", max_tokens=4000, openai_api_key=OPENAI_API_KEY),
    assemblyai_key=ASSEMBLYAI_API_KEY,
)

srt_content = chain.run(
    video_file_path="https://ia601200.us.archive.org/9/items/f58703d4-61e6-4f8f-8c08-b42c7e16f7cb/f58703d4-61e6-4f8f-8c08-b42c7e16f7cb.mp4"
)

print(srt_content)

将输出写入.srt文件

with open("output.srt", "w") as file:
    file.write(srt_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hugo_Hoo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值