昱枫 发表于 2019-1-13 11:57:23

树莓派开源智能叮当音箱

      最近玩了下基于树莓派的智能音箱,之前买了树莓派3B一直在吃灰
       刚好双11买的ReSpeaker,双11打了8折64块买的,
      



不过好像和买的天猫精灵和小度价格差不多,都有些想把他们语音识别给拆下来玩


   

智能音箱配置
叮当——中文语音对话机器人
github地址https://github.com/wzpan/dingdang-robot

我这里是手动安装的,安装方法见
https://github.com/dingdang-robot/dingdang-robot/wiki/install
如果想尽快安装好,先进行必要文件的下载


其他按照相应的顺序安装就行

几个常见的问题解决方法

当上述的都安装完成的啃python 的几个组件
bs4
wiringpi
NetEaseApi




NetEaseApipython库安装失败需要
unset http_proxy

如果需要控制智能家居,关于hass 的,安装hass的
配置这个不多说,主要一个问题 python 需要同个版本安装hass
不然智能家居就会控制不了,
我安装的hass是基于3.5 版本的,安装dingdang 用的是2.7版本
主要是编码问题
如果就想不同版本兼容控制,则需要对你更新下来的代码的中的hass.py 进行整改



hass.py 库上源码部分



      if 'dingdang' in attributes.keys():

            dingdang = attributes["dingdang"]

            if isinstance(dingdang, list):

                if text in dingdang:

                  try:

                        measurement = attributes["unit_of_measurement"]

                  except Exception as e:

                        pass

                  if 'measurement' in locals().keys():

                        text = text + "状态是" + state + measurement

                        mic.say(text, cache=True)

                  else:

                        text = text + "状态是" + state

                        mic.say(text, cache=True)

                  break

            elif isinstance(dingdang, dict):

                if text in dingdang.keys():

                  if isinstance(text, bytes):

                        text = text.decode('utf8')

                  try:

                        act = dingdang

                        p = json.dumps({"entity_id": device["entity_id"]})

                        s = "/api/services/" + domain + "/"

                        url_s = url + ":" + port + s + act

                        request = requests.post(url_s, headers=headers, data=p)

                        if format(request.status_code) == "200" or \

                           format(request.status_code) == "201":

                            mic.say(u"执行成功", cache=True)

                        else:

                            mic.say(u"对不起,执行失败", cache=True)

                            print(format(request.status_code))

                  except Exception as e:

                        pass

                  break

    else:

      mic.say(u"对不起,指令不存在", cache=True)





def isValid(text):

    return any(word in text for word in [u"开启家庭助手",

                                       u"开启助手", u"打开家庭助手", u"打开助手",

                                       u"家庭助手", u"帮我"])


主要是编码导致的不能控制,这里需要把说的话通过

可以打印下if text in dingdang: 里面的 text 和 dingdang 对比下就可以明确
这是我查询空气质量的一些打印信息,空气质量在里面但是编码不对,不能正常查询得到,需要调整编码格式 encode

空气质量。


智能家居控制需要直接喊得话,看代码可以明确,“帮我 打开..灯“
可以直接进行智能家居操作,打开智能家居模式状态进行控制太不灵敏了


以上是个人配置叮当智能音箱遇到的一些问题,简单分享下,有问题可以继续讨论

这个自己搭建的智能音箱可以随便改换唤醒词,这个功能还不错 :)

视频简单分享下
http://v.youku.com/v_show/id_XNDAxMDYwNzgzMg==.html?spm=a2h3j.8428770.3416059.1

http://v.youku.com/v_show/id_XNDAxMDYwNTk5Mg==.html?spm=a2h0j.11185381.listitem_page1.5!3~A

http://v.youku.com/v_show/id_XNDAxMDYwOTU0MA==.html?spm=a2h3j.8428770.3416059.1







newhope2019 发表于 2019-1-24 15:54:03

看来叮当加上麦克风模块识别效果和响应速度并没有多大提升

a313127226 发表于 2019-1-14 11:20:22

看看,学习一下

satoll 发表于 2019-1-14 08:42:35

感谢分享
页: [1]
查看完整版本: 树莓派开源智能叮当音箱

Baidu
map