ローカルで文字おこしAIを使用

この記事は約3分で読めます。

やりたいこと

ローカルで文字おこしAIを使用します。

CUDAは使用しません。

この記事ではmp4ファイルから文字おこしする一連の流れを紹介します。

準備

FFmpeg

FFmpegは、mp4をwavに変換するのに使用します。

以下のページからFFmpegをダウンロードして任意のフォルダに解凍します。

Releases · FFmpeg-Builds/FFmpeg-Builds
Contribute to FFmpeg-Builds/FFmpeg-Builds development by creating an account on GitHub.

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

GPLとLGPLはライセンスの違いです。個人の仕様の場合はどちらでもいいです。

StaticとSharedはパッケージの大きさの違いです。この記事の使用方法ならShared(小さい方)で十分です。

whisper.cpp

whisper.cppは、文字おこしに使用します。

以下のページからwhisper.cppをダウンロードして任意のフォルダに解凍します。

Releases · ggml-org/whisper.cpp
Port of OpenAI's Whisper model in C/C++. Contribute to ggml-org/whisper.cpp development by creating an account on GitHub.

この記事を書いている時点で、最新V1.9.5のリリースにはバイナリが含まれていませんでした。

バイナリが含まれているバージョンを探してダウンロードしてください。

以下のように、Assetsが10以上のバージョンにはバイナリが含まれています。

(V1.9.2にはバイナリがありました。もちろん、自分でビルドするのであればバイナリのないバージョンでも問題ありません)

モデルのダウンロード

この記事ではkotoba-whisper-v2.0-ggmlを使用しました。OpenAIによる日本語の文字おこしモデルです。

以下のページからダウンロードします。

kotoba-tech/kotoba-whisper-v2.0-ggml at main
We’re on a journey to advance and democratize artificial intelligence through open source and open science.

実行

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

コメント

タイトルとURLをコピーしました