見出し画像

WhisperKitを自分のアプリに組み込むための最小実装

WhisperKitとは:

このWhisperKitはSwift Package化されていて、SPMで簡単にプロジェクトに追加できる。

これを使ってアプリに音声認識機能をもたせるには、最低限どういう実装をすればよいか、という話。

ソースコード全体(Xcodeプロジェクト)を末尾に添付しています。


READMEによるとたったの2行

アプリに組み込むための実装は、リポジトリのREADMEによるとこれだけ:

import WhisperKit

// Initialize WhisperKit with default settings
Task {
   let pipe = try? await WhisperKit()
   let transcription = try? await pipe!.transcribe(audioPath: "path/to/your/audio.{wav,mp3,m4a,flac}")?.text
    print(transcription)
}
  • WhisperKitクラスの初期化

  • transcribeメソッド実行

実質この2行だけ。

本当に2行で実装できるのだろうか?

公式サンプルの実装は1713行!

公式リポジトリにあるサンプルコードを見てみると、

なんと、この ContentView.swift だけで1713行もある。

単にいろいろなクラスや構造体をひとつのファイルにまとめてるだけでは、と思いきや、まじで ContentView というひとつのビューにすべてが実装されている。

モデル管理まわりやロジック部分だけでも切り出すか、とちょっとやってみると、あれこれ密結合していてサクッとはいかない。

サンプルにあれこれ詰め込まれ過ぎていて、もはや小さく切り出すのも難しくなってしまっている。

最小実装

というわけで最小実装を自分なりに探ってみた。

次のような最小限のサンプルを実装する:

以下、WhisperKitリポジトリのREADMEに書いてあった2行以外に必要となる実装のポイントだけ列挙する。

ここから先は

1,495字 / 1ファイル

¥ 300

PayPay
PayPayで支払うと抽選でお得 〜1/7まで
ポイント
抽選でnoteポイント最大100%還元 〜1/9まで

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/