HarmonyOS技术社区 · 2020年11月24日

使用语音控制鸿蒙小车

之前我们已经有一篇文章讲了如何驱动鸿蒙小车,通过网络控制小车的运行。

基于鸿蒙系统 + Hi3861 的wifi小车,可以通过电脑、手机控制

图片.png

这一篇我们来试点不一样的:使用语音控制鸿蒙小车。

附件提供可以直接烧录的鸿蒙镜像、修改后的手机java源码。

另外11月28号深圳鸿蒙沙龙会议,希望大家都能来参加~到时候会给大家分享小车的开发流程。

【线下沙龙】轻松掌握HarmonyOS多场景开发

这里我们使用到的是讯飞的语音识别功能,大家可以打开这个网站,申请一个测试账户:

https://www.xfyun.cn/services...

一般来说我们申请体验包即可,(新用户礼包需要实名认证):
图片.png

图片.png
领取完免费使用后,我们创建新应用。
图片.png
应用名称这些自己根据需求填写
图片.png
提交后,我们单击应用,查看详情
图片.png

我们下载Android SDK包。
图片.png

Android SDK包的使用可以查看文档。

下载完后,我们在 IatDemo.java文件的 public void onResult(RecognizerResult results, boolean isLast) 函数中添加我们控制小车的代码,如图:

我这边会提供我修改后的 IatDemo.java文件 ,大家替换即可。
图片.png

编译app,然后得到安装包:speechDemo-debug.apk 。安装到手机。

安装后,我们选择“立即体验语音听写”,然后单击开始,说出关键字“前进”“后退”“向左”“向右”,即可看到小车做出相应的动作

图片.png

图片.png

图片.png

代码解析:

其中比较重要的是发送小车控制指令,指令我们采用的是json格式,大家也可以根据自己需求,修改其它指令。

void send_car(final String msg)

 {

  clientThread = new Thread(new Runnable() {

   @Override

   public void run() {

    JSONObject address = new JSONObject();

    try {

     address.put("cmd", msg);

     address.put("mode", "step");

    } catch (JSONException e) {

     e.printStackTrace();

    }

    try {

     InetAddress targetAddress = InetAddress.getByName("192.168.1.103");

     DatagramPacket packet = new DatagramPacket(address.toString().getBytes(), address.toString().length(), targetAddress, 50001);

     client.send(packet);

    } catch (IOException e) {

     e.printStackTrace();

    }

   }

  });

  clientThread.start();

 }

获取源码资源包

作者:连志安

想了解更多内容,请访问:
51CTO和华为官方战略合作共建的鸿蒙技术社区
https://harmonyos.51cto.com#jssq

推荐阅读
关注数
3010
内容数
446
华为鸿蒙相关技术,活动及资讯,欢迎关注及加入创作
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息