install

Joseph Pan edited this page Aug 28, 2018 · 52 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/dingdang-robot/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

然后查看 安装后续

注意:启动时如果遇到这个错误信息,是 PyAudio 的提醒,不影响工作,不用管:

Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started

安装后续

  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

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

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.