语音-小度自定义技能

前言

主要是为了记录下学习小度自定义技能的过程

一、学习简介

参考官网解释 自定义技能简介

二、代码快速开发

快速开发java

我的代码架构
在这里插入图片描述

Bot.java这个类是需要去继承,然后重写的,但是官网没有给出,需要自己去探索
下面给出我测试的代码

public class Bot extends BaseBot {

    public Bot(String request) throws IOException {
        super(request);
    }


    protected Response onLaunch(LaunchRequest launchRequest) {
        System.out.println("onLaunch收到消息啦啦啦~~~~~~launchRequest" + JSON.toJSONString(launchRequest));
        // 新建文本卡片
        TextCard textCard = new TextCard("山盟海誓卡片~");
        // 设置链接地址
        textCard.setUrl("www.ooxx.com");
        // 设置链接内容
        textCard.setAnchorText("爱我就点我……^_^¥¥¥");
        // 添加引导话术
        textCard.addCueWord("我想找个女朋友");
        // 新建返回的语音内容
        OutputSpeech outputSpeech = new OutputSpeech(OutputSpeech.SpeechType.PlainText, "欢迎吃爱情面包。。。。。。");
        // 构造返回的Response
        Response response = new Response(outputSpeech, textCard);
        System.out.println("onLaunch 返回数据response:" + JSON.toJSONString(response));
        return response;
    }

    @Override
    protected Response onInent(IntentRequest intentRequest) {
        System.out.println("onInent 收到消息intentRequest:" + JSON.toJSONString(intentRequest));
        // 判断NLU解析的意图名称是否匹配 inquiry_tax
        if ("inquiry_tax".equals(intentRequest.getIntentName())) {
            // 判断NLU解析解析后是否存在这个槽位
            if (getSlot("ssys.date") == null) {
                // 询问月薪槽位
                System.out.println("日期是多少");
            } else if (getSlot("sys.city") == null) {
                // 询问城市槽位
                System.out.println("城市是哪个");
            } else {
                // 计算个税缴纳情况
                System.out.println("未知的槽位");
            }
        }
        TextCard textCard = new TextCard("意图卡片");
        OutputSpeech outputSpeech = new OutputSpeech(OutputSpeech.SpeechType.PlainText, "爱情意图666");
        Response response = new Response(outputSpeech, textCard);
        System.out.println("onInent 返回数据response:" + JSON.toJSONString(response));
        return response;
    }

    @Override
    protected Response onSessionEnded(SessionEndedRequest sessionEndedRequest) {
        System.out.println("onSessionEnded 收到消息:" + JSON.toJSONString(sessionEndedRequest));

        // 构造TextCard
        TextCard textCard = new TextCard("爱您么么哒");
        textCard.setAnchorText("setAnchorText");
        textCard.addCueWord("");
        // 构造OutputSpeech
        OutputSpeech outputSpeech = new OutputSpeech(OutputSpeech.SpeechType.PlainText, "爱您么么哒88");
        // 构造Response
        Response response = new Response(outputSpeech, textCard);

        System.out.println("onSessionEnded 返回数据response:" + JSON.toJSONString(response));
        return response;

    }
}

三、官网配置

3.1 百度云CFC配置

官网地址

推荐使用华北-北京
在这里插入图片描述

在这里插入图片描述
将自己的包打成zip包,参考代码快速开发官网地址
找到如下命令,在自己的工程中执行如下:

mvn package
cd target
zip java-bot.zip demo-1.0-jar-with-dependencies.jar

在这里插入图片描述
触发器一定要选择这个
在这里插入图片描述

3.2 小度官网配置

小度控制台配置

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

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

四、测试

4.1连接技能

在这里插入图片描述

激活技能成功
在这里插入图片描述
查看日志成功
在这里插入图片描述

4.2 意图测试

在上面技能打开的前提下,测试意图
在这里插入图片描述

在这里插入图片描述
查看日志
在这里插入图片描述
意图测试ok

4.3 断开技能

输入退出,小度会说代码指定爱你么么哒语音
在这里插入图片描述

在这里插入图片描述

测试ok

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: PaddleSpeech是一个基于飞桨深度学习框架的语音识别开发工具。在训练自定义数据集之前,需要进行数据的预处理,可以将音频数据转化为Mel频谱特征图,并提取相应的标签信息。然后,可以使用PaddleSpeech提供的数据加载方法将数据载入模型中进行训练。 在训练过程中,需要根据训练情况进行调参,并且要注意过拟合、欠拟合和梯度消失等问题。若训练过程缺乏泛化性,可以采用数据增强方法及时更新模型的泛化能力。 最终,通过迭代训练及调整模型参数,得到了适用于自定义数据集的最佳模型。可以使用该模型对新的音频数据进行分类或识别。需要注意的是,模型的性能将受到数据集规模大小及数据质量的影响。数据量越大,质量越高,模型的准确性将越高。 总之,PaddleSpeech提供一个基于深度学习的语音识别开发框架,可以方便地训练自定义数据集,训练方法需要注意调参及数据增强等细节,最终得到的模型将根据数据的质量以及大小产生巨大的影响。 ### 回答2: PaddleSpeech 是百度 paddlenlp 库中的一个语音处理模块,它提供了基于 PaddlePaddle 的语音识别语音合成能力。我们可以利用 PaddleSpeech 进行自定义数据集的训练。 首先,需要准备自己的数据集。这些数据集可以是自己录制的语音文件,也可以是公共语音数据集。在这里,我们可以使用 PaddleSpeech 提供的 LibriSpeech 数据集进行训练。 然后,我们需要将这些数据预处理成适合模型训练的格式。这包括数据标注、数据切割、声学特征提取等过程。PaddleSpeech 提供了一系列的数据处理接口,可以方便地进行数据预处理。 接着,我们需要选择合适的模型进行训练。PaddleSpeech 提供了多种语音识别模型,包括 DeepSpeech2 和 Transformer 等。我们可以根据自己的需求选择合适的模型。 最后,我们可以利用 PaddleSpeech 提供的训练脚本进行模型训练。在训练过程中,我们可以根据实际情况调整训练参数,如学习率、批大小等。训练完成后,我们可以利用训练好的模型进行语音识别任务的测试或部署。 总之,利用 PaddleSpeech 进行自定义数据集的训练可以帮助我们更好地解决实际问题,提高语音识别的准确率和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值