OpenAIが公開した音声認識モデル「Whisper」を使い、Mac環境で動画の文字起こしを試しました。

導入手順と実際に試した結果をまとめます。
Whisperで動画から日本語の文字起こしをする手順
検証を行った作業環境は以下の通りです。
- M1 Mackbook Air
Windows環境でも実行可能ですが、今回はセットアップ手順が手軽なMacで検証しました。
まずはPython3を実行できる環境を用意します。
ターミナルを起動します。
パッケージマネージャーのHomebrewを導入します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Homebrew経由でPython3をインストールします。
brew install python3
詳細な導入手順は「Mac Python インストール」などで検索すると確認できます。
ここからWhisper本体の環境を構築します。
まずはユーザー>フォルダー直下に「Whisper」フォルダーを作成し、カレントディレクトリを移動します。
ターミナルで以下のコマンドを実行します。
mkdir whisper
cd whisper続いてWhisper本体をインストールします。
ターミナルで下記のコマンドを実行します。
pip install git+https://github.com/openai/whisper.git動画や音声ファイルを処理するためにffmpegもインストールします。
brew install ffmpeg以上で事前の環境構築は完了です。
文字起こしを行いたい動画ファイルを、作成したWhisperフォルダー内に配置します。
今回はYouTubeの切り抜き動画素材を用意して検証しました。

フォルダーに動画を配置後、以下のコマンドを実行します。
whisper 動画名.mp4 --language Japanese文字起こし処理が開始されるため、完了までそのまま待機します。
処理が完了するとターミナルに結果が出力されます。

実行後、フォルダー内に3種類のファイルが出力されます。

生成されたファイルのうち、字幕用の.vttファイルをテキストエディタで確認した内容は以下の通りです。
英語音声と比較すると日本語認識の精度には課題もあるものの、実用上十分な水準で文字起こしが可能です。
句読点は付与されないため適宜整文が必要ですが、発話区間ごとにタイムスタンプ付きで分割される点が便利です。
Whisperの文字起こし精度を向上させる方法
文字起こしの精度を高めるために効果的だった設定と前処理をまとめます。
モデル指定オプションで認識精度を高める
--model large処理時間は長くなりますが、このモデル指定オプションを付与することで認識精度を大幅に高められます。
whisper 動画名.mp4 --model large --language Japanese音声分離ツールで人の声のみを抽出する
Ultimate Vocal Removerなどの音声分離ソフトを使用し、BGMやノイズを除去して声の音声だけを抽出します。
入力音声の明瞭さによって文字起こし結果が大きく左右されるため、適切な抽出設定を選択します。
具体的な設定方法については下記の解説記事を参照してください。

上記のモデル指定と音声前処理を組み合わせることで、精度の高い文字起こし結果が得られます。
Whisperでの文字起こし時に注意が必要なケース
Whisperを使用する際、以下の2点については認識ミスが生じやすいため注意が必要です。
- 人名や地名の場合、スペルが不安定な場合が多い
- 複数人の重なった音声は聞き取りをスル―される。
これらのケースでは、出力後に目視での確認および修正作業が必要となります。
手動での修正は一部必要なものの、大部分が自動でテキスト化されるため作業時間を大幅に短縮できます。
動画編集に関するそのほかの関連記事は、以下のリンクから確認できます。

文字起こしと字幕の記事は、ほかにもあります。

まとめ
本記事では、OpenAIの音声認識モデル「Whisper」を用いた動画の文字起こし手順を紹介しました。
コマンドを実行するだけで動画の音声が発話ごとにテキスト化されるため、字幕作成などの作業を効率化できます。
動画のテロップ起こしだけでなく、会議の文字起こしや議事録作成の補助としても活用しやすい技術です。
手元のMacで手軽に試せるため、文字起こし作業を効率化したい場合はぜひ導入してみてください。
