AI实时互动FAQ

通过阅读本文,您可以了解使用AI实时互动时常见的问题及解决方法。

常见问题

功能相关

集成相关

功能相关

AI智能体是否需要部署在客户源站上

AI智能体是阿里云提供的公共云服务,无需客户进行云端部署。客户只需通过控制台的界面配置并调用OpenAPI,即可构建和调用AI智能体。

大模型部署在阿里云百炼平台上,怎么跟AI智能体进行联动

AI智能体在产品设计上已与阿里云百炼实现了打通,您只需在控制台指定必要的参数,即可调用阿里云百炼上的大模型。详情请参见LLM 大语言模型

集成相关

启动通话时报错

错误一:提示“Could not resolve placeholder 'biz.live_mic.gslb' in value "${biz.live_mic.gslb} ”类似错误信息

服务端配置文件application.yaml某个配置遗漏或删除,通过@value注解注入的变量必须在配置文件中存在。application.yml文件中的配置可以不修改,保持为"xxxxxx",也可以配置为""。

错误二:提示“User not authorized to operate on the specified resource”

部署AppServer时,确保配置的AccessKey是否正确,并给RAM用户开通AliyunICEFullAccess权限,详细内容,请参见通过源码部署

错误三:提示“generateAIAgentCall Tea error. e:code: 404, Specified access key is not found. ”

检查服务端配置文件application.yamlAccessKeyAccessSecret是否正确配置,填写并给RAM用户开通AliyunICEFullAccess权限,详细内容,请参见通过源码部署

错误四:提示“generateAIAgentCall Tea error. e:code: 400, The specified agentId "123456" is not found. request id: xxxxxxx”

检查对应的agentId与区域是否配置正确。

image

错误五:正常返回相关token,但客户端仍然无法连接。

使用RTC token校验工具判断签名是否正确生成,相关参数均在服务端请求或返回值内,noncenull,判断生成的token是否正确。

开始消息对话时客户端报错“AgentNotFound”

在客户端代码中检查agentId及区域的设置是否配置正确。

image

客户端代码:

Android
String mAgentId = "XXX";          // 智能体ID -> 控制台创建消息对话智能体的ID
String mRegion = "cn-shanghai";   // 设置智能体所在区域 -> 控制台消息对话智能体所在的区域
ARTCAIChatAgentInfo agentInfo = new ARTCAIChatEngine.ARTCAIChatAgentInfo(mAgentId, mRegion)

iOS

// 智能体ID -> 控制台创建消息对话智能体的ID
let agentInfo = ARTCAIChatAgentInfo(agentId: "xxxx")
// 设置智能体所在区域 -> 控制台消息对话智能体所在的区域
agentInfo.region = "cn-shanghai"

开始消息对话时,客户端报错“UnsupportedWorkflowType”

当错误详情是“The specified workflowType \"VoiceChat\" is not supported by this interface. Please use a compatible workflowType: [\"MessageChat\"]”时,请检查智能体Id,该智能体的Id关联的工作流类型是否是“消息对话”。

image

image

如何调整客户端音频采集采样率

AI实时互动在采集端目前对音频参数如下:

  • 48K采样率,单声道

  • 16K采样率,单声道

AICallKit SDK默认支持48K采样率,如果需要切换到16K,可以参考如下示例代码:

说明

Web目前仅支持48K的采样率。

iOS
self.engine.audioConfig = ARTCAICallAudioConfig(audioProfile: .BasicQualityMode, audioScenario: .MusicMode)

// 调用其他api
...  

// 发起通话
self.engine.call(...)
Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.audioConfig.audioProfile = ARTCAICallAudioBasicQualityMode;
engine.init(artcaiCallConfig);

如何调整智能体播报采样率

AI实时互动目前在智能体音频播报参数如下:

  • 48K采样率,单/双声道

  • 16K采样率,单声道

AI实时互动默认支持48K采样率单声道,需要在启动通话的接口进行调整,不同的发起通话方式的调整播报采样率的方法如下:

方式一:通过服务端GenerateAIAgentCall - 生成AI智能体通话实例发起通话

您可以通过新增AgentConfig参数,构造AIAgentConfig中的ExperimentalConfig字段。

// AudioQualityMode:Integer    
// Rtc输出的采样率模式。
// 0: 48k单声道 
// 1: 48k双声道
// 2: 16k单声道
// ExperimentalConfig的值必须要为json字符串
{
    "ExperimentalConfig":"{\"AudioQualityMode\":2}"
}

方式二:通过服务端StartAIAgentInstance - 启动智能体实例发起通话

您可以通过新增AgentConfig参数,构造AIAgentConfig中的ExperimentalConfig字段。

// AudioQualityMode:Integer    
// Rtc输出的采样率模式。
// 0: 48k单声道 
// 1: 48k双声道
// 2: 16k单声道
// ExperimentalConfig的值必须要为json字符串
{
    "ExperimentalConfig":"{\"AudioQualityMode\":2}"
}

方式三:通过客户端call接口发起通话

如果已经使用callConfig方式来作为启动通话的参数,并且使用call(xxx)接口来创建与开始通话,那么可以使用该方式修改智能体播报采样率。

说明

使用该方式,AICallKit SDK的版本必须是2.5.0及以上。

iOS
let callConfig = ...   // 创建并初始化ARTCAICallConfig,可以参考使用指南文档

let agentConfig = ARTCAICallAgentConfig()         // 创建ARTCAICallAgentConfig对象
agentConfig.experimentalConfig = [
    "AudioQualityMode": 2
]
...                                                  // 根据业务需要设置参数
callConfig.agentConfig = agentConfig
self.engine.call(config: callConfig)                 // 发起通话
Android
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.agentConfig.experimentalConfig = new JSONObject();
try {
    artcaiCallConfig.agentConfig.experimentalConfig.put("AudioQualityMode", 2);
} catch (JSONException e) {
    e.printStackTrace();
}
engine.init(artcaiCallConfig);