独自の AI サービスを使用する
独自の AI サービスを使用しても、デバイス向けに別のワークフローを作る必要はありません。デバイス接続、AI 要求イベント、デバイスが選択する SCO または Opus の音声経路、セッション連携、クリーンアップは、引き続き対応する AIBuds 機能ドキュメントに従います。
異なるのは認証と AI 処理です。ホストアプリが独自サービスを認証して結果をデバイスへ通知し、SDK が提供する AI サービスの代わりに独自の 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 で接続
公式スキルは AIBuds のデバイスフローと統合境界のみを案内します。AI クライアント、認証情報、サービスロジックはアプリ側で管理します。
https://docs-aibuds.github.io/ja/skills/integrate-aibuds-sdk を AIBuds 統合境界のガイドとして読み、指示に従ってください。この iOS プロジェクトに既存のアプリ所有 AI サービスを、文書化された AIBuds デバイスフローへ接続してください。既存の AI クライアント、認証情報の境界、アーキテクチャ、製品動作を維持し、AIBuds AI プロバイダーへ置き換えたり SDK に認証情報を渡したりしないでください。公開 API では認証結果のみを報告します。独自サービスの情報が不足している場合は、実装前に必要な点を質問してください。認証結果を通知する
- Swift
- Objective-C
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.
}
}- (void)selfAIAuthenticationDidFinish:(BOOL)isAuthenticated {
if (![self.device conformsToProtocol:@protocol(AIBudsDeviceServiceAuthAPI)]) {
return;
}
id<AIBudsDeviceServiceAuthAPI> serviceAuthAPI = (id<AIBudsDeviceServiceAuthAPI>)self.device;
// Report only the result. Authentication is completed by the host app.
[serviceAuthAPI reportSelfAiServiceAuthResult:isAuthenticated
completion:^(BOOL reportSucceeded, NSError *error) {
if (!reportSucceeded) {
NSLog(@"%@", error.localizedDescription);
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 の結果だけを通知する。