构建LangChain应用程序的示例代码:3、如何使用Langchain库中的VideoCaptioningChain来生成视频字幕的教程(Video Captioning)
这个笔记本展示了如何使用VideoCaptioningChain,它是通过Langchain的ImageCaptionLoader和AssemblyAI实现的,用于生成.srt文件。这个系统能够自动从视频URL生成字幕和隐藏字幕。
·
视频字幕生成
这个笔记本展示了如何使用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)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献9条内容
所有评论(0)