2022年10月5日水曜日

とにかくすごい字起こしAI「Whisper(OpenAI)」自分でも動かしてみた(Windows CLI編)

9月末にOpenAIから字起こしAIであるWhisperが公開されました。
試しに動かしてみたんですが、これがすごかったので、
導入時に試したことを少しまとめようと思います。

オープンソースで公開、MITライセンス
GoogleColaborateでも動かせますが、今回はWindows上で構築してみました。
お手軽に試すならGoogleColaborateが簡単でおススメです。
こっちもあとでまとめたいと思います。






Whisperとは?


8月末から画像生成AIの隆盛が止まらないAI界隈ですが、
9月の末頃にOpenAIからWhisperが公開されました。

Introducing Whisper
https://openai.com/blog/whisper/

openai/whisper
https://github.com/openai/whisper


音声認識で文字起こしをする字起こしAIなのですが、
オープンソースで公開されている上にMITライセンス

総学習時間68万時間(日本語7054時間)という膨大な学習量で
対応言語は99、音声からの翻訳処理や
vtt形式などの字幕データを出力するといった豪華さです。

字起こし精度は用いる学習データによって結構変わるようですが、
(tiny, base, small, medium, largeの5段階の学習データがある)
base~small辺りの学習データでもかなりの精度で文字起こししてくれます。

昨今のStableDiffusion等と同様に、ローカル環境でも構築できるとのことで
今回は自前のWindows環境でWhisperを動かせるようにしてみました。


構築環境について


WhisperはPython環境で動作します。
PyTorch、ffmpegといった必要なプラグインが揃っていれば
Windows、Linux、Mac等のOS依存なところは特になく動かせるようです。

やはりAIなので、処理にはある程度のメモリが必要になるのですが、
StableDiffusion等の画像生成AIほどメモリが必要というわけではなく
とりあえずGPUも2G程度あれば試すことはできるようです。
(tiny、baseの学習データを用いた場合)


Anaconda3のインストール


今回はPython環境はAnaconda3で構築しました。
先ずはAnaconda3パッケージのインストールですね。


ANACONDA
https://www.anaconda.com/products/distribution




今回、自分はWindows64bitですね。



基本的には指示に従ってNextしていけば大丈夫です。
下の画面だけ、上のチェックをつけて、環境変数も有効にしておきましょう。



後はインストールが終わるまで待っていましょう。



インストールが終わったらAnaconda Promptを起動してみます。
スタートメニューから選択して起動します。




プロンプト画面が表示されれば大丈夫です。



Anaonda Promptで必要なライブラリのインストール


先ずはインストールしたAnacondaのアップデートをします。
下記のコマンドをAnaconda Promptで実行します。
アップデートファイルが見つかったときの[y/n]はyを入力しましょう。


conda update cond
conda update --all


次にAnaconda Prompt上で必要なものをインストールしていきます。
PyTorchとffmpegですね。

conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge
conda install ffmpeg -c conda-forge


GPUのないPCやグラフィックボードがあってもPyTorchに未対応の場合は
下記のCPUのみのものをインストールします。
この場合、字起こしの処理は結構遅くなります。


conda install pytorch torchvision torchaudio cpuonly -c pytorch
conda install ffmpeg -c conda-forge


Conda PromptでWhisperのインストール


ようやく、Whisperのインストールです。
やり方は簡単で、下記のコマンドを実行するだけです。

pip install git+https://github.com/openai/whisper.git


これだけ!


Whisperの実行


ここまでの設定が終わったら試してみましょう。
下記のような感じでコマンドを実行します。
「--language」は言語の指定で、今回は「Japanese(日本語)」を指定しています。
「--model」の後は学習モデルの指定でtiny,base,small,medium,largeの5種類があります。
後ろに行くほど、学習モデルも大きくなり、精度もよくなりますが、
その分処理も遅くなります。

また、PCの環境によっては学習モデルが大きすぎると
メモリ量が足りずに処理に失敗してしまうケースもありますので注意してください。


whisper "動画ファイルパス" --language Japanese --model base


今回は下記のYoutube動画をmp4でダウンロードして試してみました。


イグ・ノーベル賞受賞のスピーチ・ジャマー

学習モデルはbaseで。small以上はウチの環境だとメモリが足りない…。
試した結果はこんな感じでした。



実行後、カレントのディレクトリに出力内容のテキスト(txt形式)と
字幕データファイル(vtt形式、srt形式)も出力されていました。

試しにtinyでも試してみましたが、
こっちだと結構、文言が違う感じで出てきました。
出来るだけ大きい学習モデルを指定した方が、やはりよさそうですね。


メモリ使用量の関係でCPU版も使用してみた



自分の環境だと、small以降の学習モデルを指定すると
「out of memory」と出てしまって、処理できませんでした。

どうやら、
tiny、baseの学習モデルは1G位あれば実行できるのですが、
smallは2G、mediumは5G、largeは10G位必要になってくるらしいです。
学習モデルが大きいほど、字起こし精度が上がるので、大きいものを使用したいですが…。

あと、試しにCPU版でも動かしてみたのですが、
GPU版PyTorchを入れた場合に比べて、かなり時間がかかりました。
自分のPCでは2分程度の動画でsmallの学習モデルを指定したら
20分くらいかかって、やはりGPUで大分高速化してるんだな~と感じました。

ローカルでAIの環境を構築するなら、
もうちょっといいPCが欲しいなあ…。
StableDiffusionも10G位欲しいみたいだし。


感想


というわけで、Windows環境でWhisperを動かしてみました。
多少環境を求められるとはいえ、
こうやって字起こしを自身のPCで出来るのはすごいですね!

最近の画像生成AIの進化速度のすさまじさもそうですが、
こういうAI技術がバンバン出てきているので、ある程度はおさえておいて
必要な場面で活用していけるといいですよね。
仕組みもできれば理解していきたいですね。

今回はAnacondaでそのままPyTorch等インストールしてしまいましたが、
せっかくなので、Anaconda上でPythonの仮想環境を作成して
そこで構築した方がいいかもしれません。
Pythonのバージョンとかもその方が融通が利くしね。

後でGoogleColaborateの方で構築したのもまとめようと思います。
ここまで書いておいてアレなんですが、とりあえず動かしてみたいなら、
GoogleColaborateの方が簡単なのでおススメです。(2回目)


0 件のコメント:

コメントを投稿