
# 事件通知（EventMap）
本节介绍Web SDK的EventMap事件。可以通过[create](https://support.huaweicloud.com/api-metastudio/metastudio_08_0010.html#metastudio_08_0010__section2207826163312)接口的eventListeners参数或者[addEventListeners](https://support.huaweicloud.com/api-metastudio/metastudio_08_0010.html#metastudio_08_0010__section17894101718188)接口设置回调事件。
表1通知列表 
| 接口                                                                | 描述                                                                                 | 三方驱动场景（是否支持） | 非三方驱动场景（是否支持） |
|:---|:---|:---|:---|
| [error]               | 错误事件。                                                                              | √            | √             |
| [enterActive]            | 数字人激活事件。                                                                           | ×            | √             |
| [enterSleep]          | 数字人自动休眠事件。                                                                         | ×            | √             |
| [jobEnd]               | 交互任务结束事件。只有开启超时自动结束能力时，才会抛出该事件。                                                    | √            | √             |
| [jobEndMention]         | 交互任务自动结束倒计时事件。只有开启超时自动结束能力时，才会抛出该事件。                                               | √            | √             |
| [jobInfoChange]        | 交互任务信息变更事件。                                                                        | √            | √             |
| [languageInfoChange] | 交互任务多语言信息变更的事件。                                                                    | √            | √             |
| [speakingStart]         | 数字人开始讲话事件。                                                                         | ×            | √             |
| [speakingStop]         | 数字人结束讲话事件。                                                                         | ×            | √             |
| [speechRecognized]      | ASR对提问进行语音识别后输出为文本的事件。                                                             | ×            | √             |
| [semanticRecognized]     | LLM对提问进行语义识别后输出回复文本的事件。speechRecognized和semanticRecognized分别为问题和答案，每轮问答共用一个chatId。 | ×            | √             |
   
 #### error
【**事件说明**】
在业务异常时，返回的错误事件。
【**回调** **参数**】
icsError：IcsError类型。字段定义如[表2]所示。
 表2IcsError 
| 参数      | 类型     | 描述                                                                                                |
|:---|:---|:---|
| code    | string | 错误码。详情请参见[错误码（ICSError）](https://support.huaweicloud.com/api-metastudio/metastudio_08_0012.html)。 |
| message | string | 错误信息。                                                                                             |
   
 #### enterActive
【**事件说明**】
数字人激活事件。下述场景下，会触发此事件。
- 执行完成[startChat](https://support.huaweicloud.com/api-metastudio/metastudio_08_0010.html#metastudio_08_0010__section27858142719)接口。
- 单击WebSDK界面自带的"开始对话"按钮。
- 使用[Web语音唤醒](https://support.huaweicloud.com/api-metastudio/metastudio_08_0018.html)能力唤醒数字人时。
【**回调** **参数**】
无。
 #### enterSleep
【**事件说明**】
数字人自动休眠事件。
【**回调** **参数**】
无。
 #### jobEnd
【**事件说明**】
交互任务结束事件。只有控制台开启静默退出时长时，才会抛出该事件。静默退出时长配置，详见[对话配置](https://support.huaweicloud.com/usermanual-metastudio/metastudio_05_0115.html#section2)。
【**回调** **参数**】
jobEndInfo：字段定义如[表3]所示。
 表3JobEndInfo 
| 参数     | 类型     | 描述    |
|:---|:---|:---|
| jobId  | string | 任务ID。 |
| reason | string | 结束原因。 |
   
 #### jobEndMention
【**事件说明**】
交互任务自动结束倒计时事件。只有控制台开启静默退出时长时，才会抛出该事件。静默退出时长配置，详见[对话配置](https://support.huaweicloud.com/usermanual-metastudio/metastudio_05_0115.html#section2)。
【**回调** **参数**】
jobEndMentionInfo：字段定义如[表4]所示。
 表4JobEndMentionInfo 
| 参数       | 类型     | 描述      |
|:---|:---|:---|
| jobId    | string | 任务ID。   |
| restTime | number | 剩余结束时间。 |
   
 #### jobInfoChange
【**事件说明**】
变更交互任务信息的事件。交互任务状态发生变化时，会通知使用方。如果交互任务就绪，jobInfo中的jobId为进行中的任务ID，否则jobId为空字符串。
【**回调** **参数**】
jobInfo：JobInfo类型。字段定义如[表5]所示。
 表5JobInfo 
| 参数            | 类型                  | 描述                                                                                                                                                                       |
|:---|:---|:---|
| jobId         | string              | 任务ID。                                                                                                                                                                    |
| websocketAddr | string \| undefined | 智能交互服务端websocket地址，三方驱动场景用来拼接websocket链接。 参数返回的地址默认无**wss://** 前缀，实际使用时，需要补齐前缀。示例：如果返回字段内容为"*Domain* :443"，则需要拼接为wss://*Domain*:443。 |
| isReady       | boolean             | 任务是否就绪。                                                                                                                                                                  |
   
 #### languageInfoChange
【**事件说明**】
交互任务多语言信息变更的事件。当后台新增、删除语言配置，或通过接口[changeLanguage](https://support.huaweicloud.com/api-metastudio/metastudio_08_0010.html#metastudio_08_0010__section155181214514)修改语言后，会抛出该事件。
【**回调** **参数**】
languageInfo：字段定义如[表6]所示。
 表6LanguageInfo 
| 参数              | 类型                                                                                                                                 | 描述         |
|:---|:---|:---|
| languageList    | [LanguageInfo](https://support.huaweicloud.com/api-metastudio/metastudio_08_0010.html#metastudio_08_0010__table15380143915620)\[\] | 语言列表。      |
| currentLanguage | 'zh_CN' \| 'en_US'                                                                                                                 | 当前交互任务的语言。 |
   
 #### **speakingStart**
【**事件说明**】
数字人开始讲话的事件。
【**回调** **参数**】
speakInfo：字段定义如[表7]所示。
 表7SpeakInfo 
| 参数     | 类型     | 描述          |
|:---|:---|:---|
| chatId | string | 当前进行中的对话ID。 |
   
 #### **speakingStop**
【**事件说明**】
数字人结束讲话的事件。
【**回调** **参数**】
speakInfo：字段定义如[表7]所示。
 #### **speechRecognized**
![](https://support.huaweicloud.com/api-metastudio/public_sys-resources/caution_3.0-zh-cn.png)
**speechRecognized** 通知的流式返回跟**semanticRecognized** 是有差异的，详见[speechRecognized和semanticRecognized通知的流式返回有什么差异？](https://support.huaweicloud.com/api-metastudio/metastudio_08_0014.html#metastudio_08_0014__section16880133015816)
【**事件说明**】
ASR对提问进行语音识别后输出为文本的事件。
【**回调** **参数**】
question：SpeechRecognitionInfo类型。字段定义如[表8]所示。
 表8SpeechRecognitionInfo 
| 参数       | 类型      | 描述                |
|:---|:---|:---|
| text     | string  | 识别结果文本。           |
| resultId | number  | 识别流式响应时返回的各包顺序序号。 |
| isLast   | boolean | 是否是最后一条识别结果。      |
| chatId   | string  | 对话ID，每轮问答的ID值唯一。  |
   
 #### **semanticRecognized**
![](https://support.huaweicloud.com/api-metastudio/public_sys-resources/caution_3.0-zh-cn.png)
**semanticRecognized** 通知的流式返回跟**speechRecognized** 是有差异的，详见[speechRecognized和semanticRecognized通知的流式返回有什么差异？](https://support.huaweicloud.com/api-metastudio/metastudio_08_0014.html#metastudio_08_0014__section16880133015816)
【**事件说明**】
LLM对提问进行语义识别后输出回复文本的事件。speechRecognized和semanticRecognized分别为问题和答案，每轮问答共用一个chatId。
【**回调** **参数**】
answer：SemanticRecognitionInfo类型。字段定义如[表9]所示。
 表9SemanticRecognitionInfo 
| 参数           | 类型      | 描述                |
|:---|:---|:---|
| text         | string  | 识别结果文本。           |
| questionText | string  | 问题文本。             |
| resultId     | number  | 识别流式响应时返回的各包顺序序号。 |
| isLast       | boolean | 是否是最后一条识别结果。      |
| chatId       | string  | 对话ID，每轮问答的ID值唯一。  |
| extendParam  | string  | 透传模型返回定义的扩展消息。    |
   
