macOS に常駐して、ホットキーを押している間だけ録音し、離したらその音声を Whisper で文字起こしして現在のカーソル位置にテキスト入力するツールを作りました。その実装過程で Apple Silicon の GPU を音声認識に活用するととても良かったので共有します。
課題感
最近は音声の文字起こしができるモデルは色々公開されています。複数試したところ私としては openai の whisper が日本語も含む場合はかなり安定していると感じました。公開からかなり時間が経っているとはいえ、後続のモデルと比較しても遜色ない、寧ろとても良いパフォーマンスだと思います。
特に、 whisper-large-v3 は性能としては申し分はないのですが、それなりにモデルサイズも大きいので処理負荷が高めであるものの、以下の whisper-large-v3-turbo にしておけば CPU のみでも十分に早く暫く満足して使っていました。
ただそれでもある程度長い音声を取り込むと 数十秒待つことがあってもうちょっとだけ早くならないか考えていました。
MLX 版を使う
最近は上記モデルの MLX 対応版が公開されていることに気がつきました。 MLX は Apple が開発した Apple Silicon 向け機械学習フレームワークです。
冒頭で示している gif はこの mlx 版を使った文字起こしの様子です。中々の精度と速度ではないでしょうか?流石にゴニョゴニョモゴモゴ話すと誤字が混ざるのですが、個人的には許容範囲です。
会社のルールで気軽に SaaS アプリを契約できないような方はローカルで whisper どうでしょうか。全体のソースコードはGitHubで公開しています。
