きっかけ
音声データの文字起こし案件が増えてきて、OpenAI Whisperをローカルで動かしたいという要望が出てきた。ただ、Whisperをそのまま使うとCLIベースの操作になるし、チーム内の非エンジニアメンバーにも使ってもらいたい場面では不便だった。GUIがあって、かつAPIも叩けるようなラッパーがないかなと探していたら、WaaS(Whisper as a Service)を見つけた。音声認識の高速化に特化した別のアプローチとしてはInsanely Fast Whisperで音声文字起こしを劇的に高速化する方法も参考になります。
使ってみた
セットアップはDockerベースで比較的シンプル。リポジトリをクローンして環境変数を設定し、Docker Composeで起動するだけで、ブラウザからアクセスできるGUIが立ち上がる。音声ファイルをアップロードすると、キューに入って順番に処理される仕組み。REST APIも用意されているので、スクリプトから自動的にファイルを投げることも可能。
ここが良い
一番の魅力は、キュー管理が内蔵されている点。大量の音声ファイルを処理する場合でも、順次キューに溜めて処理してくれるため、手動でバッチ処理を組む必要がない。GUIからファイルの処理状況も確認できるので、非エンジニアのメンバーでも使いやすい。Whisperの各モデルサイズにも対応しており、精度と速度のバランスをユースケースに合わせて選択できる。
気になった点
ドキュメントがまだ簡潔で、カスタマイズしたい場合はソースコードを読む必要がある。GPU環境のセットアップに関する情報ももう少し充実していると助かる。
まとめ
Whisperをチームで共有したい、APIから音声文字起こしを呼び出したいというニーズがある人には試す価値がある。セルフホストなのでデータが外部に出ない点もセキュリティ面で安心。音声合成(TTS)側もローカルで完結させたい場合はChatterbox TTS Serverでオフライン音声合成を実現する方法も合わせて確認してみてください。