实现智能体讲话的多种打断方法
实现打断智能体功能目前有三种方式打断智能体讲话,智能打断、手动打断以及设置特定词打断。
语义断句服务端配置通过服务端启动智能体时,您需要在调用StartAIAgentInstance - 启动智能体实例或GenerateAIAgentCall - 生成AI智能体通话实例接口时,对AIAgentConfig中的Mode和SemanticWaitDuration参数进行配置。
客户端配置通过客户端启动智能体时,您需要对ARTCAICallAgentConfig中的ARTCAICallAgentTurnDetectionConfig进行配置,配置Mode和SemanticWaitDuration参数。
手动打断手动打断是向正在说话的智能体发送一个打断指令,智能体收到指令后,停止当前问题的回答。在AICallKit SDK中,直接调用interruptSpeaking方法即可。
智能打断智能打断是通过语音打断智能体讲话,例如智能体在回答问题A,终端用户再次询问问题B,智能体会中断问题A的回答,开始回答问题B。在AICallKit SDK中,直接调用enableVoiceInterrupt进行开启或关闭操作。当智能体智能打断开关发生变化时,会通过onVoiceInterrupted回调出来,最终的开关以回调为准。
示例代码Android// 默认情况下是打开智能打断的,传入false关闭智能体打断
mARTCAICallEngine.enableVoiceInterrupt(false);
// 手动打断智能体说话
mARTCAICallEngine.interruptSpeaking();
// 回调处理(仅示例相关的回调操作)
ARTCAICallEngine.IARTCAICallEngineCallback mCallEngineCallbackWrapper = new ARTCAICallEngine.IARTCAICallEngineCallback() {
@Override
public void onVoiceInterrupted(boolean enable) {
// 当前通话的语音打断是否启用回调
// 最终是否开启/关闭,以该回调为准
}
}iOS// 默认情况下是打开智能打断的,传入false关闭智能体打断
_ = self.engine.enableVoiceInterrupt(enable: false)
// 手动打断智能体说话
_ = self.engine.interruptSpeaking()
func onVoiceInterrupted(enable: Bool) {
// 当前通话的语音打断是否启用回调
// 最终是否开启/关闭,以该回调为准
}
Web// 默认情况下是打开智能打断的,传入false关闭智能体打断
engine.enableVoiceInterrupt(false);
// 手动打断智能体说话
engine.interruptSpeaking();
engine.on('voiceInterruptChanged', (ennable) => {
// 当前通话的语音打断是否启用回调
// 最终是否开启/关闭,以该回调为准
console.log('AICallVoiceInterruptChanged', ennable);
});特定词打断特定词打断是在通话过程中一旦识别到特定词,就触发打断指令。打断词通常需要在启动智能体时进行配置。
示例代码Android// 1、通过设定打断词来启动AI通话,在启动通话时,设置interruptWords参数
ARTCAICallEngine.ARTCAICallConfig artcaiCallConfig = new ARTCAICallEngine.ARTCAICallConfig();
artcaiCallConfig.agentConfig.interruptConfig.interruptWords.add("打断一下");
artcaiCallConfig.agentConfig.interruptConfig.interruptWords.add("测试打断");
//省略发起通话流程
......
// 2、当触发特定词打断时,触发通话引擎的onSpeakingInterrupted回调,回调原因为byWords
@Override
public void onSpeakingInterrupted(ARTCAICallEngine.ARTCAICallSpeakingInterruptedReason reason) {
//原因是ARTCAICallSpeakingInterruptedReason.ByWorks
}iOS// 1、通过设定打断词来启动AI通话,在启动通话时,设置interruptWords参数
let agentConfig = ARTCAICallAgentConfig() // 创建ARTCAICallAgentConfig对象
agentConfig.interruptConfig.interruptWords = ["打断一下", "xxxx"]
//省略发起通话流程
......
// 2、当触发特定词打断时,触发通话引擎的onSpeakingInterrupted回调,回调原因为byWords
public func onSpeakingInterrupted(reason: ARTCAICallSpeakingInterruptedReason) {
}Web// 1、通过设定打断词来启动AI通话,在启动通话时,设置interruptWords参数
const agentConfig = new AICallAgentConfig(); // 创建ARTCAICallAgentConfig对象
agentConfig.interruptConfig.interruptWords = ['打断一下', 'xxxx'];
//省略发起通话流程
......
// 2、当触发特定词打断时,触发通话引擎的onSpeakingInterrupted回调,回调原因为byWords
engine.on('speakingInterrupted', (reason) => {
});
最新发布
-
“癸玺”“瘖兵”登场,《藏海传》引发忧虑,真的是封建迷信吗
2025-06-22 23:53:31 -
“涨价节”升级“真年份”,潭酒把品质主义重做了一遍
2025-05-31 02:47:12 -
相机在拍照时出现白屏为什么儿
2025-07-17 15:33:08 -
打造家庭安全的“千里眼”,究竟需要多少像素才配得上您的安心?
2025-05-09 07:03:20 -
淘宝刷接单平台有哪些?刷手需要注意什么?
2025-05-29 13:17:59 -
条目准备(準備)
2025-11-06 10:56:56 -
显卡内存不足怎么办 显卡内存不足如何调整方法
2025-07-28 12:02:01 -
梦幻西游刷1000亿经验时间介绍
2025-06-08 14:41:11 -
易阳指电脑版下载
2025-09-02 19:22:06 -
VMware VCP考试快速通过的方法
2025-09-06 16:15:42