日本語の動画に英語字幕と英語音声を自動で付与する方法をまとめました。Azure OpenAI ServiceのWhisperとSpeech Servicesを使用します。

概要

今回の目的は、日本語音声の動画を以下のように多言語対応させることです:

  • 日本語版 : 元の動画(日本語音声、字幕なし)
  • 英語版 : 英語音声 + 英語字幕

使用サービス

サービス用途
Azure OpenAI Service (Whisper)日本語音声 → 英語テキストへの翻訳
Azure Speech Services (TTS)英語テキスト → 英語音声の合成
FFmpeg音声抽出・動画結合

手順

1. 環境準備

必要なツール

#b#priFePpFwymtipihnenosgsnttaallllpfyftmhmpoaencg-OdSotenvrequests

Azure設定(.env)

AAAAZZZZUUUURRRREEEE____OOOOPPPPEEEENNNNAAAAIIII____EADANPEPDIPIP_L_OKOVIEYENYMRT=ES=yNIhoTOtu_NtrN=p-A2saM0:pE2/i=4/-w-xkh0xei6xys-xp0xe1.ropenai.azure.com

2. 動画から音声を抽出

Azure Whisper APIには25MBのファイルサイズ制限があるため、音声を圧縮して抽出します。

ffmpeg-iinput.mp4vn-acodeclibmp3lame-b:a64k-ar16000audio.mp3

3. Whisperで英語字幕を生成

Azure OpenAI ServiceのWhisper APIを使用して、日本語音声を英語に翻訳しながら文字起こしします。

iuh}w#wmreiiplatStodhRhr=e"fdrTftraoiaeo.fsppltspwr"ieeapere{=-nsoniqAk(=n(tuZ{e"=s"eeUya{es(sR"u{"urtE:d"r=bes_ifetsEAoisripNZ.lpetoDUmeoqlnPRp"nuesOE3:seseI_"es_.NA,a_tetTPufsne}I"do..x/_rirpstoKbomor)pE"_asteY)ftt"n,i"(,aal:uiser"/}"lwdas,"eur)pdthli"eaoo}asy_dmfefei#r:nlsteS=s:Rh/Tewahdiesrpse,r/faiuldeiso=/ftirlaenss,ladtaitoan=sd?aatpai)-version=2024-06-01"

ポイント : translationsエンドポイントを使用すると、日本語音声が直接英語テキストに翻訳されます。

4. Speech Servicesで英語音声を生成

生成された字幕テキストをAzure Speech Servicesで音声合成します。

uh}srres/elamssdlpp=e"""eorOCX=anfsco-oks"pnMfio>eh=-ti"c{i"tAec"etc"=t{pnr"ee"pito<nx>rsm-ssate:-Topm}q/Syfeeu/upta=e{be-k'sRs"OetEc:uvnsGrte-.Ii"prUpOpausSoNtpti-s}ipFoJt.olone(tnir=nut-cm'nrsKaa1yl.ett.N,syi"0ep"o:'uhe:nree/"xaacAsamldhPsul'e.Imdn>rm_lissiK+o==cEx-'hrYm1heo,l6tas"ktdo,hpefz:rt-/s.1/,c2wo8wdmkwa/b.tciwaot3=gr.snaositrmtegli-/.vm2eeo0nsn0ceo1or-/dvm1eip0(c3/'e"sus,yt/nfvt-1h8"e's)i)s'xml:lang='en-US'>

5. タイミングを同期した音声を作成

字幕のタイムスタンプに合わせて音声を配置するため、以下の処理を行います:

  1. 各字幕セグメントごとに個別の音声を生成
  2. タイムスタンプに基づいて無音を挿入
  3. 全セグメントを結合
#fors#i#t#iufefbTxtgTtaiacS_cs#tprttpleouefe>a_aeftsldmi0ep_pn:_ed=eseugsicraulhacabe(ttttnsiueicu調oamtebnlpl(t_oegi>dsatu:plsr,eea[gts'miiteolenn調extnt_/c'de]us_,repagastmtpieheon)entc:_hd_upraatthi)on

6. 英語版動画を作成

最後に、元動画の映像と英語音声を結合します。

ffmpe-ogcu:t-vpiuctoo_rpeiyng.i-mnmpaa4lp.m0p:4v:-0i-emnagpli1s:ha_:a0ud-isoh.omrpt3es\t\

生成されるファイル

ファイル説明
original.mp4日本語版(元動画)
output_en.mp4英語版(英語音声入り)
subtitles_en.srt英語字幕ファイル

YouTubeへのアップロード

日本語版

  • 元動画をそのままアップロード

英語版

  1. 英語音声入り動画をアップロード
  2. YouTube Studio → 字幕タブでSRTファイルを追加

費用について

サービス料金(目安)
Azure OpenAI Whisper$0.006 / 分
Azure Speech Services$16 / 100万文字

8分程度の動画で数十円程度です。

まとめ

Azure OpenAI ServiceのWhisperとSpeech Servicesを組み合わせることで、日本語動画の英語化を自動化できます。

メリット :

  • 高精度な翻訳(Whisperの翻訳機能)
  • 自然な英語音声(Neural TTS)
  • タイムスタンプ付き字幕の自動生成

注意点 :

  • 音声の長さと字幕タイミングの調整が必要
  • 専門用語や固有名詞は手動で修正が必要な場合あり

リポジトリ構成

..gggvdegeeeianinnnetvteeewairrre/oosagaaarruuunttt.itbdoeeehgptir___tiuioesasmntt_uuyla_lebdnleentic.ns.ioem._mt.dpmeplp_4pn3eya4.sus.drpityo.py#######Adzautrae/git