メインコンテンツまでスキップ

独自の AI サービスを使用する

独自の AI サービスを使用しても、デバイス向けに別のワークフローを作る必要はありません。デバイス接続、AI 要求イベント、デバイスが選択する SCO または Opus の音声経路、セッション連携、クリーンアップは、引き続き対応する AIBuds 機能ドキュメントに従います。

異なるのは認証と AI 処理です。ホストアプリが独自サービスを認証して結果をデバイスへ通知し、SDK が提供する AI サービスの代わりに独自の AI 実装を使用します。

フロー図

独自 AI サービスの認証結果を引き渡す

アプリの AI サービスを認証し、その結果をデバイスへ通知してから、標準のデバイス主導 AI フローを継続します。

アプリ ↔ デバイス

デバイスを接続

通常の AIBuds デバイス接続を確立し、必要な機能 API の準備完了を待ちます。

ホストアプリ ↔ 独自 AI

独自 AI サービスを認証

ホストアプリが独自サービスとの連携を使って認証を完了します。

アプリ → デバイス

結果を通知

サービスの準備ができた場合は true、認証に失敗した場合やサービスを利用できない場合は false を送信します。

デバイス + アプリ

標準フローを継続

成功を通知すると、デバイスは対象の AI 要求と、ドキュメントに記載された SCO または Opus の音声フローを継続できます。

AIBuds 標準フロー
ホストアプリ ↔ 独自 AI

独自 AI で処理

通常のデバイス向けライフサイクルを維持しながら、アプリ独自のサービスで AI 要求を処理します。

この通知は認証状態をデバイスと同期するもので、AI サービスの認証処理を行ったり、認証情報を送信したりするものではありません。

変更される部分

ホストアプリが独自 AI サービスの認証と AI 固有の要求処理を担当します。認証を試みるたびに、reportSelfAiServiceAuthResult を通じて現在の結果を通知します。

変わらない部分

AIBuds のデバイスワークフローを置き換える必要はありません。AI Chat、AI Audio Recording、Streaming ASR、Simultaneous Interpretation など、実装する機能についてドキュメントに記載されたデバイスイベント、要求された音声チャネル、機能ライフサイクル、停止処理、クリーンアップを引き続き使用します。

たとえば、デバイスが Opus 入力を要求した場合、独自 AI サービスの認証を完了して成功結果を通知した後にのみ、デバイスから音声ストリームを送信できます。デバイスが SCO を要求した場合、アプリはドキュメントに記載された SCO 録音経路を準備します。独自 AI サービスを使用しても、音声チャネルを選択する側は変わりません。

AI を活用して実装

AI で実装

独自の AI サービスを AI で接続

公式スキルは AIBuds のデバイスフローと統合境界のみを案内します。AI クライアント、認証情報、サービスロジックはアプリ側で管理します。

https://docs-aibuds.github.io/ja/skills/integrate-aibuds-sdk を AIBuds 統合境界のガイドとして読み、指示に従ってください。この iOS プロジェクトに既存のアプリ所有 AI サービスを、文書化された AIBuds デバイスフローへ接続してください。既存の AI クライアント、認証情報の境界、アーキテクチャ、製品動作を維持し、AIBuds AI プロバイダーへ置き換えたり SDK に認証情報を渡したりしないでください。公開 API では認証結果のみを報告します。独自サービスの情報が不足している場合は、実装前に必要な点を質問してください。
統合スキルを見る

認証結果を通知する

Swift
func selfAIAuthenticationDidFinish(isAuthenticated: Bool) {
    guard let serviceAuthAPI = device as? DeviceServiceAuthAPI else { return }

    // Report only the result. Authentication is completed by the host app.
    serviceAuthAPI.reportSelfAiServiceAuthResult(isAuthenticated) {
        reportSucceeded,
        error in

        guard reportSucceeded else {
            print(error?.localizedDescription ?? "Failed to report authorization")
            return
        }

        // A true result allows the device to continue eligible AI flows.
        // A false result keeps the device informed that the service is unavailable.
    }
}

API の詳しい契約は、reportSelfAiServiceAuthResult独自 AI サービスの認証結果を通知するを参照してください。

:::note 完了コールバックの意味 完了ハンドラーは、Boolean の結果をデバイスへ通知できたかどうかを示します。ホストアプリによる AI サービスの認証が成功したことを示すものではありません。この API でトークン、API キー、その他の認証情報を送信しないでください。 :::

統合チェックリスト

  • ホストアプリで独自の AI サービスを認証する。
  • AI 要求を処理できる状態になった場合にのみ true を通知する。
  • 認証に失敗した場合やサービスを利用できない場合は false を通知する。
  • 選択した AI 機能について、ドキュメントに記載されたデバイスイベント、SCO または Opus、セッション、クリーンアップのフローを継続する。
  • 認証情報はアプリ独自の安全なサービス連携内に保持し、デバイスには Boolean の結果だけを通知する。