大数跨境
0
0

玩+ | 前方高"萌"预警!萌兔sudo化身语音助手……

玩+ | 前方高"萌"预警!萌兔sudo化身语音助手…… DF创客社区
2019-05-22
2
导读:萌化了……就是你吧!
 

一起成为技术颜控


作者:Alya Amarsy

翻译:KIKI

来源:www.dfrobot.com.cn



 皮卡丘和苏大强引领“卖萌经济”!

你的产品有“萌商”吗?


来来来


一起提升一下萌商!


 

材料清单:

  • ReSpeaker 4-Mics线性阵列套件

  • Snips AIR(软件)

  • 激光切割机(市面是普通的型号都是可以的)



项目介绍:

这是一个私人的家庭助手:

市面上其实已经有很多的语音助手了,他们一般都可以在智能手机或者一些其它设备上使用。他们已经可以实现很多的功能,但他们打数据基本上都会被上传至某一个云平台上,这会让数据一直处于一种很危险的境地。但是Snips可以帮助你建立属于自己的语音助手,只让他们在设备上进行运行(除非你希望你的数据可以在网络上进行更精准的查询),树莓派会是一个很好的搭载设备用来建立属于自己的语音助手。


这是一个没有性别的语音助手:
我认为一个既不是女声也不是男声的语音助手是我认为最理想的声音。我还起了一个很中性的名字Sudo。

“- Turn on the lights-...- Sudo, turn on the lights- Okay, turning on the lights”

这是一个环保的语音助手
"Turn off the lights, this is not Versailles"这是作者原文中的话,我认为可能是一句老人言,大致的意思就是要节约用电,记得关灯。作者认为做为成年人其实就很少会有人提醒需要及时关灯,所以他给Sudo设置了会提醒及时关灯的程序,这一点上至少它是可以帮助作者更环保的。

总结:由于该项目涉及不同的组件,因此以下是相关部分的概述:

让你的家更加的智能!


一:设置Snips

首先要做的是在Raspberry Pi上安装Snips  - 我用了Raspberry Pi 3 - B.我首先将最新版本的Raspbian下载并传到到SD卡上,在root过的SD卡上创建了一个名为ssh的空文件,另一个名为wpa_supplicant.conf,然后在弹出卡的期间我用了我的信用卡插在里面。完成启动后,您应该在本地网络上看到它,并且如果您使用的是Mac OS,则可以使用默认的用户名和密码(pi / rapsberry)和raspberrypi.local。之后,我按照这里给出的说明(https://console.snips.ai)创建一个新助手。 我使用的是法语,但您可以自由使用支持者中的任何一种。 我打电话给我的助手Sue-Do,并从Snips App Store 中找到了一个工具(Heure by Joseph - 可以让你询问Snips时间)。 然后您可以给助手添加技能。




为了让你的语音助手可以听到你说话并回答你,扬声器、麦克风。我外接了一个扬声器到树莓派上来完成了这个功能。



设置Home Assistant



然后按照下面的顺序找到一个文件(/home/homeassistant/.homeassistant/configuration.yaml),加上以下的代码


tradfri: host: IP_ADDRESS


连接Snips和Home Assistant
详细可见:https://www.home-assistant.io/components/snips/


mqtt:broker: 127.0.0.1port: 1883


https://docs.snips.ai/articles/console/actions/skills


然后在configuration.yaml 文件加上了以下代码:


snips:feedback_sounds: truepython_script:intent_script: !include intent_script.yaml



ikealights:speech:type: plaintext: "OK, j'allume la lumière"action:- service: python_script.ikealightsdata_template:lamp_name: "{{ lamp_name }}"


lamp_name = data.get('lamp_name')if lamp_name is not None:logger.info("turning on lamp {}".format(lamp_name))service_data = {'entity_id': lamp_name, 'brightness': 255 }hass.services.call('light', 'turn_on', service_data, False)


ensor:- platform: history_statsname: streelight on todayentity_id: light.streetlightstate: 'on'type: timestart: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'end: '{{ now() }}'consumption: speech: type: plain text: La lampe a passé {{ states('sensor.streetlight_on_today') }} heures allumée aujourd''hui






streelight_overuse:trigger: - platform: numeric_state entity_id: sensor.streetlight_on_today above: 3sequence: service: snips.say_action data: text: 'Dis, tu veux pas éteindre ta lumière ?' intent_filter: - lightsTurnOff




- platform: history_stats name: 'streetlight on today' entity_id: 'light.streetlight_1'state: 'on'type: timestart: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'end: '{{ now() }}'- platform: history_stats name: 'streetlight on yesterday' entity_id: 'light.streetlight_1'state: 'on'type: timeend: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'duration:hours: 24- platform: history_stats name: 'streetlight on this week' entity_id: 'light.streetlight_1'state: 'on'type: timestart: '{{ as_timestamp( now().replace(hour=0).replace(minute=0).replace(second=0) ) - now().weekday() * 86400 }}'end: '{{ now() }}' 



qds_year = queried_date_string[0:4] qds_month = queried_date_string[5:7] qds_day = queried_date_string[8:10] qds_hour = queried_date_string[11:13] qds_min = queried_date_string[14:16] qds_sec = queried_date_string[17:19]     queried_date = datetime.datetime(int(qds_year),int(qds_month),int(qds_day),int(qds_hour),int(qds_min),int(qds_sec)) delta = queried_date - datetime.datetime.now()     if(delta == -1)  service_data = {'text': "La lampe a passé {{ states('sensor.streetlight_on_today') }} heures allumée ajourd'hui" } elif(delta == -2)  service_data = {'text': "La lampe a passé {{ states('sensor.streetlight_on_yesterday') }} heures allumée hier" } elif(delta < -2 and delta >-9) service_data = {'text': "La lampe a passé {{ states('sensor.streetlight_on_yesterday') }} heures allumée cette semaine" } else service_data = {'text':"Je ne peux comprends pas cette date"}



consumption:  speech:    type: plain    text: "Je consulte mes archives, ne bouge pas"  action:    - service: python_script.consumptionhistory      data_template:        date: "{{ date }}"




homeassistant:name: 1921latitude: 48.8543longitude: 2.3527elevation: 0unit_system: metrictime_zone: Europe/Pariscustomize: !include customize.yaml default_config: sensor:- platform: yr - platform: history_stats name: 'streetlight on today' entity_id: 'light.streetlight_1'state: 'on'type: timestart: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'end: '{{ now() }}'  mqtt:broker: 127.0.0.1port: 1883 snips:feedback_sounds: true python_script: intent_script: !include intent_script.yamlgroup: !include groups.yamlautomation: !include automations.yamlscript: !include scripts.yaml #introduction: #discovery:







*欢迎转发朋友圈。如需转载,请注明出处和原作者。


项目干货戳这里

 美队护盾我收下了! | Arduino混合饮料机

脱机音质赞爆的电子钢琴 | 自制指纹箱

Makerspace NFC组件管理系统 

 “时间”嵌入玻璃窗 | “多喝水”提醒器

纸箱机器人cos苏大强 | 魔法书隔空翻页的魔法书 

激光切割中国象棋 | 永恒郁金香 | 太阳能板追太阳 

LED爱心灯 | 【必收藏】2018年精选项目大全!

NFC门禁 |  micro:bit荷兰风车

GameBuino游戏机 织风音乐交互艺术装置

 美到窒息的LED雪花 | 抖音兔兔帽+肌电传感器

 漂移雪橇 最轻薄树莓派魔镜 | 陀螺仪另类玩法

 巨型弹珠机 | 机械翅膀 | 音乐留声机 

 MIDI控制自动弹钢琴 | mini热带温室 | 无线蓝牙机械键盘 

变脸娃娃 给lcd触摸屏做了个soulmate……

 属于理工男的梦幻立方体  |  木质留声机

动态像素眼镜 复古ComputeModule 3

磁悬浮盆景 | LED项链

吃币机器人 | 骨骼追踪抛物预判垃圾桶 | 弹球机



美的作品,值得拥有一个 “在看”


【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.1k
粉丝0
内容1.3k