ローカル音声認識・音声合成

Macで韓国語の録音を文字起こしするには?WhisperKitの使い方

録音を文字にしてから、要約をローカルLLMへ渡します。

WhisperKitはWhisperの音声認識モデルをApple機器でCore ML1を使って動かすツールです。韓国語には多言語モデルを選び、音声ファイルから文字起こしを得ます。CLI2で1件を処理してから、長時間録音やマイク入力へ広げてください。

以下はApple Silicon搭載MacのCLIで音声ファイルを1件処理する例です。短く明瞭な韓国語の録音なら、最初の結果を確認しやすくなります。他人の録音は同意を得たものを使ってください。 WhisperKit

ビルド環境と録音を用意する

macOS 14以降とXcode 16以降を用意します。最新ソースのビルドには、リポジトリのPackage.swiftが要求するSwiftツールのバージョンも必要です。Xcodeをインストールしたら、xcodebuild -versionとswift --versionで選択中のツールを確認します。

次のコマンドでソースを取得し、短いWAV録音をmeeting.wavという名前でargmax-oss-swiftフォルダーへ置きます。MP3・M4A・FLACも入力できます。別のファイルを使うときは、続くコマンドの--audio-pathを実際のファイル名に変えてください。実行前に正常に再生されることも確認します。

ソースとCLIを準備
git clone --depth 1 https://github.com/argmaxinc/argmax-oss-swift.git
cd argmax-oss-swift
xcodebuild -version
swift --version
swift run argmax-cli transcribe --help
小型デスクトップの横に録音機とノートが置かれた机
正常に再生できる短い録音で最初の結果を確認します。

Apple端末では選んだアプリの推論バックエンドを確認する

WhisperKit は Apple Silicon 向けに Whisper モデルを Core ML に変換して実行する Swift 実装です。WhisperKit を選択したアプリはこの経路で文字起こしを行います。FluidAudio は Parakeet ベースの文字起こしと話者分離3を提供する別の Swift SDK で、README には ANE4 経路が記載されています。

使用するモデルとアプリで、韓国語対応、話者分離、入力ファイル形式を確認します。WhisperKit · FluidAudio

多言語モデルで最初の文字起こしを実行

最初はlarge-v3-v20240930_626MBで試せます。モデルの取得には通信と保存先が必要で、準備後に録音を処理します。録音で話した内容がターミナルに出るか確認してください。モデル選択・CLI

録音を文字起こし
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --audio-path ./meeting.wav

韓国語にはbase.en・small.enなどの英語専用版ではなく、多言語モデルを選びます。動作確認だけならtinyを試し、議事録の品質は実用モデルで再評価します。人名、製品名、数字を原音と照合してください。

長い録音は分けて読み、マイク入力は別に試す

長い録音を一度にメモリへ読む負担を減らすには--incremental-loadingを付けます。ファイルを小さな区間で読み込みながら処理する機能です。同じファイルの標準実行と比べ、完了時間、メモリプレッシャー、文字起こしを記録します。

長いファイルを分割して読み込む
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --audio-path ./meeting.wav \
  --incremental-loading

マイク入力はファイルパスの代わりに--streamで試せます。macOSが求めたら実行アプリへマイク権限を許可します。ファイル処理を先に成功させると、モデルと入力機器の問題を切り分けやすくなります。

マイク入力
swift run argmax-cli transcribe \
  --model large-v3-v20240930_626MB \
  --stream
ノートPC、マイク、ノートが置かれた会議テーブル
最初の文字起こしが成功してから長いファイルとマイクを追加します。

ANEの活用と文字起こし品質を確認する

文字起こしが正常に終わったら、使ったCore MLモデルの演算配置も調べます。同じMacのXcode Performanceレポートで、CPU5・GPU6・ANEがそれぞれどの計算を担当したか分かります。モデルファイルを開く手順はNeural Engineの実行確認ガイドに従ってください。

モデル準備を含む初回と、その後の文字起こしを分けて記録します。速くても人名や金額を間違えると聞き直す手間が増えます。要約前に原音と照合して直し、その文字をLLM7へ渡せば誤認識が要約へ引き継がれにくくなります。

初回実行が止まったときの確認

Swiftのビルド失敗なら最初のエラーとswift --versionを確認します。取得中なら通信と空き容量、ファイルを開けなければ現在のフォルダーとmeeting.wavの実際の場所を確認します。文字が空なら録音の再生とモデル選択から点検してください。

正常な結果が出たら同じ短い録音をもう一度実行します。それを基準に長いファイル、マイク、要約連携を1つずつ追加してください。待機の原因を見つけやすくなり、現在のMacで足りるか判断できます。

マイクと2つの音声波形を表示するノートPCが置かれた机
要約する前に名前と数字を原音と照合します。

用語の注釈

  1. Core ML — Apple機器で機械学習モデルを実行するフレームワークです。

    本文に戻る
  2. CLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。

    本文に戻る
  3. 話者ダイアリゼーション — 録音を「誰がいつ話したか」の区間に分け、話者ごとにラベル付けする処理です。

    本文に戻る
  4. Neural Engine — Apple Siliconに搭載されたニューラルネットワーク計算用の専用装置です。

    本文に戻る
  5. CPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。

    本文に戻る
  6. GPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。

    本文に戻る
  7. 大規模言語モデル — 大量のテキストデータから言語パターンを学び、文脈に沿ったテキストを処理・生成するモデルです。

    本文に戻る

よくある質問

この記事で最初に確認すべきことは何ですか?
WhisperKitはWhisperの音声認識モデルをApple機器でCore MLを使って動かすツールです。韓国語には多言語モデルを選び、音声ファイルから文字起こしを得ます。CLIで1件を処理してから、長時間録音やマイク入力へ広げてください。