用"树莓派"打造一款智能音响
智能音箱,是一个音箱升级的产物,是家庭消费者用语音进行上网的一个工具,比如点播歌曲、播报新闻、或是了解天气预报,它也可以对智能家居设备进行控制,比如打开窗帘、设置冰箱温度、提前让热水器升温等。
1 硬件 1.1 音箱把音箱插到树莓派的3.5mm接口上。
card 0是树莓派自带的声卡,3.5mm接口的音箱设备,接入的音箱,用的就是这个声卡,其设备编号为device 0。
headphones 耳机; 头戴式受话器
$ alsamixer
Capture:拾音器
$ arecord -d 3 temp.wav录音
$ aplay temp.wav播放
树莓派如果新增了麦克风的输入设备,需要进行如下操作,改配置文件让usb声卡作为默认的音频输入
#在/home/pi目录下新增如下文件
sudo vim .asoundrc
#新增如下内容 (这个地方根据自己的来,默认按照如下情况,特殊情况特殊对待)
pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm “hw:0,0”
}
capture.pcm {
type plug
slave.pcm “hw:1,0”
}
}
安装wukong-robot
wukong-robot 只支持 Python 3.x
$ cd /home/pi/ ********************************************************************** (1)克隆仓库 $ git clone https://github.com/wzpan/wukong-robot.git克隆仓库 ********************************************************************** (2)安装sox和ffmpeg和PyAudio $ sudo apt-get install portaudio19-dev python-pyaudio python3-pyaudio sox pulseaudio libsox-fmt-all ffmpeg $ pip3 install pyaudio ********************************************************************** (3)安装依赖的库: $ cd wukong-robot $ pip3 install -r requirements.txt $ pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple pyyaml>=4.2b1 requests==2.21.0 baidu-aip==2.0.0.1 pydub==0.23.1 python-dateutil==2.7.5 watchdog==0.9.0 pytz==2018.9 fire==0.1.3 tornado==5.1.1 markdown==3.0.1 semver==2.8.1 websocket==0.2.1 websocket-client==0.56.0 pypinyin jieba ********************************************************************** (4)手动编译snowboy得到_snowboydetect.so以支持更多的平台 (4-1)安装swig $ sudo apt-get -y update $ sudo apt-get install -y libpcre3 libpcre3-dev $ sudo apt-get install python3-dev $ cd /home/pi $ 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 $ ./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 (4-2)构建snowboy $ cd /home/pi/ $ wget http://hahack-1253537070.file.myqcloud.com/misc/snowboy.tar.bz2 # 使用我fork出来的版本以确保接口兼容 $ tar -xvjf snowboy.tar.bz2 $ cd snowboy/swig/Python3 $ make $ cp _snowboydetect.so2.2 树莓派必须更新唤醒词$ cp _snowboydetect.so /home/pi/wukong-robot/snowboy/ ********************************************************************** (5)安装第三方技能插件库 wukong-contrib $ mkdir $HOME/.wukong $ cd $HOME/.wukong $ git clone http://github.com/wzpan/wukong-contrib.git contrib $ pip3 install -r contrib/requirements.txt
默认自带的唤醒词是在 Macbook 上录制的,用的是作者的声音模型。但由于不同的人发声不同,所以不保证对于其他人都能很好的适用。
而树莓派上或者其他板子上接的麦克风可能和 PC 上的麦克风的声音畸变差异非常大,所以现有的模型更加不能直接在树莓派上工作,否则效果会非常糟糕。
如果你是第一次使用,需要先创建一个配置文件方便配置唤醒词。这个工作可以交给 wukong-robot 帮你完成。在 wukong-robot 的根目录下执行:
$ cd /home/pi/wukong-robot/
$ python3 wukong.py
第一次启动将提示你是否要到用户目录下创建一个配置文件,输入 y 即可。配置文件将会保存在 ~/.wukong/config.yml 。
在浏览器中输入 localhost:5000 ,即可进入登陆页面,账号默认 wukong ,密码默认:wukong@2019
登录进后台之后,就可以对 wukong-robot 的 API 进行修改和配置了。
根据官网建议,我们最好是使用,docker官方提供的便捷脚本来一键安装。
$ curl -fsSL https://get.docker.com -o get-docker.sh
$ sudo sh get-docker.sh
$ docker -v【20.10.5】
本地部署一个 snowboy-seasalt 服务
$ sudo docker pull rhasspy/snowboy-seasalt
$ sudo docker run -it -p 8000:8000 rhasspy/snowboy-seasalt



