はじめに
動画ファイルに半自動的に字幕をつける方法についてまとめる。
今回、文字起こしには「AWS Transcribe」を使った。12ヶ月限定の無料枠もあり、そうでなくてもそこまでの料金は設定されておらず、手軽に使える。
特に、SRTファイルを出力できるため、字幕作成にはとても有用なサービスとなっている。
また、動画に字幕を追加する作業は、ffmpegを使い、ローカル環境で実行する。
検証環境 (字幕追加作業用)
- MacBook Air (M1, 2020) macOS Monterey 12.4
手順
以下の流れで動画に字幕を追加する。
- Speech-To-Textと字幕ファイルの生成
- 字幕の修正
- 動画に字幕を追加
1. Speech-To-Textと字幕ファイルの生成
動画 (MP4ファイル) に音声認識をかけて字幕ファイル (SRTファイル) を生成する。今回この文字起こしには前述の通り「AWS Transcribe」を使う。
まず、対象の動画ファイル (ここでは input.mp4
) を適当なS3へ格納する。
次に、AWS Transcribe から文字起こしを行う。
「Transcription job」を作成する。日本語音声のため、「Language」は「Japanese」を選択。
「Input data」で、先ほどS3へ格納したMP4ファイルを選択する。
「Output data」の「Subtitle file format」で、今回必要なSRTファイルが出力されるよう「SRT」にチェックを入れる。
次ページのConfigure jobも含めその他は既定値のままで「Create job」をし、Jobをスタートさせる。
完了すると、jobの画面で実行結果を確認できる。
また、「Transcription preview」で認識結果のテキストやSRTファイルのプレビューも可能。右上の「Download」からSRTファイルをダウンロードする。
2. 字幕の修正
自動音声認識による字幕生成であるため、一部誤認識となった部分も含まれていることがある。
任意でSRTファイルを修正する。
3. 動画に字幕を追加
「ffmpeg」を使い、動画に字幕を追加する。
- 元とする動画ファイル
input.mp4
- 字幕ファイル
srtSubtitles.srt
- 字幕をつけた動画ファイル
output.mp4
ffmpeg -i input.mp4 -i srtSubtitles.srt \
-c copy -c:s mov_text \
-metadata:s:s:0 language=jpn \
output.mp4
再生
QuickTime Player等、字幕再生に対応している動画プレイヤーで再生すると、このように字幕を表示させることができる。
まとめ
AWS Transcribeとffmpegを使って字幕を追加する方法についてまとめた。音声認識の精度もそれなりに高く、このようにSRTファイルも出力できるため、字幕追加の作業がスムーズになった。