一、环境介绍

二、配置apt源

$ sudo vim /etc/apt/source.list

# Aliyun
deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free

升级内核

$ sudo apt-get update
$ sudo apt-get -y upgrade

三、安装

1. 克隆本仓库:

 $ git clone https://github.com/wzpan/wukong-robot.git 

2、安装 sox ,ffmpeg 和 PyAudio:

$ sudo apt-get -y install python-pyaudio python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg
$ pip3 install pyaudio 

注:报错1

3、设置默认声卡

$ vim ~/.asoundrc

pcm.!default {
         type asym
         playback.pcm {
             type plug
             slave.pcm "hw:1,0"
         }
         capture.pcm {
             type plug
             slave.pcm "hw:1,1"
         }
 }
ctl.!default {
         type hw
         card 1
 }

4、安装依赖的库:

$ cd wukong-robot 
$ pip3 install -r requirements.txt

5、编译 _snowboydetect.so

a、安装 swig

首先确保你的系统已经装有 swig 。

$ wget http://hahack-1253537070.file.myqcloud.com/misc/swig-3.0.10.tar.gz $ tar xvf swig-3.0.10.tar.gz 
$ cd swig-3.0.10
$ sudo apt-get -y update
$ sudo apt-get install -y libpcre3 libpcre3-dev
$ ./configure --prefix=/usr --without-clisp --without-maximum-compile-warnings
$ make
$ sudo make install
$ sudo install -v -m755 -d /usr/share/doc/swig-3.0.10
$ sudo cp -v -R Doc/* /usr/share/doc/swig-3.0.10
$ sudo apt-get install -y libatlas-base-dev 

b、构建 snowboy

$ wget http://hahack-1253537070.file.myqcloud.com/misc/snowboy.tar.bz2  
# 使用我fork出来的版本以确保接口兼容 
$ tar -xvjf snowboy.tar.bz2
$ cd snowboy/swig/Python3
$ make
$ cp _snowboydetect.so <wukon-robot的根目录/snowboy/>

6、安装第三方技能插件库 wukong-contrib

$ mkdir $HOME/.wukong
$ cd $HOME/.wukong
$ git clone http://github.com/wzpan/wukong-contrib contrib
$ pip3 install -r contrib/requirements.txt

7. 更新唤醒词(可选,树莓派必须)

默认自带的唤醒词是在 Macbook 上录制的,用的是作者的声音模型。但由于不同的人发声不同,所以不保证对于其他人都能很好的适用。

而树莓派上或者其他板子上接的麦克风可能和 PC 上的麦克风的声音畸变差异非常大,所以现有的模型更加不能直接在树莓派上工作,否则效果会非常糟糕。

比较建议到 snowboy 官网 上训练自己的模型,然后把模型放在 ~/.wukong 中,并修改 ~/.wukong/config.yml里的几个 hotword 指向的文件名(如果文件名没改,则不用变)。一共有三个唤醒词需要修改:

  1. hotword:全局唤醒词。默认为 “孙悟空” (wukong.pmdl)
  2. /do_not_bother/on_hotword:让 wukong-robot 进入勿扰模式的唤醒词。默认为 “悟空别吵” (悟空别吵.pmdl)
  3. /do_not_bother/off_hotword:让 wukong-robot 结束勿扰模式的唤醒词。默认为 “悟空醒醒” (悟空醒醒.pmdl)

对于树莓派用户,如果不想自己训练模型,wukong-robot 也提供了几个针对树莓派训练的模型,直接修改配置即可:

# snowboy 离线唤醒
# https://snowboy.kitt.ai/dashboard
# 建议到 https://snowboy.kitt.ai/hotword/32768
# 使用相同环境录入你的语音,以提升唤醒成功率和准确率
hotword: 'wukong_pi.pmdl'  # 唤醒词模型,如要自定义请放到 $HOME/.wukong 目录中
sensitivity: 0.4  # 灵敏度

# 勿扰模式,该时间段内自动进入睡眠,避免监听
do_not_bother:
    enable: false # 开启勿扰模式
    since: 23    # 开始时间
    till: 9      # 结束时间,如果比 since 小表示第二天
    on_hotword: '悟空别吵_pi.pmdl'  # 通过这个唤醒词可切换勿扰模式。默认是“悟空别吵”
    off_hotword: '悟空醒醒_pi.pmdl'  # 通过这个唤醒词可切换勿扰模式。默认是“悟空醒醒”

但是同样建议到 snowboy 官网 自己训练。snowboy 官方建议在树莓派上先用 rec t.wav 这样的命令录制唤醒词,然后在训练的时候通过上传按钮上传到服务器中进行训练:

启动:python3 wukong.py

四、QA

报错:

fatal error: portaudio.h: No such file or directory

解决方法:

$ sudo apt-get -y install portaudio19-dev python-all-dev python3-all-dev
$ pip3 install pyaudio 

报错1、

OpenSSL.SSL.Error: [('SSL routines', 'ssl3_get_record', 'decryption failed or bad record mac')]

解决方案:

配置网卡静态IP即可,编辑interface文件添加以下内容(此配置为wifi无线网卡的)

$ sudo vim /etc/network/interface
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
wpa-ssid zlyang
wpa-psk 245372637_ying
address 192.168.137.200
netmask 255.255.255.0
gateway 192.168.137.1
network 192.168.137.1

参考原文:https://wukong.hahack.com/#/README

发表评论

电子邮件地址不会被公开。 必填项已用*标注