< >
Home » Ubuntu系统入门教程 » Ubuntu系统入门教程-整合wukong-robot中文语音对话机器人

Ubuntu系统入门教程-整合wukong-robot中文语音对话机器人

Ubuntu系统入门教程-整合wukong-robot中文语音对话机器人

说明:

  • 介绍如何整合wukong-robot中文语音对话机器人
  • 环境:ubuntu 20.04

步骤:

  • 安装依赖
sudo apt-get install portaudio19-dev python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg
pip3 install pyaudio fire
  • 安装wukong
git clone  https://github.com/wzpan/wukong-robot.git 
cd ~/wukong-robot
pip3 install -r requirements.txt
  • 安装swig
wget https://wzpan-1253537070.cos.ap-guangzhou.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
  • 安装snowboy
# 使用我fork出来的版本以确保接口兼容
wget https://wzpan-1253537070.cos.ap-guangzhou.myqcloud.com/misc/snowboy.tar.bz2 
tar -xvjf snowboy.tar.bz2
cd snowboy/swig/Python3
make
cp _snowboydetect.so ~/wukong-robot/snowboy/
  • 安装第三方库
mkdir $HOME/.wukong
cd $HOME/.wukong
git clone http://github.com/wzpan/wukong-contrib.git contrib
pip3 install -r contrib/requirements.txt

测试:

  • 运行前声卡检查和设置
  • 测试录音
arecord test.wav
  • 录制一段之后, ctrl + c 终止即可
  • 测试播放
aplay test.wav
  • 如果能正常播放录音内容,说明配置正确

  • 运行

cd ~/wukong-robot
python3 wukong.py
  • 使用唤醒词
hotword:全局唤醒词。默认为 “snowboy” (snowboy.umdl)
/do_not_bother/on_hotword:让 wukong-robot 进入勿扰模式的唤醒词。默认为 “悟空别吵” (悟空别吵.pmdl)
/do_not_bother/off_hotword:让 wukong-robot 结束勿扰模式的唤醒词。默认为 “悟空醒醒” (悟空醒醒.pmdl)
  • 访问后台
默认地址:http://localhost:5000
默认账户名:wukong
默认密码:wukong@2019

源码版本更新唤醒词

  • 目前官方已经停止更新,不能使用在线生成方式
  • 这里提供离线生成方式, 目前只能在ubuntu16.04下有效
  • 源码参考,github,gitee
  • 下载源码
cd ~
git clone https://gitee.com/ncnynl/snowboy-new
virtualenv -p python2 venv/snowboy
source venv/snowboy/bin/activate
#编译swig的python3版本
cd ~/snowboy-new/swig/Python3
make
#编译swig的python2版本
cd ~/snowboy-new/swig/Python
make
cd ~/snowboy-new/examples/Python
pip install -r requirements.txt
  • 录制 3 个 wav 文件(16000 采样率,16 位,1 通道),每个文件有都是同一个唤醒词"芝麻开门",并保存在示例/Python 下,例如
rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record1.wav
rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record2.wav
rec -r 16000 -c 1 -b 16 -e signed-integer -t wav record3.wav
  • 技巧:录制语音的唤醒词,只说一次就可以.你怎么录制语音的和识别时候读的方法和发音要一致.才能很好识别.
  • 运行以下命令来训练您的个人模型
cd ~/snowboy-new/examples/Python
#使用英文
python generate_pmdl.py -r1=record1.wav -r2=record2.wav -r3=record3.wav -lang=en -n=hotword.pmdl
#使用中文
python generate_pmdl.py -r1=record1.wav -r2=record2.wav -r3=record3.wav -lang=zh -n=hotword.pmdl

python2测试

  • 执行命令
cd ~/snowboy-new/examples/Python
python demo.py hotword.pmdl
  • 启动程序后,对着麦克风喊唤醒词”芝麻开门”,成功唤醒会有”ding”的一声和一条唤醒成功的打印语句
Listening... Press Ctrl+C to exit
INFO:snowboy:Keyword 1 detected at time: 2021-04-11 20:49:35

python3测试

  • 执行命令
cd ~/snowboy-new/examples/Python3
cp ../Python/hotword.pmdl .
python3 demo.py hotword.pmdl

docker版本更新唤醒词

  • 1.生成英文唤醒词docker的镜像
  • 从此 repo 中基于 Dockerfile 构建一个新的 docker 镜像:
cd ~/snowboy-new/docker/en
docker build -t snowboy-pmdl .
  • 在你的主机(Ubuntu 18 或其他)上创建一个名为 model 的目录,并将你的三个音频文件放在那里。
  • 目录应该看起来像这样(注意:wav 文件需要如下的确切名称,否则它将不起作用):
$ mkdir -p ~/snowboy-new/model
$ ls ~/snowboy-new/model
record1.wav  record2.wav  record3.wav
  • 技巧:录制语音的唤醒词,只说一次就可以.你怎么录制语音的和识别时候读的方法和发音要一致.才能很好识别.
  • 最后可以调用docker(注意:需要在model的父目录下):
cd ~/snowboy-new
docker run -it -v $(pwd)/model:/snowboy-new-master/examples/Python/model snowboy-pmdl
  • 这个生成的模型,适合英文的唤醒词.
  • 此命令将模型目录安装在 docker 容器中并运行一个调用 generate_pmdl.py 的脚本
  • 如果一切顺利,您现在应该在模型目录中有一个名为 hotword.pmdl 的文件。
  • 2.生成英文唤醒词docker的镜像
  • 从此 repo 中基于 Dockerfile 构建一个新的 docker 镜像:
cd ~/snowboy-new/docker/zh
docker build -t snowboy-pmdl-zh .
  • 在你的主机(Ubuntu 18 或其他)上创建一个名为 model 的目录,并将你的三个音频文件放在那里。
  • 目录应该看起来像这样(注意:wav 文件需要如下的确切名称,否则它将不起作用):
$ mkdir -p ~/snowboy-new/model
$ ls ~/snowboy-new/model
record1.wav  record2.wav  record3.wav
  • 技巧:录制语音的唤醒词,只说一次就可以.你怎么录制语音的和识别时候读的方法和发音要一致.才能很好识别.
  • 最后可以调用docker(注意:需要在model的父目录下):
cd ~/snowboy-new
docker run -it -v $(pwd)/model:/snowboy-new-master/examples/Python/model snowboy-pmdl-zh

在线版本

  • 访问:https://snowboy.hahack.com/

参考: 

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ubuntu系统入门教程