通過閱讀本文,您可以瞭解如何在iOS端接入AI即時互動音視頻智能體。
源碼說明
源碼下載
下載地址請參見GitHub開源專案。
源碼結構
├── iOS // iOS平台的根目錄
│ ├── AUIAICall.podspec // pod描述檔案
│ ├── Source // 原始碼檔案
│ ├── Resources // 資源檔
│ ├── Example // Demo代碼
│ ├── AUIBaseKits // 基礎UI組件
│ ├── README.md // Readme 環境要求
Xcode 16.0 及以上版本,推薦使用最新正式版本
CocoaPods 1.9.3 及以上版本
準備 iOS 11.0 及以上版本的真機
前提條件
已在您的服務端上開發了相關介面或直接部署提供的Server源碼,搭建步驟請參見專案部署。
跑通demo
源碼下載後,進入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": "語音通話", "tags": [], "limit_seconds": 1800, "description": "", "asr_model_id": "xxx", "tts_model_id": "xxx", "voice_styles": [] } ] }說明只體驗一種智能體時,只需要設定該智能體類型的
agent_id與region欄位值即可。region值請參考下表的 Region ID 列。地區名稱
Region Id
華東1(杭州)
cn-hangzhou
華東2(上海)
cn-shanghai
華北2(北京)
cn-beijing
華南1(深圳)
cn-shenzhen
新加坡
ap-southeast-1
完成智能體配置後,您可以通過以下兩種方式來啟動智能體:
已部署AppServer: 如果你已經在您的服務端上部署了阿里雲提供的AppServer源碼,您還需要進入檔案
AUIAICallAppServer.swift,修改服務端網域名稱。// AUIAICallAppServer.swift public let AICallServerDomain = "你的應用伺服器網域名稱"未部署AppServer:如果您還未部署AppServer源碼,需要快速跑通Demo並體驗智能體。那麼您需要進入檔案
AUIAICallAuthTokenHelper.swift,配置EnableDevelopToken參數,並從控制台拷貝智能體使用的ARTC的App Id和APP Key,在App端產生啟動鑒權Token。說明該方法需在本地填寫AppKey等敏感資訊,僅適用於體驗及開發階段,不能用於線上發布,以防止因AppKey被盜取而導致的安全事故。
// AUIAICallAuthTokenHelper.swift @objcMembers public class AUIAICallAuthTokenHelper: NSObject { // 設定為true,啟動Develop模式 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步驟如下:
前往智能媒體控制台,單擊您建立好的智能體,進入智能體詳情頁面。

單擊RTC AppID,前往ApsaraVideo for Live控制台,擷取AppId和AppKey。

選擇"Example"Target 進行編譯運行。
快速開發自己的AI通話功能
可通過以下幾個步驟快速整合AUIAICall到您的APP中,讓您的APP具備智能體音視訊通話功能。
整合源碼
匯入AUIAICall:倉庫代碼下載後,拷貝iOS檔案夾到你的APP代碼目錄下,改名為AUIAICall,與您的Podfile檔案在同一層級,可以刪除Example和AICallKit目錄。
修改Podfile,引入:
AliVCSDK_ARTC:適用於即時互動的音視頻終端SDK,也可以使用:AliVCSDK_Standard或AliVCSDK_InteractiveLive,具體整合方式,請參考iOS端。
ARTCAICallKit:AI即時互動通話情境SDK。
AUIFoundation:基礎UI組件。
AUIAICall:AI通話情境UI組件源碼。
#需要iOS11.0及以上才能支援 platform :ios, '11.0' target '你的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 = "你的應用伺服器網域名稱"說明如果您還未部署AppServer,您可以使用App端產生鑒權Token的方式,快速測試並跑通Demo。詳細內容,請參見未部署AppServer。
調用API
上述工作完成後,接下來可以根據自身的業務情境和互動,在您的APP其他模組或首頁上通過組件介面啟動AI通話,也可以根據自身的需求修改源碼。
// 引入組件
import AUIAICall
import ARTCAICallKit
import AUIFoundation
// 檢查是否開啟麥克風許可權
AVDeviceAuth.checkMicAuth { auth in
if auth == false {
return
}
// userId推薦使用你的App登入後的使用者id
let userId = "xxx"
// 通過userId構建controller
let controller = AUIAICallController(userId: userId)
// 設定智能體Id,不能為nil
controller.config.agentId = "xxx"
// 設定通話的類型(語音、數字人或視覺理解),需要與AgentId的類型對應
controller.config.agentType = agentType
// agent所在的地區,不能為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)
}