やりたいこと
ローカルで文字おこしAIを使用します。
CUDAは使用しません。
この記事ではmp4ファイルから文字おこしする一連の流れを紹介します。
準備
FFmpeg
FFmpegは、mp4をwavに変換するのに使用します。
以下のページからFFmpegをダウンロードして任意のフォルダに解凍します。

Windowsno場合は以下のようにWindows(x86_64) → バージョンの順に開きます。

GPLとLGPLはライセンスの違いです。個人の仕様の場合はどちらでもいいです。
StaticとSharedはパッケージの大きさの違いです。この記事の使用方法ならShared(小さい方)で十分です。
whisper.cpp
whisper.cppは、文字おこしに使用します。
以下のページからwhisper.cppをダウンロードして任意のフォルダに解凍します。

この記事を書いている時点で、最新V1.9.5のリリースにはバイナリが含まれていませんでした。
バイナリが含まれているバージョンを探してダウンロードしてください。
以下のように、Assetsが10以上のバージョンにはバイナリが含まれています。

(V1.9.2にはバイナリがありました。もちろん、自分でビルドするのであればバイナリのないバージョンでも問題ありません)
モデルのダウンロード
この記事ではkotoba-whisper-v2.0-ggmlを使用しました。OpenAIによる日本語の文字おこしモデルです。
以下のページからダウンロードします。

実行
mp4 → wav変換
FFmpegを解凍したフォルダで以下のコマンドを実行します。
ffmpeg.exe -i "インプットファイル.mp4" -ar 16000 -ac 1 -c:a pcm_s16le "アウトプットファイル.wav"
文字おこし
whisper.cppを解凍したフォルダで以下のコマンドを実行します。
whisper-cli.exe -m "モデル" -f "インプットファイル.wav" -l ja -otxt
結果がインプットファイル名.txtに出力されます。
whisper.cppを調べるとmain.exeが出てくることが多いですが、最新ではwhisper-cli.exeが正しいです。
”mp4 → wav変換”を行わずに”文字おこし”を行い失敗する場合は、インプットファイルがmp3やwavでも”mp4 → wav変換”で行っている手順を行ってください。
whisper.cppに決まったフォーマットのwavを入力する必要があります。
Bat
mp4から文字起こしを行うBatを作成したので載せておきます。
batファイルにmp4ファイルをドラッグアンドドロップすることで文字おこしされます。
出力ファイルはtmp.wav.txtです。
ffmpegとWhisper-cliのパスは環境に合わせて変更してください。
@echo off
if "%~1"=="" (
echo エラー: 入力ファイルを設定してください
pause
exit /b 1
)
set "INPUT=%~1"
..\ffmpeg-n8.1-latest-win64-lgpl-shared-8.1\bin\ffmpeg.exe -i "%INPUT%" -ar 16000 -ac 1 -c:a pcm_s16le "tmp.wav"
Release\whisper-cli.exe -m "..\model\ggml-kotoba-whisper-v2.0.bin" -f "tmp.wav" -l ja -otxt
del tmp.wav
pause

コメント