20.3K Views
March 28, 24
スライド概要
SansanモバイルエンジニアLT会 & 懇親会での発表資料です。
https://sansan.connpass.com/event/312187/
フリーランスiOSエンジニア 「エンジニアと人生」コミュニティ主宰
WhisperKit がだいぶ良いので紹介する 堤 修一 (@shu223)
自己紹介 • 堤 修一 • @shu223 (GitHub, Qiita, Zenn, note, 𝕏, YouTube, Podcast, etc...) • 書籍(商業出版4冊、個人出版多数 @BOOTH):
アジェンダ • WhisperKitとは • なぜ速いのか • モデルサイズ・メモリ使用量 • more
WhisperKit とは
iOS/macOSオンデバイスで動く音声認識のすごいやつ • 速い • 精度も良い • 多言語対応(含・日本語) • オープンソース • アプリへの組み込み方法
標準の音声認識フレームワークSpeechとの比較 • WhisperKit • Speech
なぜ速いのか
系譜: OpenAI Whisper • OpenAIによって開発された音声認識モデル • 精度とパフォーマンス、そしてオープンソースであることか ら利用が一気に広がった
系譜: whisper.cpp • Whisperの高速推論版 • 各種プラットフォームへの最適化もされている • macOS/iOS向けにはMetal, Accelerateもサポート • Core MLモデル版も 1 1 whisper.cppのCore ML版をM1 MacBook Proで動かす
Core ML とは • 機械学習モデルをiOS, macOS, etc. に組み込むためのApple 製のフレームワーク, モデルフォーマット • CPU・GPU・Neural Engine (ANE) を利用し、メモリ占有量 と電力消費量を最小限に抑えつつパフォーマンスを最大限に 高めるように設計されている
系譜: whisper.cpp から WhisperKitへ • whisper.cpp の Core ML版よりもさらにAppleハードウェア を活かすようカリカリに最適化 • 開発元のargmax社は Appleの ml-ane-transformers の 中の人 の会社 2 • Core ML版 whisper.cpp より 1.86倍〜2.85倍 高速 3 2 つまりそもそもTransformerモデルをCore MLで最適化してiOS/macOSで動かせるようにする流れの元祖にあたる人 3 出典: WhisperKit — Argmax
WhisperKit のモデルサイズ WER File Size (MB) small.en 3.12 483 small 3.45 483 base.en 3.98 145 base 4.97 145 tiny.en 5.61 66 tiny 7.47 66 (出典: https://huggingface.co/argmaxinc/whisperkit-coreml )
メモリ使用量 最大で300MB未満程度(baseモデル使 用)
アプリへの組み込み方法 Swift Packageを使って 2行 で実装可能 let pipe = try? await WhisperKit() let transcription = try? await pipe!.transcribe(audioPath: path)?.text
more
Swift CLI • インストール brew install whisperkit-cli • 実行 swift run whisperkit-cli transcribe --model-path "foo" --audio-path "bar"
変換ツール: whisperkittools • PyTorchのWhisperモデルをWhisperKit向けに変換するための Pythonツール • 自前のWhisperモデルをWhisperKitフォーマットに変換でき る
詳しい技術解説記事 WhisperKit — Argmax
まとめ Core ML版WhisperであるWhisperKitを紹介した • 速度よし、精度よし • 多言語対応(含・日本語) • オープンソース/変換ツールも公開 • 自前モデルも利用可能 • Swift Packageで簡単に実装可能
→ iOSオンデバイス音声認識の選択肢 として最有力候補では!
ご清聴ありがとうございました!