虎(牛)龍未酉2.1

記録帳|+n年後のジブンが思い出せますように……

作業ログ:音声認識の新時代・Whisper.cppの使用方法

DR;TL

Rebuild.fmのエピソード348で紹介されていた、whisper.cppがとてもよかったので、使用法をメモしておきます。

インストール

本家はこちら(GitHub - openai/whisper)。今回はwhisper.cppをインストールするので、スキップしてよいです。

まずはGitHubからクローンします。

$ git clone https://github.com/ggerganov/whisper.cpp.git

モデルをダウンロードします(たとえばmedium)。.en付きは、英語に特化しています。日本語を想定するときは、.en無しを選びます。

$ bash ./models/download-ggml-model.sh medium

コンパイルします。

$ cd whisper.cpp
$ make

サンプルを変換(テスト)

サンプルフォルダに入っているサンプルデータを変換し、うまく動いていることを確かめます。

$ ./main -m models/ggml-medium.bin -f samples/jfk.wav

実際のファイルを変換

「現在のところ16-bitのWAVファイルのみ対応」とのことですので、ffmpegで変換します。

$ ffmpeg -i input.m4a -ar 16000 -ac 1 -c:a pcm_s16le output.wav

変換した.wavをwhisper.cppにかけ、テキスト化します。

$ ./main -m models/ggml-medium.bin -f ../data/output.wav -l ja > output.txt 

参考文献(リンク)

環境

すでにインストール済みなので意識しませんでしたが、下記が使えることが前提とおもわれます。

ちなみに、モデルでMediumを使用した場合、MacBook ProApple M1 Pro、8コア、32GBメモリ)で、音声の実際の時間に対し、だいたい3分の1ぐらいの時間で変換が完了しています。この環境では、実用的にはMediumがバランスがいい気がしています。変換精度も、他のツールより良いです(たとえばYouTubeのトランスクリプト、TeamsやWordなどを用いたMicrosoftのトランスクリプトと比べて)。