1、语音相关服务安装;
import测试,还需要安装语音相关库;
ReSpeaker 4-Mics Pi HAT
http://wiki.seeedstudio.com/cn/ReSpeaker_4_Mic_Array_for_Raspberry_Pi/
docker容器内安装python虚拟环境:
sudo apt install python-virtualenv
apt-cache search virtualenvwrapper
sudo apt-get install virtualenvwrapper
python三大神器之virtualenv
https://www.cnblogs.com/freely/p/8022923.html
安装virtualenvwrapper:
pip install virtualenvwrapper
export WORKON_HOME=~/Envs #设置环境变量
mkdir -p $WORKON_HOME #创建虚拟环境管理目录
find / -name virtualenvwrapper.sh #找到virtualenvwrapper.sh的路径
source 路径 #激活virtualenvwrapper.sh
创建一个虚拟环境:(已经自动激活)
mkvirtualenv car_vioce
常用命令参考:
1、停止虚拟环境
deactivate
2、在虚拟环境上工作:
workon project_env
或者,您可以创建一个项目,它会创建虚拟环境,并在
$WORKON_HOME
中创建一个项目目录。 当您使用
workon
project_env 时,会
cd
-ed 到项目目录中。
mkproject project_env
virtualenvwrapper 提供环境名字的tab补全功能。当您有很多环境, 并且很难记住它们的名字时,这就显得很有用。
workon
也能停止您当前所在的环境,所以您可以在环境之间快速的切换。
3、删除:
rmvirtualenv project_env
在虚拟环境,安装必要的服务:
sudo apt-get install python-spidev
sudo apt-get install python-gpiozero
sudo apt-get install libatlas-base-dev
sudo apt-get install python-pyaudio
在/home/smart_car目录下:
git clone https://github.com/respeaker/4mics_hat.git
下载完成后,cd 4mics_hat 进目录接着安装文件夹内的服务:
cd 4mics_hat/
pip install ./snowboy*.whl
pip install ./webrtc*.whl
返回上级目录,下载voice-engine:
cd ..
git clone https://github.com/voice-engine/voice-engine.git
安装必要的库:
sudo apt install python-pyaudio python-numpy python-virtualenv
sudo apt-get install swig python-dev libatlas-base-dev build-essential make
下载并安装snoboy:
git clone --depth 1 https://github.com/Kitt-AI/snowboy.git
cd snowboy
python setup.py build
python setup.py bdist_wheel
pip install dist/snowboy*.whl
安装pyaudio出现错误:没有portaudio.h ,需要先安装portaudio
sudo apt-get install portaudio19-dev
安装成功后,才安装pyaudio
python -m pip install pyaudio
成功后显示版本为0.2.11
进入目录,安装voice-engine:
cd ..
cd voice-engine/
python setup.py install
python setup.py bdist_wheel
pip install dist/*.whl
安装文本编辑工具nano:
apt-cache search nano
sudo apt-get install nano
cd进入voice-engine的examples目录,用nano创建文件snowboy_test.py :
nano snowboy_test.py
编写测试代码:
import time
from voice_engine.kws import KWS
from voice_engine.source import Source
src = Source()
kws = KWS()
src.link(kws)
def on_detected(keyword):
print('found {}'.format(keyword))
kws.on_detected = on_detected
kws.start()
src.start()
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
break
kws.stop()
src.stop()
如果,还出现没有snowboy模块的错误,再走一遍snowboy的安装流程即可;
cd ..
cd voice-engine/examples/
python snowboy_test.py
设备要先插入,并且启动docker时设置device设备,不然会报错;
把 ReSpeaker 4-Mics Pi HAT 插入到 Raspberry Pi后,
下载并安装驱动 运行下面命令
sudo apt-get update
sudo apt-get upgrade
git clone https://github.com/respeaker/seeed-voicecard.git
cd seeed-voicecard #下载声卡驱动
sudo ./install.sh #安装声卡驱动
reboot #重启
检查声卡名称是否与源代码seeed-voicecard相匹配.
arecord -L
[email protected]:/home/smart_car/seeed-voicecard#
exit容器后,用docker exec进入
docker exec -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" 4acc99961df5 /bin/bash
docker container exec [OPTIONS] CONTAINER COMMAND [ARG...]
验证通过后,打包镜像上传hub:
打包镜像:
docker commit -m="smart car and downloan face_recognition github" -a="jacka654321" 4acc99961df5 jacka654321/smart_car:v1
登录:
docker login
发布镜像 :
将您的标记镜像上传到存储库:
docker push username/repository:tag
docker push jacka654321/smart_car:v1
实际上传速度1.1M/s,
补充说明
docker pull jacka654321/smart_car:v1
pull下来之后,
因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
sudo xhost +
启动容器:挂载 USB摄像头 和 树莓派摄像头
sudo docker run -it --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" jacka654321/smart_car:v1
测试:
xarclock
右上角
调用USB摄像头:
从树莓派py文件,到容器:
docker cp /home/pi/Desktop/cv_test1/bdtct.py 01ab7d0c67f7:/home/test
运行测试:
python bdtct.py
开机后进入容器:
sudo xhost +
sudo docker start 01ab7d0c67f7
docker exec -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" 01ab7d0c67f7 /bin/bash
这是因为默认情况下container是不能访问任何其他设备的。但是通过"privileged",container就拥有了访问任何其他设备的权限。
当操作者执行docker run --privileged时,Docker将拥有访问host所有设备的权限,同时Docker也会在apparmor或者selinux做一些设置,使container可以容易的访问那些运行在container外部的设备。
docker exec -it --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --privileged 01ab7d0c67f7 /bin/bash
追加挂载opencv目录和测试文件夹cv_test1:
sudo docker run -it --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/usr/local/share/OpenCV:/usr/local/share/OpenCV" --volume="/home/pi/Desktop/cv_test1:/home/pi/Desktop/cv_test1" jacka654321/smart_car:v1
docker run --privileged:
sudo docker run -it --privileged --device /dev/vchiq --device /dev/video0 --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --volume="/usr/local/share/OpenCV:/usr/local/share/OpenCV" --volume="/home/pi/Desktop/cv_test1:/home/pi/Desktop/cv_test1" jacka654321/smart_car:v1
docker外部接入控制
Docker基本命令与使用 —— Docker容器的网络连接(四)
https://www.cnblogs.com/Hai--D/p/7017933.html
Docker 使用物理网络IP地址 及四种网络模式
https://blog.csdn.net/fgf00/article/details/52575500/
安装ping
apt-get install iputils-ping
安装ifconfig
apt-get install -y net-tools
修改docker0默认分配的ip地址:
sudo ifconfig docker0 192.168.31.118 netmask 255.255.255.0
下载pipework
wget -O pipework-master.zip https://codeload.github.com/jpetazzo/pipework/zip/master
unzip pipework-master.zip
sudo cp -p pipework-master/pipework /usr/local/bin/
sudo pipework br0 ca3cbce8c865 192.168.31.10/[email protected]