全部產品
Search
文件中心

Intelligent Media Services:如何?智能體的情緒識別與產生

更新時間:Feb 27, 2026

本文檔將為您詳細介紹如何?智能體對情緒的識別與產生。

情緒識別對話

如何讓智能體具有情感

AI智能體能夠根據使用者的輸入,輸出相應的語音回複。為了讓智能體的回複更加有情感,您需要完成以下操作:

  • 合適的Prompt:大語言模型(LLM)需要配置合適的Prompt(提示),以確保其能夠根據使用者的輸入,選擇合適的情感進行回應。

  • 多情感的TTS模型:進行輸出的TTS文本轉語音節點需具備多種情感表達的能力。

  • (可選)智能體根據情感變化:如果您的智能體具備形象,可以使該形象根據智能體所表達的情感進行相應的變化。

說明

智能體情感識別可能導致延時變高。

如何設定合適的Prompt

情緒標籤定義

您需要對您使用的LLM配置相應的Prompt,從而在每個回複之前自動產生情感標籤。

情感標籤採用{{key=value}}格式放置在LLM回複文本的開頭,其中:

  • key:情感標籤名稱

  • value:情感標籤值

目前,AI即時互動支援以下情感標籤:

情感標籤key

含義說明

情感標籤value

emotion

說話情緒

  • neutral:自然

  • happy:高興

  • sad:悲傷

如何編寫Prompt

如何編寫Prompt詳細內容,您可以參考Prompt 最佳實務。您可以自行編寫Prompt,以滿足輸出情感標籤的要求。以下是推薦的樣本:

# 角色
你是一位智能語音助手,能夠根據使用者的情緒調整回複的情感。

## 技能
### 技能1:情感識別與回應
- **任務**:結合上下文語境,判斷使用者話語中的情緒,並以合適的語氣與情感進行回複,回複的情感包括(自然、快樂、悲傷),回複情感的切換不能太突兀。


## 限制
- 回複的內容應簡潔明了,一般不超過一到兩句話。
- 情感標籤必須放在回複的最開頭,格式為:{{emotion=情感}},情感對應的英文為:自然-neutral,快樂-happy,悲傷-sad
- 確保回複內容積極健康,避免使用不當或冒犯性的語言。
- 在回複中保持一致性,確保情感、語速和音調的調整符合使用者的情緒狀態。

## 樣本
- 使用者:“今天天氣不錯。”
  - 助手:{{emotion=neutral}} 是啊,陽光明媚。
說明

上述Prompt適用於百鍊及系統預置的通義千問大型語言模型(LLM),您可以直接複製到控制台測試使用。

配置多情感TTS模型

在大型語言模型(LLM)產生帶有情感標籤的文本後,需要藉助文本轉語音(TTS)技術,實現可調節情感和語速的語音輸出。目前AI即時互動提供了兩種方案供您選擇:

  • TTS節點選擇MiniMax模型:MiniMax支援多情感音色,您可以選擇MiniMax模型作為您的TTS輸出節點。MiniMax模型詳情,請參見MiniMax語音模型

  • TTS節點選擇自研TTS模型:使用自研TTS模型,按照自研TTS標準介面接入,您需要在您的TTS模型中支援上述的情感標籤。詳情請參見,TTS標準介面

(可選)如何?智能體根據情感變化

如果您的智能體在用戶端側具備形象,您可以選擇根據情感標籤為智能體形象賦予相應的表情。實現智能體的情感變化,主要包括兩個部分:

  • 用戶端感知智能體的情緒變化

  • 用戶端根據情緒標籤渲染智能體

說明

用戶端目前需您自行實現根據情緒標籤渲染智能體部分。

用戶端感知智能體的情緒變化

您需要通過調用回調介面onAgentEmotionNotify來擷取當前智能體的情緒變化,如果您的UI介面上的智能體支援表情動畫,那麼在接收到回調介面返回的情緒標籤時,可以驅動表情動畫。

說明

用戶端需要使用AICallKit SDK v1.6.0及以上版本,在本樣本中也僅支援對情緒標籤進行Toast提示。

onAgentEmotionNotify() 詳情:

參數

emotion

情緒標籤,例如:neutral\happy\sad 等

userAsrSentenceId

使用者側提問的句子ID

範例程式碼

Android

// 回調處理(僅樣本不分核心的回調操作)
ARTCAICallEngine.IARTCAICallEngineCallback mCallEngineCallbackWrapper = new ARTCAICallEngine.IARTCAICallEngineCallback() {
    
	@Override
    public void onAgentEmotionNotify(String emotion,int userAsrSentenceId) {
        // 智能體情緒結果通知
    }

    // 其他回調
    ...
};

iOS

extension AUIAICallStandardController: ARTCAICallEngineDelegate {

    
	public func onAgentEmotionNotify(emotion: String, userAsrSentenceId: Int) {
        // 智能體情緒結果通知
        debugPrint("AUIAICallStandardController onAgentEmotionNotify:\(emotion)  sentenceId: \(userAsrSentenceId)")
    }

    // 其他回調
    ...
}

Web

aiCallEngine.on('agentEmotionNotify', (emotion, sentenceId) => {
  // 智能體情緒結果通知
  console.log(`智能體情緒:${emotion}, 語句:${sentenceId}`);
});