语义理解,分为文本语义和语音语义,主要是把自然语言内容,转换为有一定结构的文本数据,使应用能够抓取其中的重点数据,理解用户的使用意图,进行下一步的处理。
文本语义,即将自然语言的文本,转换(进行理解)为一定结构的文本数据。如“今天合肥的天气怎么样”这句话,在假设内容有限时,实际可以在应用里直接分解出用户的意图——查询合肥的天气。
语音语义, 是先把音频数据转为听写结果数据——自然语言的文本,再由服务器自动进行文本语义理解,相当于在文本语义前,先进行听写,所以代码流程基本和语音听写一致,区别仅仅是在QISRSessionBegin()时,需要设置以下参数来完成服务器语义理解:
| 参数 |名称 |取值 |
| --- | --- | --- |
| sch| 是否使用语义功能 |1:使用语义|
|nlp_version| 语义版本(仅在使用AIUI开放平台语义功能时有效)| 3.0|
|scene |语义场景(仅在使用AIUI开放平台语义功能时有效)| 默认为scene=main,可以设置为已创建的情景模式|
**当前语义理解仅有在线模式**。
**注意:**
SDK申请时,默认未开通语义理解功能(运行sample示例会报14002错误),可通过[AIUI开放平台 ->我的应用](http://aiui.xfyun.cn/default/index)进行语义场景的配置。
详细代码调用请参考 Samples中的 sch_text_sample(文本语义示例),sch_speak_sample(语音语义示例);
API详细描述请参考doc目录中的 iFlytek MSC Reference Manual.html ,听写业务主要对应的是msp_cmn.h 和 qisr.h。