Skip to content

a kind of assitant with face recoginiton and speech recognition

Notifications You must be signed in to change notification settings

KiAlexander/raspi_keeper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

raspi_keeper

a kind of raspberrypi assitant with face recoginiton and speech recognition

我是智能家居小助手小派,能够帮助您解决生活烦恼,天气预报、音乐播放、家居控制、各式各样的问题对于小派来说全都不在话下(演示视频)

 

工程说明

 

该项目为在北京邮电大学大三时搞得大学生创新项目,使用了树莓派调用讯飞语音库,完成具有一定功能的语音智能管家系统,程序写的比较差,以后水平上去了在回头优化代码

由于第一次接触树莓派,所以附下树莓派的首次使用

$ sudo raspi-config
$ sudo nano /etc/apt/sources.list
$ deb http://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free
$ deb-src http://mirror.sysu.edu.cn/raspbian/raspbian/ jessie main contrib non-free
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade
$ sudo rpi-upgrade
$ sudo apt-get install vim
$ sudo apt-get install libasound2-dev
$ sudo apt-get install omxplayer
 
  • 建议安装samba方便文件操作
  • 1. 如果出现错误提示,则需要先执行sudo apt-get update,再重新执行sudo apt-get install samba 安装完成后,这里只是安装了samba服务,一些基本工具还没有安装,所以还需要安装samba支撑工具: sudo apt-get install samba-common-bin (注意:这一步非常重要,这个要是不安装会导致像smbpasswd这样的工具没有被安装,后面就无法增加samba用户了)
    $ sudo apt-get install samba
    2. 配置/etc/samba/smb.conf
    $ sudo vi /etc/samba/smb.conf

    修改[homes]段为如下:

    [homes]
       comment = Home Directories
       browseable = yes
    # By default, the home directories are exported read-only. Change the
    # next parameter to 'no' if you want to be able to write to them.
       read only = no
    # File creation mask is set to 0700 for security reasons. If you want to
    # create files with group=rw permissions, set next parameter to 0775.
       create mask = 0755
    # Directory creation mask is set to 0700 for security reasons. If you want to
    # create dirs. with group=rw permissions, set next parameter to 0775.
       directory mask = 0755
    3. 增加samba用户
    $ sudo smbpasswd -a pi
     
  • 安装SimpleCv
  • $ sudo apt-get install ipython python-opencv python-scipy python-numpy python-pygame python-setuptools python-pip
    $ sudo pip install https://github.com/sightmachine/SimpleCV/zipball/develop
    如果运行SimpleCV提示缺少相应的组件,也可以通过pip指令进行安装,如笔者在运行时提示缺少svgwirte。
    $ sudo pip install svgwrite

     

    所使用的硬件材料

     * 树莓派3B 建议购买套餐,比较实惠

     * sd卡8g 具体大小看个人需要,一般8g基本够用,个人喜欢自己从树莓派官网 下镜像,比较有趣些

     * 树莓派7寸触摸屏 建议买套餐加个配套外科,更方便些

     * 树莓派摄像头 用的是官方摄像头,没有选用usb摄像头是因为怕买了然后不兼容树莓派就很麻烦了

     * usb免驱麦克风 经检测这一款可以兼容树莓派,树莓派上录音略有杂音但不影响识别

     * 树莓派音响 要是有更好的选择可以选其他的,这款造型还不是很让人满意

     * 网线一根(前期由于没有买树莓派,采取的是笔记本直连的方式)

     * 四路继电器 几路的话看自己需要把

     * 烟雾传感器

     * 温湿度模块

     * 木质别墅 只是为了不让造型看起来那么丑

     * 光敏二极管 光敏二极管模块对环境光强最敏感,一般用来检测周围环境的亮度和光强,在大多数场合可以与光敏电阻传感器模块通用,二者区别在于,光敏二极管模块方向性较好,可以感知固定方向的光源

     

    目录说明

    进入rasp_voice目录下,共有三个文件夹include、libs、samples。

     * include:包含语音识别用到的一些头文件,如错误码的含义以及语义识别和与语义识别的主要函数定义等,

     * libs:包含讯飞提供语音识别的库,里面的x64、x86分别是针对64位和32位的Linux操作系统,而RaspberryPi则是面向树莓派的库文件。

     * sample/schh:该目录下则是工程的主要程序文件,schh.c为主程序,目录下有许多wav文件,除部分属于my_train.py人脸密码识别程序外都是主程序中调用讯飞的文字转语音功能生成的,具体音频内容可在主程序中修改。  

    整体运行说明

    编译  

    $ cd rasp_voice/samples/schh
    $ source make.sh

     运行  

    $ ./schh

     

    硬件控制

     具体引脚设置参考相应文件代码中的定义  

    灯控

     可用led小灯模拟,也可以用继电器接台灯控制开和关  

    开灯

     
    $ python ledopen.py
     

    关灯

     
    $ python ledclose.py

     

    烟雾传感

     实时监测,为方便语音合成故报警音频在schh.c。所有在运行schh文件前,需要先开启一个终端运行smoke.py  
    $ python smoke.py

     

    用人脸作为识别密码

     my_train.py为使用simpeCV来进行拍取测试者脸型,训练成特定脸型密码,识别率较好。可单独测试。首次运行,路径下若没有任何jpg文件会拍摄一张包含人脸的照片作为伺候运行的识别密码  
    $ python my_train.py

     

    测周围温湿度

     结合讯飞文字转语音功能,调用wiringpi进行GPIO控制

    编译

     
    $ source make.sh

    运行

     
    $ ./temperature

    GUI界面

    为方面树莓派触摸屏操作,使用Tkinter编写了button界面,分别控制,开灯关灯,查温湿度,音乐控制等功能 
    $ python button.py

    About

    a kind of assitant with face recoginiton and speech recognition

    Topics

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published