このトピックでは、iOS 用 AlCallKit SDK で使用可能な API について説明します。
概要
クラスまたはプロトコル | API | 説明 |
ARTCAICallEngineInterface エンジンインスタンス | 現在の通話におけるユーザーの ID を照会します。 | |
通話が進行中かどうかを示します。 | ||
現在のエージェントに関する情報を照会します。 | ||
現在のエージェントのステータスを照会します。 | ||
コールバックイベントを構成およびクエリします。 | ||
呼び出しを開始します。 | ||
指定された通話構成を使用して通話を開始します。 | ||
通話を終了します。 | ||
オーディオ構成。 | ||
エージェントのレンダリングビューを構成します。 | ||
エージェントの発話を中断します。 | ||
インテリジェントな割り込みを有効または無効にします。 | ||
音声を変更します。 | ||
スピーカーを有効または無効にします。 | ||
プッシュツートークモードを有効または無効にします。 | ||
プッシュツートークモードで話し始めます。 | ||
プッシュツートークモードでの発話を終了します。 | ||
プッシュツートークモードでの発話をキャンセルします。 | ||
マイクをミュートまたはミュート解除します。 | ||
エージェントからの音声をミュートまたはミュート解除します。 | ||
視覚構成。 | ||
カメラのオンとオフを切り替えます。 | ||
前面カメラと背面カメラを切り替えます。 | ||
共有エージェントに関する情報を解析します。 | ||
共有エージェントとの通話を開始します。 | ||
リアルタイムコミュニケーション ( RTC ) エンジンインスタンスに関する情報を照会します。 | ||
エージェントにテキストメッセージを送信します。 | ||
AppServer にカスタムメッセージを送信します。 | ||
大規模言語モデル ( LLM ) のシステムプロンプトを更新します。 | ||
カスタムフレームキャプチャを開始します。 | ||
カスタムフレームキャプチャを終了します。 | ||
リソースを解放します。 | ||
ARTCAICallEngineDelegate エンジンインスタンスのコールバックイベント | エラーが発生しました。 | |
エージェントが開始されました。 | ||
通話が開始されました。 | ||
通話が終了しました。 | ||
エージェントの取り込まれたビデオストリームが利用可能かどうかを示します。 | ||
エージェントの取り込まれたオーディオストリームが利用可能かどうかを示します。 | ||
RTC エンジンが作成されました。 | ||
現在の通話でプッシュツートークモードが有効かどうかを示します。 | ||
エージェントが現在の通話を終了しようとしています。 | ||
エージェントからカスタムメッセージを受信しました。 | ||
エージェントのステータスが変更されました。 | ||
ネットワークステータスが変更されました。 | ||
音量が変更されました。 | ||
エージェントはユーザーの質問を認識します。 | ||
エージェントは回答を返します。 | ||
LLM は、現在の通話での質問への応答を完了しました。 | ||
エージェントの音声が変更されました。 | ||
現在の通話の音声中断ステータスが変更されました。 | ||
エージェントの発話が指定されたキーワードを使用して中断されました。 | ||
Visual Understanding エージェントとの現在の呼び出しで、カスタムフレームキャプチャが有効になっているかどうかを示します。 | ||
デジタルヒューマンエージェントの最初のビデオフレームがレンダリングされました。 | ||
人間のエージェントが現在のエージェントから引き継ごうとしています。 | ||
人間のエージェントが現在のエージェントから引き継ぎました。 | ||
エージェントは感情を検出します。 | ||
ARTCAICallEngineFactory エンジンファクトリ | デフォルトのエンジンインスタンスを作成します。 |
詳細
ARTCAICallEngineInterface
userId
現在の通話におけるユーザーの ID を照会します。
var userId: String? {get}
isOnCall
通話が進行中かどうかを示します。有効な値: true および false。
var isOnCall: Bool { get }
agentInfo
エージェントの種類、チャネル ID、チャネル内のエージェントの UID、エージェントのインスタンス ID など、現在のエージェントに関する情報を照会します。詳細については、「ARTCAICallAgentInfo」をご参照ください。
var agentInfo: ARTCAICallAgentInfo? { get }
agentState
現在のエージェントのステータスを照会します。エージェントは、リスニング、思考、または発話のいずれかの状態になります。詳細については、「ARTCAICallAgentState」をご参照ください。
var agentState: ARTCAICallAgentState { get }
delegate
コールバックイベントを構成および照会します。詳細については、「ARTCAICallEngineDelegate」をご参照ください。
weak var delegate: ARTCAICallEngineDelegate? { get set }
call[1/2]
通話を開始します。
このインターフェイスは、サーバーからエージェントが呼び出されたときにクライアントによって呼び出されます。サーバーからエージェントコールを開始する方法の詳細については、「サーバーインターフェイスを介してエージェントコールを開始する方法」をご参照ください。
func call(userId: String, token: String, agentInfo: ARTCAICallAgentInfo, completed:((_ error: NSError?) -> Void)?)
パラメーター | タイプ | 説明 |
userId | String | 現在のユーザーの UID。 |
token | String | 通話への参加に使用されるトークン。 |
agentInfo | エージェント情報。 | |
completed | ((_ error: NSError?) -> Void)? | プロセスが完了すると呼び出されるコールバック。 |
call[2/2]
指定された通話構成を使用して通話を開始します。
この操作は、エージェントとの通話を開始するためにクライアントによって呼び出されます。これはデフォルトの呼び出しメソッドです。詳細については、「iOS」をご参照ください。
func call(config: ARTCAICallConfig) -> Bool
パラメーター | タイプ | 説明 |
config | 通話構成。 |
handup
通話を終了します。
func handup(_ stopAIAgent: Bool)
パラメーター | タイプ | 説明 |
stopAIAgent | Bool | エージェントを停止するかどうかを指定します。 |
audioConfig
サンプリングレート、チャネル数、ビットレートなどのエンコーディングパラメーターと、デフォルトシナリオや音楽シナリオなどのシナリオオプションを含むオーディオ構成。構成は、通話前に構成された場合にのみ有効になります。詳細については、「ARTCAICallAudioConfig」をご参照ください。
var audioConfig: ARTCAICallAudioConfig { set get }
setAgentViewConfig
エージェントのレンダリングビューを構成します。この設定は、デジタルヒューマンエージェントに対してのみ有効です。
func setAgentViewConfig(viewConfig: ARTCAICallViewConfig?)
パラメーター | タイプ | 説明 |
viewConfig | レンダリングビュー、レンダリングモード、ミラーモード、回転モードなどのレンダリングビュー設定。 |
interruptSpeaking
エージェントの発話を中断します。
func interruptSpeaking() -> Bool
enableVoiceInterrupt
インテリジェントな中断を有効または無効にします。
func enableVoiceInterrupt(enable: Bool) -> Bool
パラメーター | タイプ | 説明 |
enable | Bool | インテリジェントな中断を有効にするかどうかを指定します。 |
switchVoiceId
音声を変更します。
func switchVoiceId(voiceId: String) -> Bool
パラメーター | タイプ | 説明 |
voiceId | String | 音声 ID。 |
enableSpeaker
スピーカーを有効または無効にします。
func enableSpeaker(enable: Bool) -> Bool
パラメーター | タイプ | 説明 |
enable | Bool | スピーカーを有効にするかどうかを指定します。 |
enablePushToTalk
プッシュツートークモードを有効または無効にします。プッシュツートークモードでは、finishPushToTalk 操作が呼び出された後にのみ、エージェントは結果を返します。
func enablePushToTalk(enable: Bool) -> Bool
パラメーター | タイプ | 説明 |
enable | Bool | プッシュツートークモードを有効にするかどうかを指定します。 |
startPushToTalk
プッシュツートークモードで話し始めます。
func startPushToTalk() -> Bool
finishPushToTalk
プッシュツートークモードでの発話を終了します。
func finishPushToTalk() -> Bool
cancelPushToTalk
プッシュツートークモードでの発話をキャンセルします。
func cancelPushToTalk() -> Bool
muteMicrophone
マイクをミュートまたはミュート解除します。
func muteMicrophone(mute: Bool) -> Bool
パラメーター | タイプ | 説明 |
mute | Bool | マイクをミュートするかどうかを指定します。 |
muteAgentAudioPlaying
エージェントからの音声をミュートまたはミュート解除します。
func muteAgentAudioPlaying(mute: Bool) -> Bool
パラメーター | タイプ | 説明 |
mute | Bool | エージェントからの音声をミュートするかどうかを指定します。 |
visionConfig
解像度とフレームレートを含む視覚構成。視覚理解エージェントを使用する場合は、この構成が必要です。構成は、通話前に構成された場合にのみ有効になります。詳細については、「ARTCAICallVisionConfig」をご参照ください。
var visionConfig: ARTCAICallVisionConfig { set get }
muteLocalCamera
カメラのオンとオフを切り替えます。
func muteLocalCamera(mute: Bool) -> Bool
パラメーター | タイプ | 説明 |
mute | Bool | カメラをオフにするかどうかを指定します。 |
switchCamera
前面カメラと背面カメラを切り替えます。
func switchCamera() -> Bool
parseShareAgentCall
共有エージェントに関する情報を解析します。解析が成功すると、ARTCAICallAgentShareConfig タイプのインスタンスが返されます。これは、エージェントとの通話を開始するために使用できます。
func parseShareAgentCall(shareInfo: String) -> ARTCAICallAgentShareConfig?
パラメーター | タイプ | 説明 |
shareInfo | String | コンソールで生成できる共有エージェント情報。 |
generateShareAgentCall
共有エージェントとの通話を開始します。
func generateShareAgentCall(shareConfig: ARTCAICallAgentShareConfig, userId: String, completed: ((_ rsp: ARTCAICallAgentInfo?, _ token: String?, _ error: NSError?, _ reqId: String) -> Void)?)
パラメーター | タイプ | 説明 |
shareConfig | 共有 ID、エージェントタイプ、有効期限、テンプレート構成、リージョンなどの共有構成。SDK を使用して、それらの定義を表示できます。 | |
userId | String | ログインユーザーの ID。 |
completed | ((_ rsp: ARTCAICallAgentInfo?, _ token: String?, _ error: NSError?, _ reqId: String) -> Void)? | プロセスが完了すると呼び出されるコールバック。 |
getRTCInstance
RTC エンジンインスタンスに関する情報を照会します。
func getRTCInstance() -> AnyObject?
sendTextToAgent
エージェントにテキストメッセージを送信します。
func sendTextToAgent(req: ARTCAICallSendTextToAgentRequest) -> Bool
パラメーター | タイプ | 説明 |
req | 送信するメッセージ構造体。 |
sendCustomMessageToServer
AppServer にカスタムメッセージを送信します。通話セッションが開始された後に、この操作を呼び出します。
func sendCustomMessageToServer(msg: String) -> Bool
パラメーター | タイプ | 説明 |
msg | String | メッセージの内容。 |
updateLlmSystemPrompt
LLM のシステムプロンプトを更新します。通話セッションが開始された後に、この操作を呼び出します。
func updateLlmSystemPrompt(prompt: String) -> Bool
パラメーター | タイプ | 説明 |
prompt | String | プロンプト。 |
sendCustomMessageToServer
カスタムフレームキャプチャを開始します。開始されると、視覚理解エージェントとの音声通信は無効になります。視覚理解エージェントとの通話を開始した後に、この操作を呼び出します。
func startVisionCustomCapture(req: ARTCAICallVisionCustomCaptureRequest) -> Bool
パラメーター | タイプ | 説明 |
req | 構成情報。 |
stopVisionCustomCapture
カスタムフレームキャプチャを終了します。視覚理解エージェントとの通話を開始した後に、この操作を呼び出します。
func stopVisionCustomCapture() -> Bool
破棄
リソースを解放します。
func destroy() // 破棄
ARTCAICallEngineDelegate の詳細
onErrorOccurs
現在の呼び出し中にエラーが発生しました。
@objc optional func onErrorOccurs(code: ARTCAICallErrorCode) // エラーが発生した時に呼び出されます。
パラメーター | タイプ | 説明 |
code | エラーコード。 |
onAgentStarted
エージェントが開始されました。
@objc optional func onAgentStarted() // コール エージェントが開始されました
onCallBegin
通話が開始されました。
@objc optional func onCallBegin() // 通話が開始されたとき
onCallEnd
通話が終了しました。
@objc optional func onCallEnd() // 通話が終了する
onAgentVideoAvailable
エージェントの取り込まれたビデオストリームが利用可能かどうかを示します。
@objc optional func onAgentVideoAvailable(available: Bool) // インテリジェントエージェントの取り込まれたビデオストリームが利用可能かどうかを示します。
パラメーター | タイプ | 説明 |
available | Bool | エージェントの取り込まれたビデオストリームが利用可能かどうかを示します。 |
onAgentAudioAvailable
エージェントの取り込まれたオーディオストリームが利用可能かどうかを示します。
@objc optional func onAgentAudioAvailable(available: Bool)
パラメーター | タイプ | 説明 |
available | Bool | エージェントの取り込まれたオーディオストリームが利用可能かどうかを示します。 |
onRTCEngineCreated
RTC エンジンが作成されました。このコールバックで getRTCInstance を呼び出して、RTC エンジンインスタンスを照会できます。
@objc optional func onRTCEngineCreated()
onPushToTalk
現在の通話でプッシュツートークモードが有効かどうかを示します。
@objc optional func onPushToTalk(enable: Bool) // インターコムモードが有効かどうかを示します。
パラメータ | 型 | 説明 |
enable | Bool | プッシュツートークモードが有効かどうかを示します。 |
onAgentWillLeave
エージェントが現在の通話を終了しようとしています。
@objc optional func onAgentWillLeave(reason: Int32, message: String)
パラメータ | 型 | 説明 |
reason | Int32 | エージェントが退出する理由。有効な値:
|
message | String | 理由の説明。 |
onReceivedAgentCustomMessage
エージェントからカスタムメッセージを受信しました。
@objc optional func onReceivedAgentCustomMessage(data: [String: Any]?) // data: メッセージの内容
パラメータ | 型 | 説明 |
data | [String: Any]? | メッセージの内容。 |
onAgentStateChanged
エージェントのステータスが変更されました。
@objc optional func onAgentStateChanged(state: ARTCAICallAgentState) // エージェントの状態が変化したときに呼び出されます。
パラメーター | タイプ | 説明 |
state | エージェントのステータス。エージェントは、リスニング、思考、または発話のいずれかの状態になります。 |
onNetworkStatusChanged
ネットワークステータスが変更されました。
@objc optional func onNetworkStatusChanged(uid: String, quality: ARTCAICallNetworkQuality)
パラメーター | タイプ | 説明 |
uid | String | 現在の発言者の ID です。 |
quality | ネットワーク品質。有効な値:
|
onVoiceVolumeChanged
音量が変更されました。
@objc optional func onVoiceVolumeChanged(uid: String, volume: Int32)
パラメーター | タイプ | 説明 |
uid | String | 現在の発言者の UID です。 |
volume | Int32 | 音量です。有効な値: 0 ~ 255。 |
onUserSubtitleNotify
エージェントはユーザーの質問を認識します。
@objc optional func onUserSubtitleNotify(text: String, isSentenceEnd: Bool, sentenceId: Int)
パラメーター | タイプ | 説明 |
text | String | エージェントによって認識されたテキスト。 |
isSentenceEnd | Bool | 現在のテキストが文の末尾かどうかを示します。 |
sentenceId | Int | 現在のテキストが属する文の ID です。 |
userId
エージェントは回答を返します。
@objc optional func onVoiceAgentSubtitleNotify(text: String, isSentenceEnd: Bool, userAsrSentenceId: Int) // 音声エージェントの字幕通知を受け取ります。
パラメーター | タイプ | 説明 |
text | String | エージェントが提供する回答のテキスト。 |
isSentenceEnd | Bool | 現在のテキストが回答の最後の文かどうかを示します。 |
userAsrSentenceId | Int | エージェントによって認識されたユーザーの質問が属する文の ID。 |
onLLMReplyCompleted
LLM は、現在の通話での質問への応答を完了しました。
@objc optional func onLLMReplyCompleted(text: String, userAsrSentenceId: Int)
パラメーター | タイプ | 説明 |
text | String | LLM によって生成されたテキスト。 |
userAsrSentenceId | Int | エージェントによって認識されたユーザーの質問が属する文の ID。 |
isOnCall
エージェントの音声が変更されました。
@objc optional func onVoiceIdChanged(voiceId: String) // voiceId が変更されたときに呼び出されます。
パラメーター | タイプ | 説明 |
voiceId | String | 音声 ID です。 |
agentInfo
現在の通話で音声割り込みが有効になっているかどうかを示します。
@objc optional func onVoiceInterrupted(enable: Bool) // 音声の中断時に呼び出されます (enable: 有効)
パラメーター | タイプ | 説明 |
enable | Bool | 音声割り込みが有効かどうかを示します。 |
onSpeakingInterrupted
エージェントの発話が中断されました。
@objc optional func onSpeakingInterrupted(reason: ARTCAICallSpeakingInterruptedReason) // 指定されたキーワードによって中断された理由
パラメーター | タイプ | 説明 |
reason | 指定されたキーワードを使用した中断などの理由。 |
onVisionCustomCapture
視覚理解エージェントとの現在の呼び出しで、カスタム フレーム キャプチャが有効になっているかどうかを示します。
@objc optional func onVisionCustomCapture(enable: Bool) // カスタム フレーム キャプチャが有効になっているかどうかを示します。
パラメーター | タイプ | 説明 |
enable | Bool | カスタム フレーム キャプチャが有効になっているかどうかを示します。 |
onAgentAvatarFirstFrameDrawn
デジタルヒューマンエージェントの最初のビデオフレームがレンダリングされました。
@objc optional func onAgentAvatarFirstFrameDrawn() // デジタルヒューマンエージェントの最初のビデオフレームがレンダリングされたことを通知します。
onHumanTakeoverWillStart
人間のエージェントが現在のエージェントから引き継ごうとしています。
@objc optional func onHumanTakeoverWillStart(takeoverUid: String, takeoverMode: Int)
パラメータ | 型 | 説明 |
takeoverUid | String | 人間のエージェントの UID です。 |
takeoverMode | Int | 引き継ぎモード。有効な値:
|
onHumanTakeoverConnected
人間のエージェントが現在のエージェントから引き継ぎました。
@objc optional func onHumanTakeoverConnected(takeoverUid: String) // 人間のエージェントが接続されたときに呼び出されます。
パラメータ | 型 | 説明 |
takeoverUid | String | 人間のエージェントの UID です。 |
onAgentEmotionNotify
エージェントは感情を検出します。
@objc optional func onAgentEmotionNotify(emotion: String, userAsrSentenceId: Int) // 感情を通知する
パラメータ | 型 | 説明 |
emotion | String | ニュートラル、ハッピー、アングリー、悲しいなどの感情タグ。 |
userAsrSentenceId | Int | エージェントによって認識されたユーザーの質問が属する文の ID。 |
ARTCAICallEngineFactory の詳細
createEngine
デフォルトのエンジンインスタンスを作成します。
public static func createEngine() -> ARTCAICallEngineInterface