讯飞AIUI智能机器人2

简介: 讯飞AIUI智能机器人2

一、实验目的

本次实验通过 AIUI 的配置及调用,开发一个关于语音识别的场景应用, 让学生了解语音识别技术如何在机器人上使用,同时对语音识别技术的使用途 径和步骤进行详细讲解,让学生理解起来更加轻松,了解 AIUI 开放平台账号申请、应用创建及配置掌握使用开发套件完成机器人智能应用的开发与调试及调用开发等内容。

二、实验内容

1、了解 AIUI 开放平台账号申请、应用创建及配置;

2、 掌握使用开发套件完成机器人智能应用的开发与调试;

3、 掌握语音识别能力接口的调用开发

三、实验步骤

步骤 1:AIUI 账号申请及平台设置image.pngimage.pngimage.png

步骤 2:项目工程搭建及能力包导入image.pngimage.png

等等。。。。。。

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

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

💥💥1、 首先

导入配置文件,将 aiui.cfg 文件导入到应用工程目录:
src/main/assets/cfg/

💥💥2、 其次


修改 aiui.cfg 文件中的配置信息,具体如下图所示:

image.pngimage.png步骤 4:功能代码开发

首先,在我们的应用工程的入口 MyApp.java 文件的 onCreate 中进行机器人 硬件能力的初始化,只有完成了硬件能力的注册后,才能使用机器人的六麦的麦 克风阵列进行录音,具体代码如下所示:

package com.iflytek.environment.speechrecognition;
import android.app.Application;
import android.content.Context;
import com.starway.starrobot.commonability.RobotType;
import com.starway.starrobot.commonability.StarCommonAbility;
import com.starway.starrobot.commonability.hardware.CenterLightHelper;
import com.starway.starrobot.commonability.hardware.EmojiHelper;
import com.starway.starrobot.commonability.hardware.GPIOHelper;
import com.starway.starrobot.logability.StarLogAbility;
import com.starway.starrobot.logability.log.PartCode;
/**
 * @package: com.iflytek.environment.speechrecognition
 * @fileName: MyAPP
 * @author: admin
 * @email: admin@iflytek.com
 * @describe: TODO
 */
public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        init();
    }
    private void init() {
        StarLogAbility.getInstance().initAbility(this);
        //基础能力初始化
        StarCommonAbility.getInstance().initAbility(this,
                RobotType.TYPE_TEACHING, new StarCommonAbility.onResultCallback() {
                    @Override
                    public void onResult(boolean isSuccess, String hardCode) {
                        if (isSuccess) {
                            // todo 硬件和业务状态初始化
                            switch (hardCode) {
                                case PartCode.HARDWARE_PARTCODE.CODE_EMOJI:
                                    // todo 设置初始表情
                                    EmojiHelper.doEmojiBase();
                                    break;
                                case PartCode.HARDWARE_PARTCODE.CODE_GPIO:
                                    // todo 默认加载的时候,将拾音方向设置为默认正前方的0度。
                                    GPIOHelper.getInstance().setMainMic(0);
                                    break;
                                case PartCode.HARDWARE_PARTCODE.CODE_CENTER_LIGHT:
                                    // todo 关闭腹部灯带
                                    CenterLightHelper.takeCenterLightOff();
                                    break;
                                default:
                                    break;
                            }
                        }
                    }
                });
    }
}

完成了硬件能力的初始化,在我们的应用工程 MainActivity.java 文件的 onCreate 中进行机器人 AIUI 的能力初始化,同时启动 AIUI 服务,主要代码如下所示:


package com.iflytek.environment.speechrecognition;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.TextView;
import com.iflytek.aiui.AIUIEvent;
import com.starway.starrobot.aiuiability.AIUIAbility;
import com.starway.starrobot.aiuiability.NLPListener;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity implements NLPListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化AIUI能力
        AIUIAbility.getInstance().initAIUIAbility(this);
        //设置AIUI监听
        AIUIAbility.getInstance().addNLPListener(this);
        //启动AIUI
        AIUIAbility.getInstance().start();
    }
    @Override
    public void onAiuiResponse(String bean) {
        if (TextUtils.isEmpty(bean)) {
            return;
        }
        try {
            JSONObject object = new JSONObject(bean);
            if (null == object) {
                return;
            }
            JSONObject intentObject = object.optJSONObject("intent");
            if (null == intentObject) {
                return;
            }
            if (intentObject.has("text")) {
                TextView txtView = (TextView) findViewById(R.id.txtArea);
                txtView.setText(intentObject.getString("text"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Override
    public void onAiuiWakeUp() {
    }
    @Override
    public void onAiuiSleep() {
    }
    @Override
    public void onAiuiEvent(AIUIEvent aiuiEvent) {
    }
    @Override
    public void onError(int i) {
    }
    @Override
    protected void onPause() {
        super.onPause();
        //停止AIUI服务
        AIUIAbility.getInstance().release();
    }
}

步骤 5:应用权限申请

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

就是添加一个jks文件,里面的权限都申请好了。在在 AndroidManifest.xml 中添加 android:sharedUserId="android.uid.system"image.pngimage.png

步骤6 : 结果展示image.pngimage.pngimage.png

实验完成,让电脑连接配件,配件能get到你的声音并在屏幕上显示出来。

步骤 7: 小结: 错误小集合,我竟然把雷全踩了.

1. 程序运行错误

◼ 错误信息:程序出现崩溃异常

◼ 解决方法:出现该问题可能是因为程序录音没有权限,机器人的系统 Android7.1.2 需要动态申请权限,代码中如果没有动态进行麦克风权限的申 请,需要手动到系统设置页面打开录音的权限,进入系统设置可以使用 adb 命令:adb shell am start -n com.android.settings/com.android.settings.Settings

2. 代码错误

◼ 错误信息:在添加应用代码的过程中,出现“cannot resolve symbol ‘xxxxx’ ” 的提示信息,如下图所示:

◼ 解决方法:出现该问题是因为当前文件中没有导入相应的类,只需要将光标 置于需要导入的类对象名称位置,然后同时按下键 盘上的 Alt + Enter 键即可自动导入该类。

3 .编译错误

◼ 错误信息:应用编译运行时,没有播放合成的语音,并且调试信息里有报错: errorCode:10147

◼ 解决方法:检查 AIUI 配置文件中的 appid 和 appkey 的设置是否正确,是否 跟 AIUI 平台创建的应用 appid 和 appkey 一致。




相关实践学习
达摩院智能语音交互 - 声纹识别技术
声纹识别是基于每个发音人的发音器官构造不同,识别当前发音人的身份。按照任务具体分为两种: 声纹辨认:从说话人集合中判别出测试语音所属的说话人,为多选一的问题 声纹确认:判断测试语音是否由目标说话人所说,是二选一的问题(是或者不是) 按照应用具体分为两种: 文本相关:要求使用者重复指定的话语,通常包含与训练信息相同的文本(精度较高,适合当前应用模式) 文本无关:对使用者发音内容和语言没有要求,受信道环境影响比较大,精度不高 本课程主要介绍声纹识别的原型技术、系统架构及应用案例等。 讲师介绍: 郑斯奇,达摩院算法专家,毕业于美国哈佛大学,研究方向包括声纹识别、性别、年龄、语种识别等。致力于推动端侧声纹与个性化技术的研究和大规模应用。
目录
相关文章
|
1天前
|
自然语言处理 算法 机器人
智能电话销售机器人源码搭建部署系统电话机器人源码
智能电话销售机器人源码搭建部署系统电话机器人源码
11 4
|
12天前
|
机器学习/深度学习 传感器 算法
智能机器人在工业自动化中的应用与前景###
本文探讨了智能机器人在工业自动化领域的最新应用,包括其在制造业中的集成、操作灵活性和成本效益等方面的优势。通过分析当前技术趋势和案例研究,预测了智能机器人未来的发展方向及其对工业生产模式的潜在影响。 ###
50 9
|
4天前
|
机器学习/深度学习 人工智能 运维
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
电话机器人源码-智能ai系统-freeswitch-smartivr呼叫中心-crm
22 0
|
8天前
|
机器人 人机交互 语音技术
智能电销机器人源码部署安装好后怎么运行
销售打电销,其中90%电销都是无效的,都是不接,不要等被浪费了这些的精力,都属于忙于筛选意向客户,大量的人工时间都耗费在此了。那么,有这种新型的科技产品,能为你替代这些基本的工作,能为你提升10倍的电销效果。人们都在关心智能语音客服机器人如何高效率工作的问题,今天就为大家简单的介绍下:1、智能筛选系统:电销机器人目前已经达到一个真人式的专家级的销售沟通水平,可以跟客户沟通,筛选意向,记录语音和文字通话记录,快速帮助电销企业筛选意向客户,大大的节约了筛选时间成本和人工成本。2、高速运转:在工作效率上,人工电销员,肯定跟不上智能语音机器人,机器人自动拨出电话,跟客户交谈。电话机
83 0
|
1月前
|
人工智能 搜索推荐 机器人
挑战未来职场:亲手打造你的AI面试官——基于Agents的模拟面试机器人究竟有多智能?
【10月更文挑战第7天】基于Agent技术,本项目构建了一个AI模拟面试机器人,旨在帮助求职者提升面试表现。通过Python、LangChain和Hugging Face的transformers库,实现了自动提问、即时反馈等功能,提供灵活、个性化的模拟面试体验。相比传统方法,AI模拟面试机器人不受时间和地点限制,能够实时提供反馈,帮助求职者更好地准备面试。
55 2
|
3月前
|
人工智能 算法 机器人
机器人版的斯坦福小镇来了,专为具身智能研究打造
【8月更文挑战第12天】《GRUtopia:城市级具身智能仿真平台》新论文发布,介绍了一款由上海AI实验室主导的大规模3D城市模拟环境——GRUtopia。此平台包含十万级互动场景与大型语言模型驱动的NPC系统,旨在解决具身智能研究中的数据稀缺问题并提供全面的评估工具,为机器人技术的进步搭建重要桥梁。https://arxiv.org/pdf/2407.10943
218 60
|
3月前
|
机器人 C# 人工智能
智能升级:WPF与人工智能的跨界合作——手把手教你集成聊天机器人,打造互动新体验与个性化服务
【8月更文挑战第31天】聊天机器人已成为现代应用的重要组成部分,提供即时响应、个性化服务及全天候支持。随着AI技术的发展,聊天机器人的功能日益强大,不仅能进行简单问答,还能实现复杂对话管理和情感分析。本文通过具体案例分析,展示了如何在WPF应用中集成聊天机器人,并通过示例代码详细说明其实现过程。使用Microsoft的Bot Framework可以轻松创建并配置聊天机器人,增强应用互动性和用户体验。首先,需在Bot Framework门户中创建机器人项目并编写逻辑。然后,在WPF应用中添加聊天界面,实现与机器人的交互。
103 0
|
3月前
|
人工智能 自然语言处理 安全
盘点国内:AI写作助手_ai智能问答机器人
AI写作助手是利用人工智能技术,特别是自然语言处理(NLP)技术,来辅助用户进行写作的工具。这类助手通过分析大量文本数据,能够理解语言的结构和含义,从而生成、编辑或优化文本内容。AI写作助手通常具有自动纠错、语法检查、内容生成和风格调整等功能,帮助用户提高写作效率和质量。
|
3月前
|
自然语言处理 监控 搜索推荐
使用 LangChain 创建高度互动和智能的聊天机器人
【8月更文第3天】随着自然语言处理(NLP)技术的进步,聊天机器人已成为企业和用户之间互动的重要渠道。LangChain 是一个强大的框架,旨在简化构建复杂语言模型应用程序的过程。本文将详细介绍如何使用 LangChain 框架创建高度互动和智能的聊天机器人,包括选择合适的语言模型、设计对话流程、上下文管理以及集成外部API和服务等内容。
162 0
下一篇
无影云桌面