SDK版本号:2.1.20
OS:Android
语音“ 播放歌曲” 解析结果如下:
{"content":{"item":["播放歌曲"],"json_res":"{\"parsed_text\":\"播放 歌曲\",\"raw_text\":\"播放歌曲\",\"results\":[{\"domain\":\"music\",\"intent\":\"play\",\"object\":{\"_type\":\"歌曲\",\"type\":\"歌曲\"},\"score\":0.950},{\"domain\":\"player\",\"intent\":\"set\",\"object\":{\"_action_type\":\"播放歌曲\",\"action_type\":\"play\"},\"score\":0.950},{\"domain\":\"vehicle_instruction\",\"intent\":\"open\",\"object\":{\"_equipment\":\"media_player\",\"equipment\":\"media_player\"},\"score\":0.950}]}\n"},"result":{"corpus_no":6340156472458283668,"err_no":0,"idx":-15,"res_type":3,"sn":"1ba760c2-311d-4999-9ba9-37d8afbd196e"}}
domain 解析出来多个,每个domain相关的字段根据 语意会有不同的变化,
问题:
1)如何 用代码来解析 不同的domain相关的数据?
2)如何处理 domain中 变化的字段?因为要根据解析结果来操作具体的执行。
https://ai.baidu.com/search/%E6%9E%9C%E6%95%A2%E8%80%81%E8%A1%97%E4%BA%A8%E5%88%A9%E9%9B%86%E5%9B%A2%E5%AE%98%E7%BD%91TL262%C2%B7C%EF%BC%AFM%E6%B7%84%E5%8D%9A%E7%99%BE%E5%A7%93%E7%BD%91%EF%BC%AE%EF%BC%A5/cases/1 https://read.douban.com/tag/%E7%BC%85%E7%94%B8%E5%8D%8E%E7%BA%B3%E5%9B%BD%E9%99%85%E6%89%8B%E6%9C%BAapp%E5%BE%AE%E4%BF%A1%E5%BC%80%E6%88%B7%E7%94%B5%E8%AF%9D%E6%B8%B8%E6%88%8F%E7%BD%91%E5%9D%80B2024%C2%B7CN%E8%B4%B5%E9%98%B3%E7%A7%BB%E5%8A%A8%EF%BC%BB http://mip.chinaz.com/?query=%E5%90%89%E6%9E%97%E5%90%89%E6%9E%97%E7%9C%9F%E4%BA%BA%E5%B9%B3%E5%8F%B0%E3%80%90TL262%C2%B7C%EF%BC%AFM%E6%AC%A2%E8%BF%8E%E6%82%A8%E3%80%91%E5%AE%9A%E8%A5%BF%E7%BD%91%E9%80%9A%EF%BD%93%EF%BC%A5 http://so.iqiyi.com/so/q_%E9%93%B6%E9%92%BB%E5%A8%B1%E4%B9%90%E5%BC%80%E6%88%B7%E5%AE%98%E7%BD%91%E5%BE%AE%E4%BF%A1%E7%9B%B4%E8%90%A5%E5%BC%80%E6%88%B7%3ATL262%C2%B7%EF%BC%A3%EF%BC%AF%EF%BC%AD%E5%BB%8A%E5%9D%8A%E7%99%BE%E5%A7%93%E7%BD%91%EF%BC%A7%EF%BC%BB%EF%BC%B2?source=hot https://www.ziyuan.tv/search/%E7%BC%85%E7%94%B8%E9%91%AB%E7%99%BE%E5%88%A9%E7%AE%80%E4%BB%8B%E5%BC%80%E6%88%B7B2024.cN%E6%9D%AD%E5%B7%9E%E8%8A%82%E7%9B%AE%E8%A1%A8%EF%BD%8E
建议直接通过JSONObject类来解析 不要向Java类反序列化或映射
获取第一个结果如何解析呢?
一般来说都是将 json串转化为一个相关的json类。
我们可以知道json的domain 标记的值,但是 同一个domain中数据格式又不一样(同一个场景的不同输入,播放忘情水,和播放刘德华的忘情水, 解析的格式就不同,,其他场景 下也可能解析结果 里面的字段也不一致。),有没有好的办法来处理 解析出来的结果呢?
就是说同一个domain 格式不同 对应的类就不同,那么如何准确判断把json转化为正确的类呢
您好,针对您的问题建议只使用第一个结果
其他设置
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_START, R.raw.bdspeech_recognition_start);intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_END, R.raw.bdspeech_speech_end);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_SUCCESS, R.raw.bdspeech_recognition_success);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_ERROR, R.raw.bdspeech_recognition_error);
intent.putExtra(SoundAnalysisConstant.EXTRA_SOUND_CANCEL, R.raw.bdspeech_recognition_cancel);
// intent.putExtra(SoundAnalysisConstant.EXTRA_GRAMMAR, "assets:///baidu_speech_grammar.bsg");
intent.putExtra(SoundAnalysisConstant.EXTRA_NLU, "enable");
// intent.putExtra(SoundAnalysisConstant.EXTRA_OFFLINE_SLOT_DATA, buildTestSlotData());
intent.putExtra(SoundAnalysisConstant.EXTRA_SAMPLE, SoundAnalysisConstant.SAMPLE_16K);
// intent.putExtra(SoundAnalysisConstant.EXTRA_LANGUAGE, "cmn-Hans-CN");
// intent.putExtra(SoundAnalysisConstant.EXTRA_PROP, "100060, 10001, 10008, 100014, 100019, 100020");