打断智能体讲话

通过阅读本文,您可以了解如何通过AICallKit SDK打断智能体讲话。

使用说明

  • 本示例主要旨在帮助您在不含UI集成的情况下,如何利用API实现该功能。

  • 您需要提前集成AICallkit SDK。如何集成,请参见Android集成SDKiOS集成SDKWeb集成SDK

打断智能体效果预览

手动打断

向正在说话的智能体发送一个打断指令。

lQHPKGaqy3wSDqHNAvrNAXCwpC-ZTT_sSvIHVzjlGNXeAA_368_762

智能打断

支持语音打断正在讲话的智能体。

abba5f275a4f6d878e93a0094cd244bf

说明

该功能以及UI界面均在含UI集成方案中内置。含UI集成方案详情,请参见UI集成方案

实现打断智能体功能

目前有两种方式打断智能体讲话,智能打断和手动打断:

  • 手动打断是向正在说话的智能体发送一个打断指令,智能体收到指令后,停止当前问题的回答。在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);
});