개발 가이드 · 연구자

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