この記事の内容

  • OpenAIのWhisperという音声認識エンジンを使って、動画から字幕ファイル(SRT形式)を完全無料で自動生成する方法を紹介します
  • GitHubで公開されているPythonプログラム「VideoToSRT」を使えば、コマンド1行で字幕ファイルが作成できます
  • 有料ソフト顔負けの高品質な音声認識精度を、オープンソースで実現しています
  • 生成した字幕ファイルは、無料の動画編集ソフト「DaVinci Resolve」で動画に合成できます
  • 字幕作成から動画編集まで、すべて無料のツールで完結させるワークフローを解説します

OpenAI Whisperとは

Adobe Premiere ProなどのクラウドAI機能を使った字幕生成は精度が高い一方で、月額費用が発生するため気軽に使いにくいという課題があります。また、他の字幕ソリューションも精度に難があるものが多く、結局手作業の割合が多くなってしまいがちです。

そこで今回紹介するのが、OpenAIが開発した音声認識エンジン「Whisper」です。Whisperはオープンソースで公開されており、無料で使用できます。その認識精度は有料サービスをも上回ると言われており、日本語の音声も高い精度で文字起こしができます。


事前準備:Pythonのインストール

Whisperを使った字幕生成プログラムはPythonで動作します。あらかじめPythonをインストールしておいてください。Pythonがインストールされていない場合は、先にセットアップを済ませてから次のステップに進んでください。


プログラムの取得

今回使用するプログラムは「VideoToSRT」という名前でGitHubに公開されています。リポジトリはパブリックになっていますので、誰でも無料で利用できます。

Gitを使う場合:

gitclone<URL>

Gitに慣れていない場合:

GitHubのリポジトリページを開き、「Download ZIP」からZIPファイルをダウンロードします。ダウンロードしたZIPファイルを右クリックし、プロパティを開いてセキュリティのブロックを解除しておきましょう。その後、右クリックメニューから「すべて展開」を選んでファイルを展開します。


前提条件のインストール

展開したフォルダをエクスプローラーで開き、アドレスバーに cmd と入力してEnterキーを押します。そのフォルダをカレントディレクトリとしてコマンドプロンプトが起動します。

次のコマンドを実行して、必要なライブラリをインストールします。

pipinstall-rrequirements.txt

この中にWhisper本体も含まれています。初回は必要なパッケージのダウンロードが発生するため、少し時間がかかります。


字幕ファイルの生成

準備ができたら、以下のコマンドを実行して字幕ファイルを生成します。

pythonVideoToSRT.py<><>.srt

動画ファイルのパスは、エクスプローラー上でSHIFTキーを押しながら右クリックして「パスのコピー」で取得できます(Windows 10の場合も同様の手順で可能です)。

実行例:

pythonVideoToSRT.py"C:\Users\user\Videos\sample.mp4"output.srt

処理時間について

初回実行時は、Whisperのモデルファイルをダウンロードするところから始まるため、通常より時間がかかります。2回目以降もモデルのサイズが大きいぶん、処理には動画の再生時間の約2倍程度の時間がかかります。GPUを使用していても、それなりに時間がかかる点は覚悟しておきましょう。

おすすめは夜寝る前にコマンドを実行しておき、翌朝確認するスタイルです。処理中はコマンドプロンプトに特に進捗表示がないため、終了するとコマンド入力待ちの状態に戻ってきます。

プログラムのカスタマイズについて

公開されているプログラムには、読点(、)や句点(。)を出力しないよう独自にカスタマイズされた箇所があります。Pythonに慣れている方はソースコードを直接編集して、好みの出力形式に調整することもできます。


生成された字幕ファイルの確認

処理が完了すると、指定したファイル名でSRT形式の字幕ファイルが生成されます。テキストエディタで開くと、以下のような形式になっています。

102000::0000::0003,,0500000000::0000::0037,,500000

中身を確認して、同じような誤認識パターンが繰り返されている場合は、一括置換で修正しておくと効率的です。


DaVinci Resolveで動画に字幕を合成する

生成した字幕ファイルは、無料の動画編集ソフト「DaVinci Resolve」を使って動画に組み込むことができます。

字幕ファイルの読み込み

DaVinci Resolveで編集プロジェクトを開き、タイムライン上にSRTファイルをドラッグ&ドロップします。「サブタイトル」トラックが自動で作成され、字幕が配置されます。

字幕のスタイル調整

デフォルトでは字幕が白文字で見えにくい場合があります。インスペクタを開き、トラック全体のスタイルを変更するには「トラック」の設定画面から以下を調整します。

  • ストローク:アウトサイドに設定するとテキストに縁取りが付き、視認性が上がります
  • サイズ:好みに合わせて調整します
  • 位置:字幕の表示位置を上下に調整できます

字幕の書き出し

動画を書き出す際は、「デリバー」タブから書き出しを行います。「サブタイトルセッティングス」の項目で、以下のいずれかを選択できます。

  • セパレートファイル:字幕ファイルを動画とは別ファイルとして書き出します(YouTube投稿時に字幕ファイルとして別アップロードする場合に便利です)
  • エンベデッドオプション:字幕情報を動画ファイル内に埋め込みます
  • バーントゥビデオ:字幕を映像として動画に焼き込みます(最終的な見た目が動画自体に反映されます)

YouTube以外での配信や、字幕を映像として固定したい場合は「バーントゥビデオ」を使うことが多いでしょう。


実際の認識精度

実際に日本語の技術解説動画で試したところ、ほぼ手直し不要のレベルで文字起こしができました。有料の字幕ソリューションを使っていた頃と比べても、認識精度が大幅に向上しており、Whisperの品質の高さを実感できます。


まとめ

今回紹介した方法をまとめると、次のとおりです。

  • OpenAI Whisperを使ったPythonプログラム「VideoToSRT」で、動画から高品質な字幕ファイル(SRT形式)を完全無料で自動生成できます
  • プログラムはGitHubでオープンソース公開されており、誰でも無料で利用・改変できます
  • 処理時間は動画の再生時間の約2倍程度かかりますが、夜間に実行しておけば翌朝には完成しています
  • 生成した字幕ファイルは、無料の動画編集ソフト「DaVinci Resolve」に読み込んでスタイルを調整し、動画に焼き込む形で活用できます
  • 字幕作成から動画編集まで、すべて無料のツールで完結するため、有料サービスから移行する価値は十分あります

有料サービスを使わずとも、プロ品質の字幕を自動生成できる時代になりました。動画に字幕を付けたいと考えている方には、ぜひ試していただきたいワークフローです。