WebVTT (.vtt) 或网络视频文本轨格式是一种广泛支持的视频字幕格式。在本指南中,您将学习如何使用 Node.js 和 AssemblyAI API 为视频创建 WebVTT 文件。
步骤 1:设置开发环境
首先,在您的系统上安装 Node.js 18 或更高版本。创建一个新项目文件夹,切换到该目录,并初始化一个新的 Node.js 项目:
mkdir vtt-subtitles
cd vtt-subtitles
npm init -y
打开 package.json 文件,并添加 type: "module",
到属性列表:
{
...
"type": "module",
...
}
这将告诉 Node.js 使用 ES 模块语法来导出和导入模块。然后,安装 AssemblyAI JavaScript SDK:
npm install --save assemblyai
接下来,从您的 仪表盘 获取一个 AssemblyAI API 密钥。将其设置为 ASSEMBLYAI_API_KEY
环境变量:
# Mac/Linux:
export ASSEMBLYAI_API_KEY=<YOUR_KEY>
# Windows:
set ASSEMBLYAI_API_KEY=<YOUR_KEY>
步骤 2:转录您的视频
开发环境准备就绪后,开始转录您的视频文件。使用 这个示例视频 进行练习。创建一个名为 index.js
的文件,并添加以下代码:
import { AssemblyAI } from 'assemblyai';
const client = new AssemblyAI({ apiKey: process.env.ASSEMBLYAI_API_KEY });
const transcript = await client.transcripts.transcribe({
audio: "https://storage.googleapis.com/aai-web-samples/aai-overview.mp4",
});
如果转录成功,transcript
对象将被填充。验证并记录任何错误:
if (transcript.status === "error") {
throw new Error(transcript.error);
}
步骤 3:生成 WebVTT 文件
以 WebVTT 格式生成字幕。导入必要的模块以将 WebVTT 文件保存到磁盘:
import { writeFile } from "fs/promises"
添加以下代码以生成并下载 VTT 文件:
const vtt = await client.transcripts.subtitles(transcript.id, "vtt");
await writeFile("./subtitles.vtt", vtt);
如果需要,自定义每个字幕的最大字符数:
const vtt = await client.transcripts.subtitles(transcript.id, "vtt", 32);
await writeFile("./subtitles.vtt", vtt);
步骤 4:运行脚本
从您的 Shell 运行脚本:
node index.js
执行后,您将在磁盘上找到一个新的 subtitles.vtt
文件:
WEBVTT
00:00.200 --> 00:04.430
AssemblyAI 正在构建 AI 系统,帮助您构建 AI 应用程序
00:04.462 --> 00:08.694
利用口语数据。 我们创建了超人类 AI 模型用于语音识别,
00:08.774 --> 00:13.062
摘要,高级语言模型扩展口语数据等
接下来的步骤
现在您有了字幕文件,可以在视频播放器中配置它,或者将其上传到 YouTube Studio。此外,可以探索其他工具来捆绑或烧录字幕到您的视频中。查看 AssemblyAI 的 音频智能模型和 LeMUR,以便在您的音频和视频应用中获得更多功能。
有关更多教育内容,请访问 AssemblyAI 博客 或他们的 YouTube 频道。
Image source: Shutterstock