赞
踩
本系列主要目标初步完成一款智能音箱的基础功能,包括语音唤醒、语音识别(语音转文字)、处理用户请求(比如查天气等,主要通过rasa自己定义意图实现)、语音合成(文字转语音)功能。
语音识别、语音合成采用离线方式实现。
操作系统:Ubuntu 22.04.3 LTS
CPU:Intel® Core™ i5-1035G1 CPU @ 1.00GHz × 8
内存:16.0 GiB
显卡:没用到,本系列均使用cpu的方案
snowboy github地址(不更新了):https://github.com/Kitt-AI/snowboy
snowboy不维护之后seasalt-ai又维护了一段时间(主要提供出了基于docker的唤醒词训练)所以直接下载它的源码即可
docker:Install Docker Desktop on Ubuntu | Docker Documentation
可以通过apt安装的
- # 安装之前先更新
- apt-get upgrade
- apt-get update
python3.10(系统自带的)、python3-pip
- # 参考安装python
- apt-get install python3-pip
-
- python -m pip install --upgrade pip
git、git-lfs、vim、gcc、g++(版本11.4+)、cmake(版本3.22+)、swig...
如果安装过程中报错大概率还是缺安装包,找到对应包安装再试
- # 参考安装,安装之前可以先查一下本机之前安装过没有
- apt install git
-
- apt install git-lfs
-
- apt install gcc
-
- apt install g++
-
- apt install cmake
-
- apt install vim
-
- apt install swig
-
- apt install libatlas-base-dev
音频相关驱动安装
- apt-get install python3-pyaudio sox
-
- pip install pyaudio
-
- pip install scipy
测试麦克风
rec t.wav
- mkdir /home/test
-
- cd /home/test/
-
- git clone https://github.com/seasalt-ai/snowboy.git
-
- cd snowboy/swig/Python3/
-
- make
执行完make会生成snowboy的库文件等用来实现语音唤醒功能
- ll
-
- # Makefile
- # snowboydetect.py
- # _snowboydetect.so*
- # snowboy-detect-swig.cc
- # snowboy-detect-swig.i
- # snowboy-detect-swig.o
mkdir /home/test/snowboy/model
生成之后只需要把文件下载的pmdl文件放到model目录下即可,不用在走下面的docker训练唤醒词
Install Docker Engine on Ubuntu | Docker Documentation
之前安装过docker的可以略过,本机没装那就按照步骤安装
准备唤醒词的音频文件
- cd /home/test/snowboy/model
-
- 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
录完之后自己检查以下声音有没有问题,如果命令报错可能是少安装包或者重新打开terminal。
编辑一下Dockerfile,因为发现官网的不是慢就是其他报错
vim Dockerfile
- FROM ubuntu:16.04
-
- RUN apt update && apt --yes --force-yes install wget unzip build-essential python python-dev virtualenv portaudio19-dev
-
- RUN wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
-
- RUN python2 get-pip.py
-
- RUN wget https://github.com/seasalt-ai/snowboy/archive/master.zip && unzip master.zip
- RUN cd snowboy-master/ && \
- virtualenv -p python2 venv/snowboy && \
- . venv/snowboy/bin/activate && \
- cd examples/Python && \
- pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
-
- RUN apt -y remove wget unzip build-essential portaudio19-dev && apt -y autoremove && apt clean && rm -rf /var/lib/apt/lists/*
-
- CMD cd snowboy-master/ && \
- . venv/snowboy/bin/activate && \
- cd examples/Python && \
- python generate_pmdl.py -r1=model/record1.wav -r2=model/record2.wav -r3=model/record3.wav -lang=en -n=model/hotword.pmdl
编辑完成保存,然后构建镜像
docker build -t snowboy-pmdl .
构建完成之后去运行容器生成自定义唤醒词模型
docker run -it -v $(pwd)/model:/snowboy-master/examples/Python/model snowboy-pmdl
执行完命令之后,model文件夹下会生成一个hotword.pmdl模型文件
生成完模型测试效果,喊唤醒词然后能听到ding,就算是完成了
- cd home/test/snowboy/examples/Python3
-
- python demo.py ../../model/hotword.pmdl
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。