谷歌语音对接-GoogleAssistant-smart-home

  • 谷歌语音对接-GoogleAssistant-smart-home
    • 官方文档
    • 音响使用步骤
      • 一 google home mini 入网
      • 二 google home mini 添加需要控制的智能家居设备
    • 开发干货
      • 一 进入Actions Aconsele开发界面
      • 二 开发实现
      • 三 云云对接代码-谷歌云-自家私有云

谷歌语音对接-GoogleAssistant-smart-home

谷歌语音助手智能家居

What is GoogleAssistant-smart-home?
you can use google home mini control our smart device - 使用谷歌智能音响控制智能家电设备

官方文档

官方文档-需要翻墙
https://console.actions.google.com/project/smarthomeproject-for-myself001/overview

音响使用步骤

一 google home mini 入网

配网教程案例-wifi需要翻墙

1 google home mini 上电开机,四个灯在闪烁-进入配网状态
2 在手机上下载 Google Home App,打开app并且登入google账号,app会自动搜索到mini。 (此步骤比较难连接,多试几次)
3 试一试吧!(四个灯变表示) Ok Google !或者 Hey Google !来唤醒她

二 google home mini 添加需要控制的智能家居设备

1 找到set up (+) 按钮,找到对应的skill。
2 进行账户授权登录。
3 给设备分配不同的地点。(厨房,大厅等)
4 开始控制设备 例如: turn on light

开发干货

一 进入Actions Aconsele开发界面

1 新建一个smart home project
2 配置需要授权的Auth2.0的登录H5页面、token获取接口、fulfillment接口地址
3 提供服务接口即可。
4 测试完毕即可发布,等待谷歌工作人员审核,审核成功之后,Google Home App即可找到自己创建的技能

二 开发实现

开发文档-需要翻墙
https://developers.google.com/assistant/smarthome/concepts

1 Authentication: Links your users’ Google accounts with user accounts in your authentication system. See fulfillment and authentication.
2 Smart home intent: Simple messaging objects that describe how to perform a smart home Action such as turn on a light or cast audio to a speaker. See smart home intents
3 Fulfillment : A service that handles a smart home intent and carries out the corresponding Action. See fulfillment and authentication. (提供API服务)

三 云云对接代码-谷歌云-自家私有云

1 目前已经开发支持的设备

     /*** module 和 type 转化为 permisison** @param value* @return*/public static GoogleDeviceType value(String value) {switch (value) {case "洗衣机":return WASHER;case "插座":return OUTLET;case "灯光":return LIGHT;case "咖啡机":return COFFEE_MAKER;
//                 音响case "空气净化器":return AIRPURIFIER;
//                    安防报警case "窗帘":return BLINDS;case "空调":return AC_UNIT;case "冰箱":return REFRIGERATOR;
//                    水质净化器case "扫地机器人":return SWEEP_ROBOT;
//                传感器case "电视":return TV;case "洗碗机":return DISHWASHER;}// 未匹配return INVALIDA;}public String getValue() {return value;}public void setValue(String value) {this.value = value;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

2 设备同步、查询、执行动作、设备断开连接分发

    /*** 根据inputs - intent 判断关键字操作* 文档: https://developers.google.com/actions/smarthome/create#actiondevicessync* 0  action.devices.SYNC* reuqest: null* response: payload - devices [id,type,name,roomhint]* 1  action.devices.QUERY* reuqest: inputs - payload - devices [id,customData]* response: payload - devices { id{on,online,brightness,color} }* 2  action.devices.EXECUTE* reuqest: inputs - payload - commands[ { devices[{id}] , execution[{command ,params }] } ]* response: inputs - payload - commands[ {ids,status,states{on,online}} ]* 3  action.devices.DISCONNECT* reuqest: null* response: null*/@Overridepublic String intent(JSONObject request, String token) throws DubboException, BusinessException {// 0 校验if (request == null || token == null || "".equals(token.trim())) {// 执行参数不符合log.error("request参数为空");throwException(ExpCodeConstant.Google.GOOGLE_PARAMETER_INVALIDATE_REQUEST.getCode());return null;}token = token.replace("Bearer ", "");//  获取到真实的token// 1 解析数据 inputs[intent]JSONArray inputs = request.getJSONArray("inputs");if (inputs == null || inputs.size() <= 0) {// 无inputs参数,或者inputs数组长度为0log.error("无inputs参数,或者inputs数组长度为0");throwException(ExpCodeConstant.Google.GOOGLE_PARAMETER_INVALIDATE_INPUTS.getCode());return null;}for (Object inputObj : inputs) {if (inputObj == null) continue;// 1.1 解析出intentJSONObject input = JsonUtils.objToJSONObject(inputObj);if (input == null) {log.error("无input参数");throwException(ExpCodeConstant.Google.GOOGLE_PARAMETER_INVALIDATE_INPUT.getCode());return null;}String intent = input.getString("intent");log.info("参数intent:{}", intent);if (intent == null) {log.error("无input参数");throwException(ExpCodeConstant.Google.GOOGLE_PARAMETER_INVALIDATE_INPUT.getCode());return null;}Object requestIdIn = request.get("requestId");    // 访问的请求idString requestId = null;if (requestIdIn != null) {requestId = String.valueOf(requestIdIn);}// 2 执行动作switch (intent) {case "action.devices.SYNC":         //同步return getGoogleSYNC(token, requestId);case "action.devices.QUERY":        //查询return getGoogleQUERY(input, requestId);case "action.devices.EXECUTE":      // 执行动作return getGoogleEXECUTE(input, requestId);case "action.devices.DISCONNECT":   // 断开连接// 无需响应break;default:break;}}return token;}

代码待增加。。。。尽请期待

谷歌语音对接-GoogleAssistant-smart-home相关推荐

  1. 无处不在的谷歌语音助手

    无处不在的谷歌语音助手 [猎云网(微信号:ilieyun)]1月13日报道 (编译:金怡琳) 首先是Android手机,然后是智能扬声器,现在谷歌智能助理可以兼容从电视到淋浴的所有设备.事实上,谷歌的 ...

  2. 谷歌语音转录背后的神经网络

     谷歌语音转录背后的神经网络 谷歌神经网络深度学习语言识别 width="22" height="16" src="http://hits.sin ...

  3. 嘘!你与谷歌语音助手的对话,可能已经泄露……

    要闻聚焦 1.你与谷歌语音助手的对话,可能已经泄露-- 2.外媒看中关村:正在改变中国,谋求改变世界 3.网约车司机行车途中玩手机.剪指甲,滴滴:已暂停其服务账号 4.改名大法好:瑞安航空将波音737 ...

  4. 3年后准确率仍达97%:利用谷歌语音转文本 API 绕过reCAPTCHA

     聚焦源代码安全,网罗国内外最新资讯! 三年前出现的一种攻击技术是,使用谷歌自身的语言转文本 API 绕过谷歌的音频 reCAPTCHA,目前其准确率仍然高达97%. 1月2日,安全研究员 Nikol ...

  5. 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索。

    全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索. 首先要添加权限 <uses-permission andro ...

  6. GoogleVoice群发WhatsApp翻译谷歌语音消息自动群发

    大家都知道GoogleVoice是跨境电商外贸用的比较多的社交工具,尤其是我们用谷歌语音发开发信给客户介绍我们的产品的时候,基本上都是用的GoogleVoice,让我们在找寻国外的客户过程中省时省心省 ...

  7. android 百度语音 对话框,Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法...

    现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种 ...

  8. 今日芯声 | 嘘!你与谷歌语音助手的对话,可能已经泄露……

    "今日芯声"是读芯术推出的一档简读栏目,汇聚每日国内外最新最热的AI应用资讯,敬请关注. 1.你与谷歌语音助手的对话,可能已经泄露-- 参考消息网7月15日报道 外媒称,谷歌公司表 ...

  9. 行业洞察 | 你的车载语音助手足够Smart吗?

    截止2021年,中国乘用车智能语音交互功能的搭载率已经高达86%.目前,汽车座舱正朝着智能化趋势发展,而车载语音助手是智能驾驶舱中最核心的功能.在驾驶过程中,由于驾驶员的手和眼睛都被任务所占据,因此车 ...

最新文章

  1. hadoop 2 java hdfs_Hadoop2.6.0学习笔记(二)HDFS访问
  2. android 工信部偷跑流量
  3. Android键盘面板冲突 布局闪动处理方案
  4. android学习资料_5G到来未来五年,纯应用的安卓开发者如何学习通过音视频破局?...
  5. linux系统日常管理复习题讲解
  6. VHDL实现打地鼠游戏设计
  7. 25 To Life
  8. 给侄子推荐的中学教辅资料清单
  9. 2017.8.10 奖励关 思考记录
  10. 如何在Java中将字节数组转换为十六进制字符串?
  11. Android高级模糊技术[转]
  12. LQR 控制学习-LQR控制 MATLAB官方教程-LQR 控制器_状态空间系统Matlab/Simulink建模分析
  13. Vue.js Ajax(axios)
  14. IP地址、网关地址、子网掩码地址
  15. 人类有两大学习能力,即记忆力和理解力
  16. 微信小程序页面竖向滚动逻辑
  17. matlab与maple互联,Maple与Matlab
  18. jTopo入门 简单实现拓扑图
  19. Hutool-crypto加密工具
  20. Java ee 链接mysql 数据库完整步骤

热门文章

  1. VMware虚拟机克隆后解决网络冲突问题
  2. 【DP】 HDU 3229 Jinyuetuan Puzzle
  3. linux服务器安装gmt,linux GMT简易安装
  4. 制作CentOS 6.4 U盘启动安装盘
  5. n*n数组某位置元素关于主对角线对称点的坐标
  6. android应用商店设计规范,商店应用图尺寸规则
  7. STC8H8k64U——定时器T0(60s倒计时)
  8. 基本概念篇(一),强化学习基本要素
  9. 我不太肯定我的方向,但是我希望自己能走的远一点。
  10. 【了解基本进位制】进制使用说明与学习