![見出し画像](https://assets.st-note.com/production/uploads/images/169675055/rectangle_large_type_2_2a722b5514c60402a5ccbe0ca4941ae2.png?width=1200)
whisperによる音声書き起こし
OpenAIが無料で公開している、whisperという多言語対応の音声書き起こしできる機械学習モデルがあります。
Pythonから呼び出すことができ、その使い方は他の方の説明に譲るとして、このwhisperをいろんなハードウエアで高速に実行する、whisper.cppというC++で書かれたプロジェクトがあります。
このプロジェクトは素晴らしく、コマンドラインで実行できる方ならcmakeでコンパイルして、お使いのデバイスにあわせた高速な書き起こしが出来ます。
リアルタイムに実行できる?
whisperのモデルの特徴上、すこしの長さの(最大30sec)音声区間に区切ってから認識するので、バッファーしている長さの分遅れが発生しますが、最新のlarge-v3-turboだと処理速度はかなり高速です。ハードウエア支援があれば(CoreMLやCUDA)実時間に追いついて処理できるので、ほぼリアルタイムに実行できます。
iPhoneやMacって推論エンジン(ANE)ある
CoreMLによる推論支援コアを、iPhoneや最近のMacは積んでいるので、whisper.cppをリアルタイムで実行できるのでは、と思って試したところ、かなり重い処理であるencoder部分をCoreMLで実行することによりlargeモデルでも2secくらいで30secブロックを実行できることが分かりました。
せっかくなのでアプリにした
ソースコードはこんな感じです。
アプリを使ってみた
起動すると、どのサイズのモデルで推論するか選択します。大きい方が正確に書き起こしできます。
![](https://assets.st-note.com/img/1736624077-N4z07M86JVldrLODaACHbvGY.png?width=1200)
既存の音声ファイルを認識させることと、マイクを使って書き起こしさせることが出来ます。
![](https://assets.st-note.com/img/1736624148-qurNLPFvOw5y1Z4zt0iak9JW.png?width=1200)
ちょっと漢字間違えたり、環境音が大きいと聞き取れなかったりしますが、この精度のものが無料で公開されているのはいいですね