Skip to content
This repository has been archived by the owner on Apr 13, 2018. It is now read-only.

install

Joseph Pan edited this page Mar 1, 2018 · 49 revisions

安装叮当

Table of Contents

镜像安装

推荐使用镜像安装的方式,像安装 Raspbian 系统一样,安装完后,只需要少量的配置即可立即使用叮当机器人。

下载下来是一个 .gzip 压缩文件。建议先使用 md5sum 命令或其他 MD5 校验工具校验镜像的 MD5 值是否和下载页中的 MD5 值一致。

温馨提示:请务必使用官方提供的镜像下载地址,不要下载使用来历不明的镜像。在安装镜像前,强烈建议先校验下镜像 MD5 值,避免镜像被篡改,植入恶意程序。

之后将其解压:

gzip -d dingdang-*.gzip

最简单的镜像安装方式是使用 Etcher 来刷入 SD 卡,支持 Windows/Mac/Linux 三大平台。

如果不想借助第三方工具,则可以使用 Linux 的 dd 命令来安装。准备一张 Micro-SD 卡,如果你的 SD 卡里头有其他数据,应该先做好备份。然后插入读卡器,准备用 PC 将其格式化。Linux 下可以使用 GParted 格式化工具,右键点击 SD 卡的每个区,选择 Unmount 并 Delete 。最后 Apply All Operations 完成格式化。

接下来准备将镜像刷入你的 Micro-SD 卡中,先通过如下命令获取 SD 卡的盘符。

sudo fdisk -l

例如,假如你看到你的 SD 卡对应盘符为 /dev/sdX, 那么使用如下命令将镜像刷入 SD 卡:

dd if=dingdang-*.img of=/dev/sdX bs=2M # 注意 sdX 应该替换成你实际的SD卡盘符,
                                       # 可用 fdisk -l 查看

刷镜像的过程不会有任何进度提示,但不是卡死。如果想知道进度,可以另外开一个窗口执行:

watch -n 5 pkill -USR1 ^dd$  # 可能会需要root权限

然后回去看 原来 的那个终端就会每5秒打印一次进度信息。

完成后,取出 SD 卡,插入 Raspberry Pi 看看能否点亮。

然后查看 安装后续

手动安装

使用镜像安装叮当是一种更为省事的选择。不过,如果你希望从头开始搭建叮当的环境,或者自己已经搭建了 Raspbian 下的各种环境,不想为了叮当而重新搭建一遍,那么可以选择使用手动安装的方式。

注意:为了照顾主要的树莓派用户,下面提及用户目录都是 /home/pi 。如果你是在其他系统下安装,那么用户目录就应该改成你对应的目录。例如 /home/myname 。

为了方便不爱认真看文档的朋友,我也提供了在 Raspbian Stretch 上一步步手动安装叮当的全过程(视频里最后遗留的过快结束主动聆听的问题已修复)。

安装 Raspbian

使用上面介绍的类似方式,到 http://downloads.raspberrypi.org/raspbian_latest 下载最新的 Raspbian 系统,刷入 SD 卡中。

配置 Raspbian

进入 Raspbian 配置

sudo raspi-config

然后在高级选项中,开启 Expand Filesystem 选项。重启 Raspberry Pi使之生效 。

国内的小伙伴建议 换用 apt 镜像源

执行如下命令,更新系统,并安装若干工具:

sudo apt-get update
sudo apt-get upgrade --yes
sudo apt-get install emacs git-core python-dev bison libasound2-dev libportaudio-dev python-pyaudio libatlas-base-dev python-pymad cmake uuid-dev fswebcam libav-tools --yes
sudo easy_install pip

之后配置下你的麦克风和音响确保能正常工作。

安装叮当

把 dingdang-robot 项目拉取下来:

git clone https://github.com/wzpan/dingdang-robot.git dingdang
cd dingdang

如果使用的是 ReSpeaker 2-Mics Array HAT 作为麦克风阵列开发板,推荐把代码切换到 respeaker 分支(如果是其他麦克风则跳过这一步):

git checkout respeaker

之后安装必须的 pypi 库:

sudo pip install --upgrade setuptools
sudo pip install -r client/requirements.txt

接下来创建一个 .dingdang 目录,该目录用于维护你的个人数据(注意是带了点的 .dingdang 目录):

mkdir /home/pi/.dingdang

叮当配置文件 的内容拷贝下来保存为 /home/pi/.dingdang/profile.yml 。

安装 Sox

百度的语音合成结果返回的是 mp3 格式的音频,因此需要安装一个 mp3 播放器播放合成结果:

sudo apt-get install sox  # 用于播放音乐
sudo apt-get install libsox-fmt-mp3 # 添加 sox 的 mp3 格式支持

安装 TaskWarrior

用于日程提醒。软件源自带的版本较老,不支持时间粒度的提醒。因此需编译安装较新的 2.5.1 版本:

cd $HOME
wget https://taskwarrior.org/download/task-2.5.1.tar.gz
tar xzvf task-2.5.1.tar.gz
cd task-2.5.1
cmake -DCMAKE_BUILD_TYPE=release . -DENABLE_SYNC=OFF
make
sudo make install

如果提示找不到 cmake 或者 uuid,则需要安装一下:

sudo apt-get install cmake uuid-dev

完成后创建一个 .taskrc 文件用来记录日程:

touch /home/pi/.taskrc

安装 PocketSphinx 离线STT引擎

PocketSphinx 是叮当所使用的离线STT引擎,用于离线唤醒。要使用它总共需要安装如下一些程序:

  • sphinxbase & pocketsphinx
  • CMUCLMTK
  • MIT Language Modeling Toolkit
  • m2m-aligner
  • Phonetisaurus

安装 Sphinxbase/Pocketsphinx

Stretch 已经包含了 PocketSphinx 的源,可以先装预编译的版本:

sudo apt-get install pocketsphinx  # for stretch

如果是 Ubuntu 系统,则应该安装另一个包:

apt-get install pocketsphinx-hmm-en-hub4wsj

预编译的版本包含了 hmm 库 pocketsphinx-hmm-en-hub4wsj ,省去自己编译的麻烦。但这个版本没有包含 Python 的接口,所以还得拉源码构建一次。

wget http://downloads.sourceforge.net/project/cmusphinx/sphinxbase/0.8/sphinxbase-0.8.tar.gz
tar -zxvf sphinxbase-0.8.tar.gz
cd sphinxbase-0.8/
./configure --enable-fixed
make
sudo make install
wget http://downloads.sourceforge.net/project/cmusphinx/pocketsphinx/0.8/pocketsphinx-0.8.tar.gz
tar -zxvf pocketsphinx-0.8.tar.gz
cd pocketsphinx-0.8/
./configure
make
sudo make install

安装 CMUCLMTK

sudo apt-get install subversion autoconf libtool automake gfortran g++ --yes
svn co https://svn.code.sf.net/p/cmusphinx/code/trunk/cmuclmtk/
cd cmuclmtk/
./autogen.sh && make && sudo make install
cd ..

安装 Phonetisaurus, m2m-aligner 以及 MITLM

先下载源码:

wget http://distfiles.macports.org/openfst/openfst-1.4.1.tar.gz
wget https://github.com/mitlm/mitlm/releases/download/v0.4.1/mitlm_0.4.1.tar.gz
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/m2m-aligner/m2m-aligner-1.2.tar.gz
wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/phonetisaurus/is2013-conversion.tgz

解压:

tar -xvf m2m-aligner-1.2.tar.gz
tar -xvf openfst-1.4.1.tar.gz
tar -xvf is2013-conversion.tgz
tar -xvf mitlm_0.4.1.tar.gz

编译安装 OpenFST:

cd openfst-1.4.1/
sudo ./configure --enable-compact-fsts --enable-const-fsts --enable-far --enable-lookahead-fsts --enable-pdt
sudo make install # come back after a really long time

编译安装 M2M:

cd m2m-aligner-1.2/
sudo make
sudo cp m2m-aligner /usr/local/bin/m2m-aligner

编译安装 MITLMT:

cd mitlm-0.4.1/
sudo ./configure
sudo make install

编译安装 Phonetisaurus:

cd is2013-conversion/phonetisaurus/src
sudo make
sudo cp ../../bin/phonetisaurus-g2p /usr/local/bin/phonetisaurus-g2p

然后需要下载已编译好的 Phonetisaurus FST 模型以及叮当内置的词汇模型:

注意如果你是在另外一台机上下载这两个文件,你可能需要使用 fstp 命令来发送文件至叮当的主机上。

配置叮当

根据你的实际情况和需求配置叮当

运行叮当

最后,运行叮当,看看有没有提示缺少什么库,根据提示安装一下即可。

cd dingdang
python dingdang.py

然后查看 安装后续

安装后续

  1. 让树莓派连接网络及开启 SSH :参考 这篇文章 ,让树莓派连接网络并开启 SSH 。

  2. 终端执行 raspi-config 进入树莓派命令,进入 Advanced Options ,开启 Expand File System,扩展您的 Micro-SD 卡空间(否则刷完只有 8G 容量)。使用 Respeaker 2-Mics Pi HAT 的用户,还推荐进入 Interfacing Options ,开启 SPI ,以支持控制 LED 灯。

  3. 参考 配置 一节,完成配置。

  4. 进入 dingdang 的目录,更新一下 dingdang :

cd ~/dingdang
git pull
  1. 如果安装了第三方插件 dingdang-contrib,进入 .dingdang/contrib,更新下第三方插件:
cd /home/pi/.dingdang/contrib
git pull
pip install --upgrade -r requirements.txt
  1. 运行叮当:
python dingdang.py

如果设置开启了微信,会出现一个二维码,用微信扫一扫登录即可完成微信接入(相当于登录了一个微信客户端)。