为什么要整个这玩意
懒~!对,您没看错,就是因为懒,懒是进步的关键因素,哈哈。因为卧室灯的开关距离的比较远,每次睡觉都感觉不远万里去关掉灯,最崩溃的是已经躺下了,还是会被媳妇吼起来关灯,5555555,于是乎,整了个这玩意
思路
前提:语音控制或者app,再或者web页面控制灯的亮灭,反正就是我不动也能控制,另外原来电路仍然可用。
硬件:树莓派+esp8266+麦克风
软件:语音唤醒+语音转文字+语义判断
树莓派:自己有个3,现状已经出到4了,好像也不贵,选3,3b+都行 。主要用来跑服务的程序,其实用自己家电脑也可以,但一直开着比较费电。
esp8266:用它来控制继电器的开闭,就能实现灯的亮灭啦,单片子几块钱就能买,对于新手还是直接买现成的(20多块钱连app都带了,按上直接能用,但我偏偏要自己写个程序烧进去,哈哈)
开干
1.树莓派装系统:百度一堆,很简单,官网下img镜像,然后软件烧进去就行
2.安装home-assistant:主要是省去了自己写web节面,安装参考:home-asistantan安装
3.语音唤醒:目前比较出名的snowboy,但我在github上新发现了个ZouWu(驺吾,又是一神兽),Readme里宣称不必snowboy差,看了代码,是非常简洁易上手,提供了c和python的调用例子,不过缺点在于需要自己用树莓派录制三段唤醒词音频发到指定邮箱,没能像snowboy可以直接在网站录制生成模型,很意外的是我发过去没几分钟,模型就给我发回来了,比较赞,分享点其中python录音例子代码,其他的可以去GitHub上看:驺吾。
import argparse
import struct
import os
import sys
import numpy as np
import pyaudio
from datetime import datetime
from threading import Thread
from zouwu import ZouWu
class ZouWuDemo(Thread):
def __init__(
self,
library_path,
model_path,
sensitivities,
mdl_id):
super(ZouWuDemo, self).__init__()
self._library_path = library_path
self._model_path = model_path
self._sensitivities = sensitivities
self._mdl_id = mdl_id
self._CHUNK = 512
def rundemo(self):
zouwu = None
p = None
stream = None
try:
zouwu = ZouWu