Twelve Labs
扫码查看

理解视频内容的多模态AI

Twelve Labs

综合介绍

Twelve Labs是一个为开发者和企业设计的AI平台,其核心技术是理解视频内容。传统的软件主要通过手动添加的标签或元数据来识别视频,但这种方法既费时又无法捕捉视频中的全部信息。Twelve Labs的AI可以直接“观看”和“聆听”视频内容,像人一样理解其中的场景、物体、动作、人物对话和背景声音。它通过先进的多模态AI模型,将视觉信息和音频信息结合起来进行分析,实现了用自然语言(比如,用一句话描述)来精确搜索视频中的特定片段。开发者可以通过其提供的API接口,将这种强大的视频理解能力集成到自己的应用程序中,用于媒体资产管理、内容审核、智能监控等多个领域,让处理和使用海量视频数据变得简单高效。

功能列表

  • 多模态搜索:支持使用自然语言、文本、图片或另一段视频来搜索视频库,能够精准定位到包含特定动作、物体或对话的视频片段。
  • 视频分析与摘要:能够自动生成视频内容的摘要、标题、标签和章节,帮助用户快速了解视频核心内容。
  • 向量生成(Embeddings):提供API,可将视频、音频、图像和文本内容转换成统一的向量表示,用于构建复杂的跨模态搜索和推荐系统。
  • 可定制化模型:企业用户可以根据自身业务场景,使用自有数据对AI模型进行微调,使其成为特定领域的专家。
  • 灵活部署:支持在公有云、私有云或本地服务器上部署,满足不同企业的安全和合规需求。
  • 开发者工具:提供包括Python和Node.js在内的软件开发工具包(SDK)和清晰的API文档,方便开发者快速集成。

使用帮助

Twelve Labs为开发者提供了一套完整的工具,通过其API可以实现对视频内容的深度理解和搜索。以下是上手使用Twelve Labs平台的基本流程和操作说明。

第一步:注册账户并获取API密钥

要开始使用Twelve Labs,你首先需要一个账户和API密钥用于身份验证。

  1. 访问Twelve Labs的官方网站 https://twelvelabs.io/
  2. 点击页面右上角的“Playground”或寻找注册入口,创建一个免费账户。
  3. 登录后,在你的账户仪表盘(Dashboard)中找到API密钥(API Key)。这个密钥是访问API的唯一凭证,请妥善保管。

第二步:设置开发环境

Twelve Labs提供了官方的Python和Node.js SDK,可以简化API的调用过程。这里我们以Python为例进行说明。

首先,你需要安装twelvelabs Python库。打开你的终端或命令行工具,输入以下命令:

pip install twelvelabs

安装完成后,你就可以在Python代码中开始使用它了。

第三. 步:核心操作流程

使用Twelve Labs API的核心流程分为三步:创建索引、上传并索引视频、执行搜索。

1. 创建索引 (Index)

“索引”可以理解为一个项目或一个视频库,你将要把视频上传到这个索引中进行管理和分析。创建索引时,你需要指定使用哪个AI模型以及需要分析的视频维度(例如,视觉、音频)。

以下是创建一个索引的Python代码示例:

from twelvelabs import TwelveLabs
# 使用你的API密钥初始化客户端
client = TwelveLabs(api_key="<YOUR_API_KEY>")
# 创建一个名为 "my-first-index" 的索引
# 这里我们选用 marengo2.7 模型,并指定分析视频的视觉和音频信息
index = client.index.create(
name="my-first-index",
models=[
{
"name": "marengo2.7",
"options": ["visual", "audio"],
}
]
)
# 打印出新创建索引的ID和名称
print(f"已创建索引: id={index.id} name={index.name}")

index.id是这个索引的唯一标识符,后续操作中会频繁用到。

2. 索引视频 (Task)

创建好索引后,下一步就是将你的视频添加进去。这个过程被称为“索引视频”,通过创建一个“任务”(Task)来完成。你可以提供一个公开可访问的视频URL,或者直接上传视频文件。

以下是使用视频URL创建索引任务的示例:

# 确保你已经创建了索引并获得了 index.id
# client = TwelveLabs(api_key="<YOUR_API_KEY>")
# 在指定的索引中创建一个任务来索引视频
task = client.task.create(
index_id=index.id, 
url="<YOUR_VIDEO_URL>", # 替换成你的视频链接
language="zh" # 可以指定视频中的语言,以提高语音识别准确率
)
print(f"已创建任务: id={task.id}")
# 等待任务完成
# 任务处理需要时间,SDK提供了便捷的等待函数
# 你可以通过回调函数实时查看任务状态
task.wait_for_done(
sleep_interval=5, # 每5秒检查一次状态
callback=lambda t: print(f" 任务状态={t.status}")
)
# 检查任务最终状态
if task.status != "ready":
raise RuntimeError(f"视频索引失败,状态为 {task.status}")
print(f"上传和索引完成。你的视频ID是 {task.video_id}")

当任务状态变为ready时,意味着视频已经处理完毕,可以被搜索了。

3. 执行搜索

视频索引完成后,最激动人心的部分就是用自然语言来搜索它。你可以提出非常具体的问题或描述一个场景。

以下是如何执行搜索操作的示例:

# 确保视频索引已完成
# client = TwelveLabs(api_key="<YOUR_API_KEY>")
# index_id = index.id
# 在指定的索引中执行搜索
# query_text 可以是任何自然语言描述
search_results = client.search.query(
index_id=index.id,
query_text="一个男人在沙滩上跑步", # 替换成你想搜索的内容
options=["visual", "audio"] # 指定搜索范围
)
# 遍历并打印搜索结果
print("搜索结果:")
for clip in search_results.data:
print(
f"  视频ID: {clip.video_id}, "
f"相关度分数: {clip.score:.2f}, "
f"片段开始时间: {clip.start:.2f}s, "
f"片段结束时间: {clip.end:.2f}s, "
f"置信度: {clip.confidence}"
)

搜索结果会返回一个列表,其中包含了所有相关的视频片段。每个片段都有其在原视频中的开始和结束时间戳,以及一个相关度分数,分数越高代表与你的搜索描述越匹配。

通过以上三个核心步骤,你就完成了一次从建立视频库到内容搜索的全过程。你可以随时向索引中添加更多视频,并对整个库进行搜索。

应用场景

  1. 媒体和娱乐对于拥有大量视频素材的媒体公司,可以快速从存档中找到特定场景的镜头用于新闻报道、纪录片制作或电影剪辑。例如,编辑可以搜索“日落时分的城市天际线”或“两个人握手的特写镜头”,而无需手动浏览数小时的录像带。
  2. 内容审核社交媒体平台或视频网站可以利用Twelve Labs的AI自动检测和标记不当内容,如暴力、仇恨言论或违禁品。AI能够理解视频中的视觉和音频信息,从而实现比传统关键词过滤更精准、更高效的自动化审核。
  3. 智能安防在安防监控领域,该技术可以用于快速检索特定事件。安保人员不再需要回看整天的监控录像,而是可以直接搜索“一个穿红色上衣的人在下午3点进入大楼”或“一辆蓝色卡车停在了仓库门口”,系统会立即返回相关视频片段。
  4. 广告科技广告商可以分析视频内容,了解品牌Logo或产品在视频中出现的具体场景和时长,从而评估广告投放的效果。同时,也可以根据视频内容的相关性,在视频旁精准匹配和投放广告,提升转化率。

QA

  1. Twelve Labs支持处理哪些类型的视频?Twelve Labs的API可以处理大多数常见的视频格式。由于它是通过URL或文件上传进行处理的,所以只要视频可以被服务器访问到,格式本身通常不是问题。同时,它可以分析视频中的多种语言,包括中文,你可以在上传时指定视频语言以提升语音识别的准确性。
  2. 搜索的准确性如何?Twelve Labs使用了先进的多模态AI模型(如Marengo和Pegasus),这些模型同时理解视觉、音频和文本信息,能够捕捉上下文,因此搜索的准确性非常高。它不仅仅是基于关键词匹配,而是真正理解查询语句背后的“语义”。当然,结果的精确度也和你提供查询描述的清晰度有关。
  3. 使用Twelve Labs的成本高吗?Twelve Labs提供分层定价模式。它有一个免费套餐,允许开发者每月索引一定时长的视频,非常适合用于测试和小型项目开发。对于需要处理大量视频的企业,则提供付费的“开发者”和“企业”套餐,根据索引的视频时长和高级功能收费。
  4. 我的视频数据安全吗?对于企业级用户,Twelve Labs提供包括私有云和本地化部署在内的多种选项。这意味着你可以将整套系统部署在自己的服务器上,视频数据无需离开你的基础设施,从而最大限度地保障数据的安全性和隐私性。
微信微博Email复制链接