動画の文字おこし機能

Program

GPU非搭載PCへの制限

GPU非搭載のパソコンの場合、10分の動画の文字起こしに数分かかる場合があるため、「CPUでも実行可能ですが、非常に時間がかかります。続行しますか?」という確認メッセージをいれ、SmallやBaseなどのモデルを選ぶとよい

(※ 外部の有料クラウドAPIを使えば、解析まで時間がかからない)

GPUがないパソコンでも、large-v3-turboをダウンロードして、文字起こしすることになったので、異なるロジックらしい。共有GPUが2.8GB/8GB使われていた(3D使用率は100%)

Whisperモデルのクラウドダウンロード

Whisperモデル(large-v3-turbo)は1.5GBなので、アプリに同梱させると、インストーラーのサイズが2GB程度と重たくなってしまう。

そのため、文字おこしボタンを初回にクリックし、「AIモデルをダウンロードします」というメッセージにOKしたら、クラウドからダウンロードする形にする

また、高性能なモデルをつかうほど精度があがるが、PCへの負担と文字起こしの精度を高いレベルで両立させたい場合は、large-v3-Turboがよい。(日本語の認識も可能)

ファイルサイズ(目安)実行時メモリ(RAM/VRAM)精度速度
tiny / base100MB350MB低い爆速10x
small450MB850MB実用レベル速い4x
medium1.5GB2GB高い普通2x
large-v3-turbo1.5GB2.3GB非常に高い速い8x
large-v33GB4GB最高峰遅い1x

Whisperモデルのダウンロードに伴うアプリの動作への影響

・ アプリの起動や動画の読み込みは音声認識AIの処理と関係がないため、アプリの基本動作が重くなることはない

・ 文字おこしボタンを押すと「数GBのモデルファイルをストレージからメモリに読み込む作業」がはいるため、処理が始まるまで10秒程度のロード時間が発生するかもしれないらしい

・ アプリ起動時にモデルを常にメモリに常駐させると重たくなってしまうため、文字おこし実行時にのみメモリに読み込む実装にしたほうがいいらしい

Whisperモデルのダウンロード保存先

Windowsでは(C:\Users<User>\AppData\Local[YourAppName]\models)

MacOSでは~/Library/Application Support/[YourAppName]/models/

に保存し、次回以降は文字おこしボタンが押されたら、指定のパスにモデルファイルが存在することを確認

アプリを削除するときに「ダウンロードされたWhisperモデルも削除しますか?」と確認メッセージを出すと、ユーザーのストレージを無駄に圧迫しない

無料でつかえる音声認識モデルを利用

whisper.cppとRustのバインディング(whisper-rs など)を組み合わせることで、

外部の有料クラウドAPIを一切使わずに、ユーザーのPC(CPUまたはGPU)上でOpenAPIの音声認識モデルを直接動かすため、API利用料(ランニングコスト)が完全無料になる

言語の指定

あらかじめ言語を指定したほうが精度が高くなり、処理も早くなるため、

言語を「英語」「日本語」「中国語」で選べるようにし、デフォルトで「日本語」に設定しておく

文字起こしの最中に停止したくなったら

20分の動画を文字起こしするのに12分くらいかかるため、

「処理が長すぎる」と感じて停止したくなることがある

そのときはアプリを閉じてしまった問題ないらしい

WAVがTempに残るが、害はなく、次回は最初からやり直しになる

※ モデルDL中に閉じた場合は、不完全な.bin.partialが残るが、次回DL時に消してやり直すことになるらしい。

BACK