开发指南 · 研究人员

如何用 YouTube 字幕构建多语言语音数据集

书面语料无法充分反映人们实际的说话方式,在出版文本稀少的语言和方言中尤其如此。YouTube 上几乎有每种语言的对话式口语。带词级时间的字幕能把它变成可用的研究数据。

适合谁
计算语言学家、NLP 实验室、AI 评测团队
开发周期
1 个月
API 接口
/transcripts/{video_id}/languagesasr_options.codeSwitchingformat.words

它解决什么问题

研究口语、语码转换或低资源语言的人员,很难找到足够自然的对话数据。许多视频没有字幕,而现有字幕又混杂了质量参差的人工和自动来源。团队需要一条统一的流水线,能处理多种语言,并记录每份字幕的来源。

第一版应该包含哪些功能

  • 检测每个视频可用的字幕语言
  • 为无字幕视频提供 99 种语言的 AI 语音识别
  • 支持混合多种语言讲话的语码转换
  • 用于对齐的词级时间戳
  • 每份字幕都附语言和字幕来源元数据

分步实现指南

  1. 01

    寻找候选视频

    解析已知包含目标语言的频道或播放列表,并调用 /transcripts/{video_id}/languages 查看有哪些字幕轨道。

  2. 02

    优先使用现有字幕

    有人工字幕时就获取人工字幕,因为它们通常最准确。

  3. 03

    用语音识别补缺

    对没有字幕的视频,请求 ASR 并指定语言或自动检测;对混合语言的讲话启用 codeSwitching。

  4. 04

    连同对齐数据一起存储

    请求 format.words 获取词级时间戳,并将每份字幕的语言和来源与文本一起存储。

入门代码

这个创意基于“方案 3:把播放列表批量导入知识库”模式。替换成你自己的频道、提示词和存储即可。

import requests

API = "https://www.youtubetranscript.dev/api/v2"
HEADERS = {"Authorization": "Bearer yt_sk_live_YOUR_KEY"}

playlist = requests.post(f"{API}/playlists/resolve", headers=HEADERS,
                         json={"playlist_url": "https://www.youtube.com/playlist?list=PLAYLIST_ID",
                               "limit": 100}).json()

ids = [v["video_id"] for v in playlist["items"]]
batch = requests.post(f"{API}/batch", headers=HEADERS, json={
    "video_ids": ids,
    "format": {"timestamp": True, "paragraphs": True},
}).json()

# Large batches run async: poll GET /batch/{batch_id} until status is "completed"
for r in batch.get("results", []):
    if r["status"] == "completed":
        for p in r["data"]["transcript"].get("paragraphs") or []:
            store(video_id=r["video_id"], start=p["start"], text=p["text"])  # your vector DB

为什么值得做

实验室和 AI 团队能以低成本获得原本采集代价高昂的语言的评测和研究数据。针对特定语言或领域、整理干净且文档完善的数据集,对模型开发者也很有价值。

需要避开的坑

  • 把自动字幕当作标准答案:标注来源,并人工抽样验证。
  • 混合方言却没有元数据:记录频道和地区,结果才能被正确解读。
  • 忽视授权问题:在重新分发任何数据集之前,先确认平台条款和版权。

关于这个创意的问题

语音识别支持多少种语言?

AI 语音识别支持 99 种语言,具备自动语言检测功能,并可选启用语码转换以处理混合语言的讲话。

能获取词级时间戳吗?

能。请求 format.words 即可获得每个词的时间信息,适用于对齐和语音学研究。

基于 YouTube 构建的数据集可以重新分发吗?

这取决于 YouTube 的条款、版权法和你所在机构的政策。许多研究人员分享的是视频 ID 和代码,而不是字幕本身。

今天就开始开发

每月 10 个免费额度,无需信用卡。

如何用 YouTube 构建多语言语音数据集 | YouTubeTranscript.dev