讯飞AIUI智能机器人3---来和机器互动吧(语音技术综合应用)

简介: 讯飞AIUI智能机器人3---来和机器互动吧(语音技术综合应用)

简介

通过 AIUI 的配置及调用,开发一个关于语音合成的智能应用, 让学生了解语音合成技术如何在机器人上使用,同时对语音合成技术的使用途 径和步骤进行详细讲解。最后完成语音的合成。

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

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

🍓🍓3、掌握语音合成能力接口的调用开发。

内容

🍓🍓1、语音合成技术,将文本内容合成为自然语音,并通过设备发声;

🍓🍓2、语音识别技术,将自然语音通过转写引擎识别为文本内容;

🍓🍓3、语义理解技术,对自然语言文本的理解,识别其具体表达的意思。

步骤

步骤 1:AIUI 开放平台应用添加及设置image.pngimage.png

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

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

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

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

💥💥2、修改 aiui.cfg 文件中的配置信息,具体如下image.png修改代码中*标识的位置,主要包括 appid,appkey,scene(场景),将 AIUI 平台创建的应用相关信息填入。 同时需要在 AndroidManifest.xml 中完成权限申请image.png

步骤 4:功能代码开发

💥💥1、当应用接收到语音“你是谁”时,通过语音合成文本“我是小途,很高兴 为您服务。”进行回答;

💥💥2、 当应用接收到语音“你会干什么”时,通过语音合成文本“我可以陪你聊 天,为你解答问题,还可以给你唱歌哦。”进行回答。

💥💥3、首先,在的应用工程 MainActivity.java 文件的 onCreate 方法中进行 AIUI 的 能力初始化,并在文件中添加 AIUI 的回调方法;修改页面布局文件,添加一个 ID 为 txtArea 的 TextView 文本控件。


部分代码:

基础功能初始化:


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) {
                        //硬件和业务状态初始化
                        switch (hardCode) {
                            case PartCode.HARDWARE_PARTCODE.CODE_EMOJI:
                                //设置初始表情
                                EmojiHelper.doEmojiBase();
                                break;
                            case PartCode.HARDWARE_PARTCODE.CODE_GPIO:
                                //默认加载的时候,将拾音方向设置为默认正前方的0度。
                                GPIOHelper.getInstance().setMainMic(0);
                                break;
                            case PartCode.HARDWARE_PARTCODE.CODE_CENTER_LIGHT:
                                //关闭腹部灯带
                                CenterLightHelper.takeCenterLightOff();
                                break;
                            default:
                                break;
                        }
                    }
                }
            });
}

🎂🎂重写回答(待合成)预料库:

@Override
public void onAiuiResponse(String semantic) {
    Log.i("test", "test:" + semantic);
    if (TextUtils.isEmpty(semantic)) {
        return;
    }
    try {
        JSONObject object = new JSONObject(semantic);
        if (null == object) {
            return;
        }
        JSONObject intentObject = object.optJSONObject("intent");
        if (null == intentObject) {
            return;
        }
        final TextView txtArea = (TextView) findViewById(R.id.txtArea);
        if (intentObject.has("text")) {
            String txt = intentObject.getString("text");
            if (TextUtils.equals(txt, "你是谁")) {
                txtArea.setText("我是小途,很高兴为您服务。");
                SpeechHelper.getInstance().speak("我是小途,很高兴为您服务。");
            } else if (TextUtils.equals(txt, "你会干什么")) {
                txtArea.setText("我可以陪你聊天,为你解答问题,还可以给你唱歌哦。陶士雯,CSDN博主");
                SpeechHelper.getInstance().speak("我可以陪你聊天,为你解答问题,还可以给你唱歌哦。", new TTS.OnSpeakCallback() {
                    @Override
                    public void onSpeak(String s) {
                        //需要在主线程中进行界面元素的修改
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                txtArea.setText("您好,请问有什么可以帮您?");
                            }
                        });
                    }
                });
            }
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

步骤 5:应用权限申请

跟以前在安装 APP 的是就申请了权限不同,Google 在 API 23,也就 Android6.0 之后加入了动态权限。对于一些敏感的权限,决定权交还给了用户, 不再是强制申请了。因为这个原因,如果 APP 需要支持 Android6.0 以上的系 统,就需要进行一下适配,否则 APP 就会崩溃。除了进入设置手动开启权限,还有两种方式让应用获得权限:动态权限申请、 平台签名。本次实验我们采用动态权限申请的方式获得权限。image.png

步骤6:实验结果

首先套件机器接受你输入的语音,然后在事先准备好的问答库中找到问题,找不到问题默认不输出语音。在语音输出的同时界面上也会有相应的文字输出。image.pngimage.png





目录
相关文章
|
4天前
|
传感器 机器人 Java
使用Java构建机器人应用
使用Java构建机器人应用
6 0
|
14天前
|
Serverless Go API
Serverless 应用引擎产品使用之在阿里云Serverless中,我想在钉钉机器人中使用函数计算的签名认证如何解决
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
19 0
|
2月前
|
传感器 算法 机器人
在实用化人形机器人控制系统中深入应用FPGA的框架设计(基于特斯拉Optimus-Gen2的硬件系统)
针对实用化人形机器人的控制系统,以深入应用FPGA技术为指导思想做了一个框架设计,提供一个具象化的设计实例、参考技术方案,协助各研发团队及相关决策者了解这一技术思路的价值。 进而,笔者希望读者将这个框架设计与《在实用化人形机器人研发流程中深入应用FPGA技术的流程图》结合起来进行分析、思考,希望: 进一步降低将FPGA深入应用于人形机器人在纯粹技术维度上的门槛; 助力更多正在人形机器人领域参与竞争的团队 -- 及时做出实质性决策,及时将更多资源分配到深入应用FPGA技术这一竞争维度。
98 4
在实用化人形机器人控制系统中深入应用FPGA的框架设计(基于特斯拉Optimus-Gen2的硬件系统)
|
2月前
|
机器人 大数据 异构计算
在实用化人形机器人研发流程中深入应用FPGA技术的流程图(基于工信部《人形机器人创新发展指导意见》)(版本A)
这个流程图将人形机器人视为一个多入多出的反馈控制系统,针对实现工信部《人形机器人创新发展指导意见》所要求的以应对真实场景下的复杂环境与任务、应对突发情况为特征的实用化人形机器人功能需求,在基于CPU+软件体系结构的人形机器人控制系统之中涉及多通道并行处理且需精准协同、强实时性(低延迟量+低延迟抖动量)、大运算量、大数据传输量且构成实时性性能瓶颈的环节中导入FPGA。
23 0
|
2月前
|
网络协议 机器人 中间件
单片机和FreeRTOS上跑机器人ROS的应用
单片机和FreeRTOS上跑机器人ROS的应用
85 0
|
2月前
|
传感器 人工智能 自然语言处理
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
智能咖啡厅助手:人形机器人 +融合大模型,行为驱动的智能咖啡厅机器人
|
3月前
|
机器学习/深度学习 传感器 数据采集
植保机器人在生长监测与分析方面的精准农业应用
植保机器人在生长监测与分析方面的精准农业应用
32 2
|
3月前
|
传感器 人工智能 监控
植保机器人在生长监测与分析方面的应用
植保机器人在生长监测与分析方面的应用
23 2
|
3月前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
3月前
|
传感器 机器学习/深度学习 算法
植保机器人具备智能感知与决策能力
植保机器人具备智能感知与决策能力
19 2

热门文章

最新文章