作者 : 不良使
潜力创作新星 华为云享专家
博客记录学习的思路,项目和错误,寻找志同道合的朋友
如果觉得有帮助记得一键三连 ┗|`O′|┛ 嗷~~
通过 AIUI 开放平台的语义技能的配置,结合机器人客户端智能 应用的开发,了解 AIUI 语义理解的调用过程,同时对语义配置的流程 和步骤进行详细讲解,理解掌握起来更加轻松。主要有以下三个方面:
1、了解 AIUI 商店技能、自定义技能和问答库的添加基本流程;
2、了解 AIUI 平台语义设计和配置方法;
3、掌握基础的语义技能中意图、语料、实体及辅助词的配置方法。
语音交互技术作为人工智能领域的核心组成部分,也是智能机器人技术发展 的重要要素。语音交互技术主要包含以下几个方面:
1、 语音合成技术,将文本内容合成为自然语音,并通过设备发声;
2、 语音识别技术,将自然语音通过转写引擎识别为文本内容;
3、语义理解技术,对自然语言文本的理解,识别其具体表达的意思。 本次实验通过完成一个智能语音控制的音乐播放器,来深入了解语义平台的 使用流程以及相应的语义功能在项目中的实现方法,具体如下:
**
在使用 AIUI 开放平台的语义理解功能之前,我们需要先参考“语音识别技 术体验_实验指导书”完成应用的添加,然后,在应用配置页面开启应用的“语 义理解”功能,如下图所示**
技能工作室。当商店技能无法满足我们个性化的需求,需要处理特定的任务,例如,实现 校园卡业务的咨询和办理,日常的带路等任务时,我们可以利用技能工作室(Skill Studio)完成自定义技能的设计、开发、测试、发布等工作;开发者可以通过可 视化的界面,快速高效地将自己的创意、产品或服务,通过语音技能传达给智能 硬件的用户。 点击 AIUI 开放平台页面上方的“我的技能”菜单,通过引导,进入“技能 控制台”页面
意图指用户在技能中可能的请求或目的。作为”机器人控制”技能,可以满足 用户增大音量、减小音量、查询电量等需求。 用户在完成某一意图时,可能会有很多种提问方式,这些提问方式我们统称为 语料。为保证良好的体验,开发者需要尽可能完善用户所有的提问方式。
语料中,同一类型的名词将会被总结为实体。
示例:
⚫ 明天合肥天气怎么样
⚫ 后天北京天气怎么样 抽象成模板语料为:{time}{city}天气怎么样 其中,time 为时间实体,city 为城市实体。平台提供了部分较为通用的官方实 体,可在语料配置中引用。
为了满足开发者快速编写语料的需求,同时兼顾语料的可维护性,平台提出了 辅助词的概念。 实体和辅助词在本质上都是同一类词的集合,一些会严重影响到我们理解的词, 我们倾向使用实体去定义,另一些不会太影响我们理解的词,我们则倾向于用辅 助词去定义。
自定义技能和自定义问答
完成技能工作室中本次实验语义的数据设置后,我们开始将相应的自定义语义 技能和自定义问答库添加到我们的实验应用中。 添加自定义技能:在应用配置页面,点击语义技能区域的“自定义技能”链接, 然后点击下方的“添加自定义技能”按钮,在弹出的界面中选择之前在技能工作 室中添加的“技能”后点击“确定”按钮。
完成了工程项目的搭建后,我们需要在项目工程中集成 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 中完成权限申请,如下图所示
public class MusicPlayUtils {
private Context mContext;
private MediaPlayer mMediaPlayer;
/**
* 监听播放完成
*/
public interface onPlayCompletedCallback {
void onCompleted();
}
public MusicPlayUtils(Context ctx) {
mContext = ctx;
mMediaPlayer = new MediaPlayer();
}
/**
* 判断是否正在播放
*
* @return
*/
public boolean isPlaying() {
try {
return mMediaPlayer.isPlaying();
} catch (Exception e) {
return false;
}
}
/**
* 停止播放
*/
public void stop() {
if (null != mMediaPlayer) {
mMediaPlayer.stop();
mMediaPlayer.reset();
}
}
/**
* 暂停播放
*/
public void pause() {
if (null != mMediaPlayer && mMediaPlayer.isPlaying()) {
mMediaPlayer.pause();
}
}
/**
* 继续播放
*/
public void resume() {
if (null != mMediaPlayer) {
mMediaPlayer.start();
}
}
/**
* 播放
*
* @param fileName 音频文件地址
* @param mCallback 播完的回调
* @return
* @throws JSONException
*/
public void playLocalMedia(String fileName, final onPlayCompletedCallback mCallback) {
if (null == mMediaPlayer) {
return;
}
if (mMediaPlayer.isPlaying()) {
Log.e("MediaPlayer", "MediaPlayer is busying now!");
return;
}
try {
AssetManager am = mContext.getAssets();
mMediaPlayer.setDataSource(am.openFd(fileName));
mMediaPlayer.setOnCompletionListener(new
MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mCallback.onCompleted();
}
});
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
1)Android 开发工具网站
2)Android 开发者社区
3)科大讯飞 AIUI 开放平台
4)科大讯飞开放平台文档中心
最后,兄弟们悠着点,免费(白嫖)用户,一天就500次交互机会,手下留点情。
源码链接:Android学习代码(全)需要自取
觉得有用的可以给个三连,关注一波!!!带你了解更多的智能机器人小知识