开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

输出参数

识别结果回调

设置结果的回调函数

void asr_output_callback(bds::BDSSDKMessage& message, void* user_arg);
sdk->set_event_listener(&asr_output_callback, (void*)& thread_seq);
// 此例中 thread_seq会作为user_arg参数,传入asr_output_callback回调。

BDSSDKMessage 参数

asr_output_callback 中的BDSSDKMessage message参数解析如下: message.name 必定为bds::asr_callback_name message.get_parameter(bds::CALLBACK_ASR_STATUS, status) 获取status,根据status值有如下表格

status 含义 参数
EVoiceRecognitionClientWorkStatusStartWorkIng 引擎准备完毕
EVoiceRecognitionClientWorkStatusFlushData 临时结果 CALLBACK_ASR_RESULT, 具体见下面表格
EVoiceRecognitionClientWorkStatusFinish 最终结果 CALLBACK_ASR_RESULT, 具体见下面表格
EVoiceRecognitionClientWorkStatusLongSpeechEnd 开启长语音模式时(默认开启),整个音频流识别结束。该事件表示音频流识别结束。
EVoiceRecognitionClientWorkStatusChunkNlu 语义理解结果 DATA_CHUNK, 具体见下面表格
EVoiceRecognitionClientWorkStatusError 识别出错 具体见下面EVoiceRecognitionClientWorkStatusError表格
EVoiceRecognitionClientWorkStatusCancel 用户手动取消的回调

CALLBACK_ASR_RESULT 参数

用于EVoiceRecognitionClientWorkStatusFlushData 及 EVoiceRecognitionClientWorkStatusFinish

std::string json_result;
message.get_parameter(bds::CALLBACK_ASR_RESULT,json_result);

json_result 为json字符串,解析后有如下参数: | key | 类型 | 说明 | | ------------------------------ | ------------ | ----------------------- | | results_recognition | string array | 识别结果数组,可能有多个,请取第一个为识别结果 | | origin_result["sn"] | string | 代表一句话识别的logId | | origin_result["sn_start_time"] | string | 该识别结果对应的音频开始时间 | | origin_result["sn_end_time"] | string | 该识别结果对应的音频结束时间 |

EVoiceRecognitionClientWorkStatusChunkNlu 参数

const char* buf;
int len = 0;
message.get_parameter(bds::DATA_CHUNK, buf, len);
 // std::string result(buf, len); // 转为string

具体解析的json解析结果请参见”语义理解协议“ 文档

EVoiceRecognitionClientWorkStatusError 参数

key 类型 说明
CALLBACK_ERROR_CODE int 错误码
CALLBACK_ERROR_DOMAIN int 错误领域
CALLBACK_ERROR_DESC string 错误描述
CALLBACK_ERROR_SERIAL_NUM string 代表一句话识别的logId

如果初步反馈,请将这4个值一起反馈。具体bug反馈请开启EVRDebugLogLevelTrace, 给出完整日志。

上一篇
输入参数
下一篇
错误码