環境構築だけで記事にしておきます。
CPU環境構築
今までは、将棋AIのアプリ開発環境からの延長でやってきたのであまり意識していなかったが、それなりに載せないといけないものがあった。
今回、並べてみると主要なものだけでも以下のものを使っています。
・SurfacePro3、windows10
に以下を入れようとするといくつか躓きました。
・Anaconda3 with python3
・Visual Studio 2015 Community
・tensorflow
・keras
・opencv-python
・ffmpeg
・pyaudio
・moviepy
ということで、まずpythonやVisual Studio 2015 Community のインストールは以下を参考にしました。
【参考】
・①【将棋AI】「将棋AIで学ぶディープラーニング」を読む♪~Chainer環境構築
・②opencv-python 4.0.0.21
参考①でAnaconda3、およびVisual Studio 2015 communityまでインストールできます。
カスタムーVisual C++とPython Tools for Visual Studioをチェックでインストールします。
※anaconda以外にpython3.7や3.6もインストールしてみましたが、結局消しました。
以下、ハマった部分をそれぞれ記載します。
tensorflow,kerasとopencv-python
これらは、Windows10だとpipでトラブらずにインストールできると思います。
pip install keras
pip install tensorflow
pip install opencv-python
pipが古ければ文句言われるので、upgradeします。
pip install --upgrade pip
もし環境変数に追加が必要な時は、追加しましょう。
※以下の順に選んでいけば出てきます
コントロールパネル\システムとセキュリティ\システム\システム詳細設定\環境変数\Path
ffmpeg
だいたい動いていましたが、怒られました。
ということで、以下のサイトのインストールを参考に入れました。
【参考】
・windowsにffmpegをインストールする
丁寧に書かれているのでまんまインストールできると思います。
「このディレクトリの下のディレクトリ「bin」の下に本体がありますので、「<解凍したディレクトリ>bin」をpathに入れておく」
ちなみに、今回は上記で行けましたが、解決しなかったら以下を試してみるのがよさそうです。
conda install -c conda-forge ffmpeg
pyaudio
これも悩みどころでした。
要は、portaudioのインストールができていればすんなり入るということです。
これは、ウワンはVisualStudioの後入れて、通常のpipで入ったように記憶しています。
最後は、以下のコマンドのようです。
conda install -c anaconda portaudio
【参考】
・anaconda / packages / portaudio 19.6.0
moviepy
これは実は一度あきらめて音声と動画と別々に保存して後で合体させようと考えました。
これは、何度やってもimageioがuninstallできないというので諦めましたが、condaでuninstallできました。
ということで、
conda uninstall imageio
を実施して完全に削除した後、再度
pip install moviepy
で入りました。ここでpip uninstall出来なくても、conda unistallで綺麗に消せることを理解しました。
実はそれでもエラーが出ていました。
それはここまでmoviepyが使えなかったので、最初からmp3ファイルに保存していました。
しかし、使えるようになった時点でbase_sound = AudioSegment.from_file('out'+str(s)+'.mp3', format="mp3")を復活しましたが、ここで怒られました。
ということで、以下のように音声と動画を合体させる必要があるようです。
wf = wave.open('out'+str(s)+'.wav', 'wb') #wavに保存する
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT)) #width=2 ; 16bit
wf.setframerate(RATE)
wf.writeframes(b''.join(frames))
wf.close()
base_sound = AudioSegment.from_file('out'+str(s)+'.wav', format="wav") #wavから読み込む
base_sound.export('out'+str(s)+'.mp3', format="mp3") # mp3で保存する
length_seconds = base_sound.duration_seconds # 長さを確認
clip_output = mp.VideoFileClip(outputfile).subclip()
clip_output.write_videofile(outputfile.replace('.avi', '.mp4'), audio='out'+str(s)+'.mp3') #avi動画ファイルとmp3音声ファイルを合体してmp4ファイルに保管する
まとめ
・前回記事の3つのアプリがsurface pro3でサクサク動きました
・次回はRasPiに載せようと思います
おまけ
とりあえず、入っているものリストを書いておきます。
※ほとんどはanacondaで入ったのだと思います
>pip list
Package Version
---------------------------------- --------
absl-py 0.7.1
alabaster 0.7.12
anaconda-client 1.7.2
anaconda-navigator 1.9.6
anaconda-project 0.8.2
asn1crypto 0.24.0
astor 0.7.1
astroid 2.1.0
astropy 3.1
atomicwrites 1.2.1
attrs 18.2.0
Babel 2.6.0
backcall 0.1.0
backports.os 0.1.1
backports.shutil-get-terminal-size 1.0.0
beautifulsoup4 4.6.3
bitarray 0.8.3
bkcharts 0.2
blaze 0.11.3
bleach 3.0.2
bokeh 1.0.2
boto 2.49.0
Bottleneck 1.2.1
certifi 2019.3.9
cffi 1.11.5
chardet 3.0.4
Click 7.0
cloudpickle 0.6.1
clyent 1.2.2
colorama 0.4.1
comtypes 1.1.7
conda 4.6.8
conda-build 3.17.6
conda-verify 3.1.1
contextlib2 0.5.5
cryptography 2.4.2
cycler 0.10.0
Cython 0.29.2
cytoolz 0.9.0.1
dask 1.0.0
datashape 0.5.4
decorator 4.3.0
defusedxml 0.5.0
distributed 1.25.1
docutils 0.14
entrypoints 0.2.3
et-xmlfile 1.0.1
ez-setup 0.9
fastcache 1.0.2
ffmpeg 1.4
filelock 3.0.10
Flask 1.0.2
Flask-Cors 3.0.7
future 0.17.1
gast 0.2.2
gevent 1.3.7
glob2 0.6
greenlet 0.4.15
grpcio 1.19.0
h5py 2.8.0
heapdict 1.0.0
html5lib 1.0.1
idna 2.8
imageio 2.5.0
imageio-ffmpeg 0.2.0
imagesize 1.1.0
importlib-metadata 0.6
ipykernel 5.1.0
ipython 7.2.0
ipython-genutils 0.2.0
ipywidgets 7.4.2
isort 4.3.4
itsdangerous 1.1.0
jdcal 1.4
jedi 0.13.2
Jinja2 2.10
jsonschema 2.6.0
jupyter 1.0.0
jupyter-client 5.2.4
jupyter-console 6.0.0
jupyter-core 4.4.0
jupyterlab 0.35.3
jupyterlab-server 0.2.0
Keras 2.2.4
Keras-Applications 1.0.7
Keras-Preprocessing 1.0.9
keyring 17.0.0
kiwisolver 1.0.1
lazy-object-proxy 1.3.1
libarchive-c 2.8
llvmlite 0.26.0
locket 0.2.0
lxml 4.2.5
Markdown 3.0.1
MarkupSafe 1.1.0
matplotlib 3.0.2
mccabe 0.6.1
menuinst 1.4.14
mistune 0.8.4
mkl-fft 1.0.6
mkl-random 1.0.2
mock 2.0.0
more-itertools 4.3.0
moviepy 1.0.0
mpmath 1.1.0
msgpack 0.5.6
multipledispatch 0.6.0
navigator-updater 0.2.1
nbconvert 5.4.0
nbformat 4.4.0
networkx 2.2
nltk 3.4
nose 1.3.7
notebook 5.7.4
numba 0.41.0
numexpr 2.6.8
numpy 1.16.2
numpydoc 0.8.0
odo 0.5.1
olefile 0.46
opencv-python 4.0.0.21
openpyxl 2.5.12
packaging 18.0
pandas 0.23.4
pandocfilters 1.4.2
parso 0.3.1
partd 0.3.9
path.py 11.5.0
pathlib2 2.3.3
patsy 0.5.1
pbr 5.1.3
pep8 1.7.1
pickleshare 0.7.5
Pillow 5.3.0
pip 18.1
pkginfo 1.4.2
pluggy 0.8.0
ply 3.11
proglog 0.1.9
prometheus-client 0.5.0
prompt-toolkit 2.0.7
protobuf 3.7.0
psutil 5.4.8
py 1.7.0
PyAudio 0.2.11
pycodestyle 2.4.0
pycosat 0.6.3
pycparser 2.19
pycrypto 2.6.1
pycurl 7.43.0.2
pydub 0.23.1
pyflakes 2.0.0
Pygments 2.3.1
pylint 2.2.2
pyodbc 4.0.25
pyOpenSSL 18.0.0
pyparsing 2.3.0
PySocks 1.6.8
pytest 4.0.2
pytest-arraydiff 0.3
pytest-astropy 0.5.0
pytest-doctestplus 0.2.0
pytest-openfiles 0.3.1
pytest-remotedata 0.3.1
python-dateutil 2.7.5
pytz 2018.7
PyWavelets 1.0.1
pywin32 223
pywinpty 0.5.5
PyYAML 3.13
pyzmq 17.1.2
QtAwesome 0.5.3
qtconsole 4.4.3
QtPy 1.5.2
requests 2.21.0
rope 0.11.0
ruamel-yaml 0.15.46
scikit-learn 0.20.1
scipy 1.1.0
seaborn 0.9.0
Send2Trash 1.5.0
setuptools 40.6.3
simplegeneric 0.8.1
singledispatch 3.4.0.3
six 1.12.0
snowballstemmer 1.2.1
sortedcollections 1.0.1
sortedcontainers 2.1.0
Sphinx 1.8.2
sphinxcontrib-websupport 1.1.0
spyder 3.3.2
spyder-kernels 0.3.0
SQLAlchemy 1.2.15
statsmodels 0.9.0
sympy 1.3
tables 3.4.4
tblib 1.3.2
tensorboard 1.13.1
tensorflow 1.13.1
tensorflow-estimator 1.13.0
termcolor 1.1.0
terminado 0.8.1
testpath 0.4.2
toolz 0.9.0
tornado 5.1.1
tqdm 4.28.1
traitlets 4.3.2
unicodecsv 0.14.1
urllib3 1.24.1
wcwidth 0.1.7
webencodings 0.5.1
Werkzeug 0.14.1
wheel 0.32.3
widgetsnbextension 3.4.2
win-inet-pton 1.0.1
win-unicode-console 0.5
wincertstore 0.2
wrapt 1.10.11
xlrd 1.2.0
XlsxWriter 1.1.2
xlwings 0.15.1
xlwt 1.3.0
zict 0.1.3