当前位置:网站首页>讯飞AIUI智能机器人5-----让器理解你(语音技术综合应用)
讯飞AIUI智能机器人5-----让器理解你(语音技术综合应用)
2022-08-02 04:23:00 【不良使】
作者 : 不良使
潜力创作新星 华为云享专家
博客记录学习的思路,项目和错误,寻找志同道合的朋友
如果觉得有帮助记得一键三连 ┗|`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();
}
}
步骤 6:应用权限申请
跟以前在安装 APP 的是就申请了权限不同,Google 在 API 23,也就 Android6.0 之后加入了动态权限。对于一些敏感的权限,决定权交还给了用户, 不再是强制申请了。因为这个原因,如果 APP 需要支持 Android6.0 以上的系 统,就需要进行一下适配,否则 APP 就会崩溃。
步骤7:结果展示
参考资料与扩展阅读
1)Android 开发工具网站
2)Android 开发者社区
3)科大讯飞 AIUI 开放平台
4)科大讯飞开放平台文档中心
最后,兄弟们悠着点,免费(白嫖)用户,一天就500次交互机会,手下留点情。
觉得有用的可以给个三连,关注一波!!!带你了解更多的智能机器人小知识
边栏推荐
猜你喜欢
被大厂强制毕业,两个月空窗期死背八股文,幸好上岸,不然房贷都还不上了
AFMG SysTune1.3.7使用图解
如果有些字段不想进行序列化怎么办?
Research Notes (6) Indoor Path Planning Method Based on Environment Perception
Minecraft 1.18.1、1.18.2模组开发 23.3D动画盔甲制作
Scientific research notes (5) SLAC WiFi Fingerprint+ Step counter fusion positioning
Arduino框架下ESP32重启原因串口信息输出示例
轮询和长轮询的区别
论文速读:Homography Loss for Monocular 3D Object Detection
ROS visualization of 3D target detection
随机推荐
力扣练习——40 区间和的个数
Deep Blue Academy - Handwritten VIO Homework - Chapter 2
数据复制系统设计(3)-配置新的从节点及故障切换
力扣练习——39 正方形数组的数目
Unreal回放系统剖析(上)
Platts Analysis-MATLAB Toolbox Function
多主复制的适用场景(1)-多IDC
W25Q16 存储器(Flash)
力扣练习——45 二叉树的锯齿形层次遍历
Batch normalization (BN) based on deep learning
ffmpeg基本命令
jetracer_pro_2GB AI Kit system installation instructions
使用GD32F207的高级定时器来产生PWM波出现的隐藏BUG
WordPress是什么?我也想用 WordPress~
CodeTON Round 2 (Div. 1 + Div. 2, Rated, Prizes!) C题
Deep blue college - handwritten VIO operations - the first chapter
不会多线程还想进 BAT?精选 19 道多线程面试题,有答案边看边学
Excel skills daquan
Minecraft 1.18.1、1.18.2模组开发 23.3D动画盔甲制作
CaDDN code debugging