全部產品
Search
文件中心

Intelligent Media Services:打斷智能體講話

更新時間:Feb 03, 2026

通過閱讀本文,您可以瞭解如何通過AICallKit SDK打斷智能體講話。

使用說明

說明

該功能以及UI介面均在含UI整合方案中內建。含UI整合方案詳情,請參見含UI整合方案

實現打斷智能體功能

目前有三種方式打斷智能體講話,智能打斷、手動打斷以及設定特定詞打斷。

語義斷句

服務端配置

通過服務端啟動智能體時,您需要在調用StartAIAgentInstance - 啟動智能體執行個體產生AI智能體通話執行個體介面時,對AIAgentConfig中的ModeSemanticWaitDuration參數進行配置。

用戶端配置

通過用戶端啟動智能體時,您需要對ARTCAICallAgentConfig中的ARTCAICallAgentTurnDetectionConfig進行配置,配置ModeSemanticWaitDuration參數。

手動打斷

手動打斷是向正在說話的智能體發送一個打斷指令,智能體收到指令後,停止當前問題的回答。在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) => {
  
});