谷歌语音对接-GoogleAssistant-smart-home
谷歌语音对接-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相关推荐
- 无处不在的谷歌语音助手
无处不在的谷歌语音助手 [猎云网(微信号:ilieyun)]1月13日报道 (编译:金怡琳) 首先是Android手机,然后是智能扬声器,现在谷歌智能助理可以兼容从电视到淋浴的所有设备.事实上,谷歌的 ...
- 谷歌语音转录背后的神经网络
谷歌语音转录背后的神经网络 谷歌神经网络深度学习语言识别 width="22" height="16" src="http://hits.sin ...
- 嘘!你与谷歌语音助手的对话,可能已经泄露……
要闻聚焦 1.你与谷歌语音助手的对话,可能已经泄露-- 2.外媒看中关村:正在改变中国,谋求改变世界 3.网约车司机行车途中玩手机.剪指甲,滴滴:已暂停其服务账号 4.改名大法好:瑞安航空将波音737 ...
- 3年后准确率仍达97%:利用谷歌语音转文本 API 绕过reCAPTCHA
聚焦源代码安全,网罗国内外最新资讯! 三年前出现的一种攻击技术是,使用谷歌自身的语言转文本 API 绕过谷歌的音频 reCAPTCHA,目前其准确率仍然高达97%. 1月2日,安全研究员 Nikol ...
- 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索。
全栈工程师开发手册 (作者:栾鹏) 安卓教程全解 安卓调用系统语音识别功能全解(谷歌语音服务):获取识别结果,使用语音识别进行搜索. 首先要添加权限 <uses-permission andro ...
- GoogleVoice群发WhatsApp翻译谷歌语音消息自动群发
大家都知道GoogleVoice是跨境电商外贸用的比较多的社交工具,尤其是我们用谷歌语音发开发信给客户介绍我们的产品的时候,基本上都是用的GoogleVoice,让我们在找寻国外的客户过程中省时省心省 ...
- android 百度语音 对话框,Android 通过调用系统接口使用如 谷歌语音、百度语音、讯飞语音等语音识别对话框的方法...
现在app的开发进程会集成一些语音识别功能,而一般开发者是不具备自己开发一套语音识别引擎的,因此大多数情况是选择一个已经成熟的语音识别引擎SDK集成到自己的app中. 通常情况下,这种集成分两种,一种 ...
- 今日芯声 | 嘘!你与谷歌语音助手的对话,可能已经泄露……
"今日芯声"是读芯术推出的一档简读栏目,汇聚每日国内外最新最热的AI应用资讯,敬请关注. 1.你与谷歌语音助手的对话,可能已经泄露-- 参考消息网7月15日报道 外媒称,谷歌公司表 ...
- 行业洞察 | 你的车载语音助手足够Smart吗?
截止2021年,中国乘用车智能语音交互功能的搭载率已经高达86%.目前,汽车座舱正朝着智能化趋势发展,而车载语音助手是智能驾驶舱中最核心的功能.在驾驶过程中,由于驾驶员的手和眼睛都被任务所占据,因此车 ...
最新文章
- hadoop 2 java hdfs_Hadoop2.6.0学习笔记(二)HDFS访问
- android 工信部偷跑流量
- Android键盘面板冲突 布局闪动处理方案
- android学习资料_5G到来未来五年,纯应用的安卓开发者如何学习通过音视频破局?...
- linux系统日常管理复习题讲解
- VHDL实现打地鼠游戏设计
- 25 To Life
- 给侄子推荐的中学教辅资料清单
- 2017.8.10 奖励关 思考记录
- 如何在Java中将字节数组转换为十六进制字符串?
- Android高级模糊技术[转]
- LQR 控制学习-LQR控制 MATLAB官方教程-LQR 控制器_状态空间系统Matlab/Simulink建模分析
- Vue.js Ajax(axios)
- IP地址、网关地址、子网掩码地址
- 人类有两大学习能力,即记忆力和理解力
- 微信小程序页面竖向滚动逻辑
- matlab与maple互联,Maple与Matlab
- jTopo入门 简单实现拓扑图
- Hutool-crypto加密工具
- Java ee 链接mysql 数据库完整步骤