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]