このトピックでは、iOS でリアルタイム対話型 AI 音声・ビデオエージェントを統合する方法について説明します。
ソースコードの説明
ソースコードのダウンロード
ダウンロードリンクについては、GitHub オープンソースプロジェクトをご参照ください。
ソースコードの構造
├── iOS // iOS プラットフォームのルートディレクトリ
│ ├── AUIAICall.podspec // Pod 記述ファイル
│ ├── Source // ソースコードファイル
│ ├── Resources // リソースファイル
│ ├── Example // デモコード
│ ├── AUIBaseKits // 基本 UI コンポーネント
│ ├── README.md // Readme 環境要件
Xcode 16.0 以降。最新の公式バージョンを使用することを推奨します。
CocoaPods 1.9.3 以降。
iOS 11.0 以降を実行している物理 iOS デバイスを用意します。
前提条件
ご利用のサーバーで関連する API 操作を開発するか、提供されているサーバーソースコードをデプロイします。詳細については、「プロジェクトのデプロイ」をご参照ください。
デモの実行
ソースコードをダウンロードした後、`Example` ディレクトリに移動します。
`Example` ディレクトリで、コマンド
pod install --repo-updateを実行して、依存 SDK を自動的にインストールします。プロジェクトファイル
AUIAICallExample.xcworkspaceを開き、バンドル ID を変更します。AUIAICallAgentConfig.swiftファイルに移動し、エージェント ID とリージョンを設定します。// AUIAICallAgentConfig.swift // エージェント ID を設定 let VoiceAgentId = "Your voice call agent ID" let AvatarAgentId = "Your digital human call agent ID" let VisionAgentId = "Your visual understanding call agent ID" let ChatAgentId = "Your message-based chat agent ID" // リージョンを設定 let Region = "cn-shanghai"リージョン名
リージョン ID
中国 (杭州)
cn-hangzhou
中国 (上海)
cn-shanghai
中国 (北京)
cn-beijing
中国 (深セン)
cn-shenzhen
シンガポール
ap-southeast-1
エージェントを設定した後、次のいずれかの方法で開始できます。
AppServer がデプロイされている場合: Alibaba Cloud が提供する AppServer ソースコードをサーバーサイドにデプロイしている場合は、
AUIAICallAppServer.swiftファイルに移動し、サーバーサイドのドメイン名を変更します。// AUIAICallAppServer.swift public let AICallServerDomain = "Your application server domain name"AppServer がデプロイされていない場合: AppServer ソースコードをデプロイしておらず、デモを迅速に実行してエージェントを体験したい場合は、
AUIAICallAuthTokenHelper.javaファイルに移動し、EnableDevelopTokenパラメーターを設定し、コンソールからエージェントが使用する ARTC の App ID と App Key をコピーして、アプリ側で認証トークンを生成します。説明このメソッドでは、ご利用のアプリケーションに AppKey やその他の機密情報を埋め込む必要があります。これはテストおよび開発専用です。本番環境でこのメソッドを使用しないでください。クライアント側で AppKey を公開すると、重大なセキュリティリスクが発生します。
// AUIAICallAuthTokenHelper.swift @objcMembers public class AUIAICallAuthTokenHelper: NSObject { // 開発モードを有効にするには true に設定します private static let EnableDevelopToken: Bool = true // コンソールから RTCAppId をコピー private static let RTCDevelopAppId: String = "The AppId of the ARTC instance used by the agent" // コンソールから RTCAppKey をコピー private static let RTCDevelopAppKey: String = "The AppKey of the ARTC instance used by the agent" ... }ARTC アプリケーションの AppID と AppKey を取得するには:
IMS コンソールの AI エージェントページに移動します。エージェントをクリックして、エージェント詳細ページに移動します。

ARTC アプリケーション ID をクリックします。ApsaraVideo Live コンソールにリダイレクトされ、そこで AppID と AppKey が提供されます。

「Example」ターゲットを選択してコンパイルし、実行します。
独自の AI コール機能を迅速に開発
これらのステップに従って AUIAICall をご利用のアプリに統合し、エージェントの音声・ビデオ通話機能を有効にします。
ソースコードの統合
AUIAICall のインポート: リポジトリコードをダウンロードした後、`iOS` フォルダをご利用のアプリのコードディレクトリにコピーします。`AUIAICall` に名前を変更します。ご利用の `Podfile` ファイルと同じ階層にあることを確認してください。`Example` および `AICallKit` ディレクトリは削除できます。
Podfile を変更してインポートします。
AliVCSDK_ARTC: リアルタイムインタラクション用の音声・ビデオクライアント SDK です。AliVCSDK_Standard または AliVCSDK_InteractiveLive も使用できます。特定の統合方法については、「iOS クライアント」をご参照ください。
ARTCAICallKit: リアルタイム対話型 AI コールシナリオ用の SDK です。
AUIFoundation: 基本 UI コンポーネントです。
AUIAICall: AI コールシナリオ用の UI コンポーネントソースコードです。
# iOS 11.0 以降が必要 platform :ios, '11.0' target 'Your App target' do # ご利用のビジネスシナリオに基づいて適切な音声・ビデオクライアント SDK を統合します pod 'AliVCSDK_ARTC', '~> x.x.x' # リアルタイム対話型 AI コールシナリオ SDK pod 'ARTCAICallKit', '~> x.x.x' # 基本 UI コンポーネントのソースコード pod 'AUIFoundation', :path => "./AUIAICall/AUIBaseKits/AUIFoundation/", :modular_headers => true # AI コールシナリオ用 UI コンポーネントのソースコード pod 'AUIAICall', :path => "./AUIAICall/" end説明最新の ARTC SDK バージョン: 7.10.0
最新の AICallKit SDK バージョン: 2.11.0。
pod install --repo-updateを実行します。ソースコードの統合が完了しました。
プロジェクト設定
マイクとカメラの権限を追加します。プロジェクトの
info.Plistファイルを開きます。マイクの権限 (NSMicrophoneUsageDescription)、カメラの権限 (NSCameraUsageDescription)、およびフォトライブラリの権限 (NSPhotoLibraryUsageDescription) を追加します。プロジェクト設定を開きます。[Signing & Capabilities] で [Background Modes] を有効にします。バックグラウンドモードを有効にしない場合、アプリがバックグラウンドに入ったときに手動で通話終了を処理する必要があります。
ソースコードの設定
前提条件で必要なステップを完了しました。
AUIAICallAppServer.swiftファイルに移動し、サーバーサイドのドメイン名を変更します。// AUIAICallAppServer.swift public let AICallServerDomain = "Your application server domain name"説明AppServer をデプロイしていない場合、アプリ側の認証トークン生成方法を使用して、デモを迅速にテストおよび実行できます。詳細については、「AppServer がデプロイされていない場合」をご参照ください。
API の呼び出し
上記のステップを完了した後、ビジネスシナリオとインタラクションに基づいて、他のモジュールまたはご利用のアプリのホームページ上のコンポーネントインターフェイスを通じて AI コールを開始します。必要に応じてソースコードを変更することもできます。
// コンポーネントのインポート
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// マイクの権限が有効になっているか確認
AVDeviceAuth.checkMicAuth { auth in
if auth == false {
return
}
// ログイン後、ご利用のアプリのユーザー ID を userId として使用することを推奨します
let userId = "xxx"
// userId を使用してコントローラーを構築
let controller = AUIAICallController(userId: userId)
// エージェント ID を設定します。nil にすることはできません。
controller.config.agentId = "xxx"
// 通話タイプ (音声、デジタルヒューマン、または視覚理解) を設定します。エージェント ID タイプと一致する必要があります。
controller.config.agentType = agentType
// エージェントが配置されているリージョンです。nil にすることはできません。
controller.config.region = "xx-xxx"
// コール ViewController を作成
let vc = AUIAICallViewController(controller)
// コールインターフェイスを全画面モードで開く
vc.modalPresentationStyle = .fullScreen
vc.modalTransitionStyle = .coverVertical
vc.modalPresentationCapturesStatusBarAppearance = true
self.present(vc, animated: true)
}