リアルタイム対話型 AI の音声およびビデオエージェントを iOS アプリケーションに統合します。
ソースコードの説明
ソースコードのダウンロード
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 を変更します。エージェントシナリオ設定ファイル
/Resources/AUIAIMain.bundle/agent_scenes.jsonを開きます。エージェントタイプに基づいてエージェント ID とリージョンを指定します。たとえば、音声エージェントを設定するには、agent_typeがVoiceAgentである Scenes ノードを見つけ、agent_idとregionフィールドを入力します。// 次の例は、音声通話エージェントを設定する方法を示しています { "agent_type": "VoiceAgent", "scenes": [ { "agent_id": "<音声通話エージェント ID>", "region": "<音声通話エージェント ID があるリージョン>", "title": "Voice Call", "tags": [], "limit_seconds": 1800, "description": "", "asr_model_id": "xxx", "tts_model_id": "xxx", "voice_styles": [] } ] }説明1 つのエージェントタイプのみをテストするには、そのエージェントタイプの
agent_idとregionのフィールド値を設定するだけで済みます。regionの値については、次の表の Region ID 列をご参照ください。リージョン名
リージョン ID
中国 (杭州)
cn-hangzhou
中国 (上海)
cn-shanghai
中国 (北京)
cn-beijing
中国 (深セン)
cn-shenzhen
シンガポール
ap-southeast-1
エージェントを設定した後、次のいずれかの方法で起動します。
AppServer がデプロイされている場合: Alibaba Cloud が提供する AppServer のソースコードをデプロイした場合、
AUIAICallAppServer.swiftに移動して、サーバー側のドメイン名を設定します。// AUIAICallAppServer.swift public let AICallServerDomain = "アプリケーションサーバーのドメイン名"AppServer がデプロイされていない場合: AppServer をデプロイせずにデモを迅速に実行するには、
AUIAICallAuthTokenHelper.swiftに移動します。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 = "エージェントが使用する RTC AppId" // コンソールから RTCAppKey をコピーします private static let RTCDevelopAppKey: String = "エージェントが使用する RTC AppKey" ... }ARTC アプリケーションの AppID と AppKey を取得するには:
IMS コンソールの [AI エージェント] ページに移動します。エージェントをクリックして、エージェント詳細ページに移動します。

[ARTC application ID] をクリックします。ApsaraVideo Live コンソールにリダイレクトされ、そこに AppID と AppKey が表示されます。

Example ターゲットを選択し、プロジェクトをコンパイルして実行します。
独自の AI 通話機能のクイック開発
AUIAICall をアプリケーションに統合して、エージェントの音声およびビデオ通話機能を有効にします。
ソースコードの統合
リポジトリをダウンロードし、iOS フォルダーをアプリケーションのコードディレクトリにコピーします。 フォルダーの名前を AUIAICall に変更し、Podfile と同じレベルに配置してから、Example フォルダーを削除します。
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) を追加します。プロジェクト設定の [署名と機能] タブで、[バックグラウンドモード] を有効にします。 バックグラウンドモードを有効にしない場合は、アプリケーションがバックグラウンドに入ったときの通話の終了を手動で処理する必要があります。
ソースコードの設定
前提条件の手順を完了します。
AUIAICallAppServer.swiftに移動し、サーバー側のドメイン名を設定します。// AUIAICallAppServer.swift public let AICallServerDomain = "アプリケーションサーバーのドメイン名"説明AppServer をデプロイしていない場合は、アプリケーションで認証トークンを生成して、デモを迅速にテストできます。 詳細については、「AppServer がデプロイされていない場合」をご参照ください。
API の呼び出し
上記の手順を完了したら、コンポーネントインターフェイスを使用して、アプリケーションの他のモジュールまたはホームページから AI 通話を開始します。 ビジネス要件に合わせてソースコードを変更することもできます。
// コンポーネントのインポート
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// マイクの権限が有効になっているか確認します
AVDeviceAuth.checkMicAuth { auth in
if auth == false {
return
}
// userId には、アプリのログイン後のユーザー ID を使用します
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)
}