开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
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, 给出完整日志。

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