使用智谱AI大模型翻译视频字幕

2024-09-06 11:22:47 浏览数 (3)

不久前,国内的头部大模型厂商智谱 AI ,刚刚推出了 glm-4-0520 模型,该模型被认为是当前平台最先进的模型,具备 128k 的上下文长度,并且相较于前一代模型,指令遵从能力大幅提升 18.6%。可以看出,智谱AI对于该模型寄予厚望。

为了验证这个大模型的性能,我们尝试用它来实现【视频字幕翻译】功能。目前很多视频网站(如B站)上面,大量优质内容都是英文的,并且也没有配备中文的字幕翻译,这对于很多人来说,大大降低了观看体验。因此,我们决定利用大模型,将视频的字幕翻译成中文,这样就可以快速理解视频的大致内容,大幅提升工作与学习效率。

下面,我们以 B站 上的视频为例,来实现这个功能。视频链接:https://www.bilibili.com/video/BV1g84y1R7oE/?vd_source=2fd71d56662056b97691b4d7bdf39151

话不多说,开始写代码。

现在很多视频网站都提供了 OpenAPI,支持获取视频和字幕等相关信息。为了方便开发,我们直接采用 LangChain 封装好的 BiliBiliLoader 来实现视频字幕的加载功能:

首先,我们需要在浏览器登录B站,并且浏览器的开发者工具,获取SESSDATA、JCT 和 BUVID3信息,并保存到环境变量中:

代码语言:javascript复制
# B站相关配置
BiliBili_SESSDATA=xxx
BiliBili_JCT=xxx
BiliBili_BUVID3=xxx

接下来,我们通过 BiliBiliLoader 工具,加载该视频对应的字幕文本:

代码语言:javascript复制
import os

import dotenv
from langchain_community.document_loaders import BiliBiliLoader

# 加载环境变量
dotenv.load_dotenv()

# 创建B站字幕文档加载器
loader = BiliBiliLoader(
    video_urls=["https://www.bilibili.com/video/BV1g84y1R7oE/"],
    sessdata=os.getenv("BiliBili_SESSDATA"),
    bili_jct=os.getenv("BiliBili_JCT"),
    buvid3=os.getenv("BiliBili_BUVID3"),
)

# 加载完整字幕
full_caption = loader.load()
print(f"完整字幕: {full_caption[0].page_content[:1000]}")

部分字幕内容如下:

完整字幕: Video Title: Let’s Learn English on a Hike!

1 人点赞