一起成为技术颜控
作者: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_statsname: '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_statsname: '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_statsname: '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" }elseservice_data = {'text':"Je ne peux comprends pas cette date"}
consumption:speech:type: plaintext: "Je consulte mes archives, ne bouge pas"action:service: python_script.consumptionhistorydata_template:date: "{{ date }}"
homeassistant:name: 1921latitude: 48.8543longitude: 2.3527elevation: 0unit_system: metrictime_zone: Europe/Pariscustomize: !include customize.yamldefault_config:sensor:- platform: yr- platform: history_statsname: '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: 1883snips:feedback_sounds: truepython_script:intent_script: !include intent_script.yamlgroup: !include groups.yamlautomation: !include automations.yamlscript: !include scripts.yaml#introduction:#discovery:
*欢迎转发朋友圈。如需转载,请注明出处和原作者。
项目干货戳这里
MIDI控制自动弹钢琴 | mini热带温室 | 无线蓝牙机械键盘
吃币机器人 | 骨骼追踪抛物预判垃圾桶 | 弹球机

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

