• 讯飞AIUI智能机器人5-----让器理解你(语音技术综合应用)


    在这里插入图片描述
    🍖🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖
    🍖🍖
    🍖🍖🍖
    🍖🍖🍖🍖 作者 : 不良使
    🍖🍖🍖🍖🍖 潜力创作新星 华为云享专家
    🍖🍖🍖🍖🍖🍖 博客记录学习的思路,项目和错误,寻找志同道合的朋友
    🍖🍖🍖🍖🍖🍖🍖 如果觉得有帮助记得一键三连 ┗|`O′|┛ 嗷~~
    🍖🍖🍖🍖🍖🍖🍖🍖

    🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖🍖 🍖🍖🍖🍖🍖🍖🍖

    🍓🍓一、实验目的

    本次实验通过设计一个智能语音交互应用场景,应用中使用到了语音识别、 语音合成、语义理解等技术,让学生了解语音交互智能技术如何在机器人上使 用,同时对语音交互技术的使用途径和步骤进行详细讲解,理解起来更 加轻松,本实验的具体实验目标如下:
    1、熟练掌握语音合成、语音识别、语义理解相关技术的使用方法;
    2、能够基于业务需求完成简单的语义设计;
    3、掌握简单的语音交互场景设计,并能完成语音交互智能应用的开发。


    🍓🍓二、实验内容

    语音交互技术作为人工智能领域的核心组成部分,也是智能机器人技术发展 的重要要素。语音交互技术主要包含以下几个方面。语音合成技术,将文本内容合成为自然语音,并通过设备发声。语音识别技术,将自然语音通过转写引擎识别为文本内容。语义理解技术,对自然语言文本的理解,识别其具体表达的意思。 本次实验通过实现一个自动问答的商城智能语音客服系统,对语音合成和语 音识别、语义理解等 AI 技术在实际智能应用中的综合应用,达到人机智能交互的效果,简而言之就是我在讯飞接口里面设置好我的问答库,然后通过和组件(机器人)对话希望可以得到组件库里面的内容。


    🍓🍓三、实验步骤

    🍖🍖步骤 1:交互场景需求设计

    我们基于机器人开发平台完成一个智能语音客服系统,该系 统围绕在线商城的业务咨询场景,可以识别和理解用户通过语音提出的问题,并 对问题进行语音回答。可以闲聊天,也可以商品咨询或者查询快递状态。简而言之就是和机器对话得到答案(之前设置好的问答库)

    🍖🍖步骤 2:AIUI 开放平台应用添加及设置

    🛴🛴1、参考语音识别技术体验_实验指导书完成 AIUI 开放平台的应用添加,获取应用的appid和appkey
    在这里插入图片描述

    🛴🛴2、在应用配置页面开启应用的语义理解功能。
    在这里插入图片描述

    🛴🛴3、添加商店技能
    在这里插入图片描述

    🛴🛴4、添加自定义问答,准备好问答库。添加自定义技能,记得搜有的添加都要构建才能生效
    在这里插入图片描述


    🍖🍖步骤 3:项目工程搭建及能力包导入

    在这里插入图片描述
    在这里插入图片描述


    🍖🍖步骤 4:项目 AIUI 能力导入及配置

    完成了工程项目的搭建后,我们需要在项目工程中集成 AIUI 能力,具体步 骤如下:

    💖💖一、首先,导入配置文件,将 aiui.cfg 文件导入到应用工程目录:src/main/assets/cfg/ (该文件示例工程同目录中可获取);

    💖💖二、修改 aiui.cfg 文件中的配置信息,具体如下:
    1. / AIUI 参数配置 /
    /
    login 相关参数 /
    “login”:{
    “appid”:"
    ******“,
    “key”:”
    *********************"
    }
    /* 交互参数 /
    “interact”:{
    “interact_timeout”:“60000”,
    “result_timeout”:“5000”
    },
    /
    全局设置 */
    “global”:{
    “scene”:"
    "
    }, 修改代码中*标识的位置,主要包括 appid,appkey ,scene(场景),将 AIUI 平台创建的应用相关信息填入。 同时需要在 AndroidManifest.xml 中完成权限申请,如下图所示

    在这里插入图片描述


    🍖🍖步骤 5:功能代码开发

    💖💖1) AIUI 能力集成
    我们的应用工程 MainActivity.java 文件的 onCreate 中进行 AIUI 的能 力初始化,并在文件中添加相应的回调方法

    💖💖2) 添加页面布局
    在这里插入图片描述

    💖💖3) 应用数据添加和解析

    一般在应用开发过程中,应用的业务数据都是存储在后台服务器的数据库中, 应用通过接口的方式调用后台服务获取业务数据,在本次实验中,后台服务相关 知识不作为我们的实验内容,所以我们使用本地的数据来存储相关业务数据,通 过数据解析的方式获取数据。 文档密级:外部公开 11 我们在项目工程目录/app/src/main/assets 下面添加一个数据文件,命名为 data.cfg,文件代码。然后,在 MainActivity.java 文件中对数据文件进行解析,完成解析后将业务 数据存储到全局变量中,在 onCreate 方法中调用该数据解析方法,完成业务数据的初始化。代码如下(部分):
    在这里插入图片描述

     
    private void handleGoodsConsult(SemanticBean bean){
        SemanticBean.Semantic semantic = bean.getSemantic().get(0);
        SemanticBean.Slots goods_slot = semantic.getSlots().get(0);
    
        String goods_name = goods_slot.getValue();
    
        try {
            JSONObject productsObject = mBusinessData.optJSONObject("products");
            if(productsObject.has(goods_name)){
                JSONObject dataObject = productsObject.optJSONObject(goods_name);
    
                switch (semantic.getIntent()){
                    case "describe":
                        String desc = dataObject.getString("desc");
                        showAnswerText(bean.getInputText(), desc);
                        break;
                    case "price":
                        String price = dataObject.getString("price");
                        showAnswerText(bean.getInputText(), goods_name + "的价格是"+price+"元");
                        break;
                    case "stock":
                        String stock = dataObject.getString("stock");
                        showAnswerText(bean.getInputText(), goods_name + "目前的库存还有"+stock+"件");
                        break;
                    case "goods":
                        String goods_desc = dataObject.getString("desc");
                        String goods_ability = dataObject.getString("ability");
                        showAnswerText(bean.getInputText(), goods_desc + goods_ability);
                        break;
                }
            }
            else{
                showAnswerText(bean.getInputText(), "对不起,没有查询到您要咨询的商品信息!");
            }
        }
        catch (Exception e){
            e.printStackTrace();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40

    🍖🍖步骤 6:应用权限申请

    跟以前在安装 APP 的是就申请了权限不同,Google 在 API 23,也就 Android6.0 之后加入了动态权限。对于一些敏感的权限,决定权交还给了用户, 不再是强制申请了。因为这个原因,如果 APP 需要支持 Android6.0 以上的系 统,就需要进行一下适配,否则 APP 就会崩溃。
    在这里插入图片描述


    🍖🍖步骤7:结果展示

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    🍓🍓 参考资料与扩展阅读

    1)Android 开发工具网站
    2)Android 开发者社区
    3)科大讯飞 AIUI 开放平台
    4)科大讯飞开放平台文档中心


    最后,兄弟们悠着点,免费(白嫖)用户,一天就500次交互机会,手下留点情。







    觉得有用的可以给个三连,关注一波!!!带你了解更多的智能机器人小知识

  • 相关阅读:
    从一座瑞典风机的倒塌看VDI2230用于螺栓连接精确计算的重要性
    Programming Languages PartA Week4学习笔记——SML函数式编程
    RabbitMQ 07 另两种集群方式 warren(主备模式),shovel(远程模式)
    SAP服务器文件管理
    使用k8s前配置环境
    十八、完整神经网络模型验证步骤
    RxJS 实战: 基于 BehaviorSubject 实现状态管理 & 结合 React
    SparkCore
    Java面试很难?啃完阿里老哥这套Java架构速成笔记,我都能拿30K
    Linux中部署J2EE项目与发布
  • 原文地址:https://blog.csdn.net/qq_46906413/article/details/125004024