ローカル音声認識・音声合成
最終更新
FluidAudioとは?Macで文字起こし・話者分離・音声生成
文字起こし、話者分離、音声生成から必要な機能をMacアプリに組み込めます。
FluidAudioはApple機器で音声モデルを実行するSwift SDKです。ASR1、話者分離2、TTS3をローカルアプリへ組み込めます。対応言語とモデルを選び、必要な機能1つから実行してください。
まず短い録音から必要な結果を決めます。発言を読むならASR、誰がいつ話したか分けるなら話者分離です。機能ごとにモデルと言語対応があるので、実際の音声と言語を基準に選びます。 FluidAudio
対応言語を選んでから文字起こしする
FluidAudioの標準Parakeet v3は欧州の25言語に対応し、v2は英語用です。韓国語の文字起こしは多言語WhisperKitモデルから始められます。使う言語がモデルの対応一覧に含まれることを先に確認してください。音声モデル一覧
Apple Silicon搭載MacとXcodeのSwift環境を用意し、以下のCLI4を使うならソースのPackage.swiftに合うツール版を選びます。短い英語のaudio.wavをリポジトリのフォルダーへ置き、まず文字起こしだけ実行してください。初回はモデルの取得と準備が入ります。
git clone --depth 1 https://github.com/FluidInference/FluidAudio.git
cd FluidAudio
swift run fluidaudiocli transcribe ./audio.wav
FluidAudioのANE経路とモデル別の言語一覧を確認する
FluidAudio の README は Apple デバイスでローカル推論を ANE5 にオフロード6する方法を説明しています。ASR の対応言語はモデルごとに異なります。Parakeet の一部モデルは欧州 25 言語と日本語に対応し、Parakeet EOU は英語のリアルタイム文字起こし用です。
TTS も対応言語はモデルによって異なります。使用するモデルの表で、対応言語とリアルタイム処理への対応を確認します。FluidAudio 公式 README · API ドキュメント
話者分離で発言時間を分ける
話者分離は録音で同じ人が話した区間をまとめ、話者IDを付けます。そのIDを実際の参加者名に対応させ、ASRの文字起こしと時間区間を合わせると、誰が何を話したか読める議事録を作れます。
録音済みの会議で話者を分けるには、offlineモードから試します。次のコマンドはaudio.wavから話者ごとの発言時間を探します。発話が重なる部分や声が似た人の区間が正しく分かれているか、原音と比べてください。CLI案内
swift run fluidaudiocli process ./audio.wav --mode offline --threshold 0.6文字を読み上げる音声も作れる
TTSは原稿を音声へ変える機能です。FluidAudioではKokoro、PocketTTSなどの経路を選べます。以下はKokoro ANE v3で短い英語案内をen.wavへ保存する例です。v3はmacOS 15以降でCPU7・ANE・GPU8を分担する固定経路を使います。
swift run -c release fluidaudiocli tts "The meeting starts at four." \
--backend kokoro-ane --kokoro-version v3 --voice af_heart --output en.wav完了したら作業フォルダーのen.wavを再生します。声と発音を聞き、言語に合うvariantとvoiceを選んでください。日本語の例は--variant ja --voice jf_alphaです。他言語の原稿でも、先にその言語のモデルと声を合わせます。

音声アシスタントの待機を段階別に測る
必要な機能だけアプリへ組み込む
CLIの結果が合ったらSwift Package ManagerでFluidAudioを追加し、必要なマネージャーを呼び出します。繰り返し使うモデルは読み込み済み状態を保ち、準備とユーザー要求を分けて処理中の再取得を避けます。
オフライン専用アプリはモデルを事前に配置し、ModelHub.offlineMode = trueを設定します。必要なファイルが不足するとエラーになるため、配布するアプリが使うモデルフォルダーをそのまま接続し、実際の依頼まで試してください。必要な言語の文字起こしが最後まで成功してから、話者分離やTTSを一つずつ追加すると問題を見つけやすくなります。

用語の注釈
自動音声認識 — 音声中の発話を認識してテキストに変換する技術です。
本文に戻る話者ダイアリゼーション — 録音を「誰がいつ話したか」の区間に分け、話者ごとにラベル付けする処理です。
本文に戻る音声合成 — テキストを発音や韻律を伴う音声信号に変換する技術です。
本文に戻るCLI — Command-Line Interfaceの略です。ターミナルにコマンドを入力してプログラムを操作する方式です。
本文に戻るNeural Engine — Apple Siliconに搭載されたニューラルネットワーク計算用の専用装置です。
本文に戻るオフロード — 容量が足りないとき、モデルデータの一部をGPUメモリからシステムRAMやストレージへ移して処理する方法です。データ転送が追加されます。
本文に戻るCPU — OSや一般的なプログラム命令を実行する中央処理装置です。AIでは前処理やデータ転送などの汎用処理も担います。
本文に戻るGPU — 多くの計算を並列に処理するプロセッサーです。AIモデルの実行ではモデル計算を担います。
本文に戻る音声区間検出 — 信号のどの区間に音声が含まれるかを検出する処理です。
本文に戻る大規模言語モデル — 大量のテキストデータから言語パターンを学び、文脈に沿ったテキストを処理・生成するモデルです。
本文に戻る
よくある質問
- この記事で最初に確認すべきことは何ですか?
- FluidAudioはApple機器で音声モデルを実行するSwift SDKです。ASR、話者分離、TTSをローカルアプリへ組み込めます。対応言語とモデルを選び、必要な機能1つから実行してください。
