機械学習
docker
音声処理
TensorFlow
Pyaudio

WindowsホストのDocker環境でTensorFlowと音声処理ライブラリPyAudioを使う

More than 1 year has passed since last update.

WindowsホストのDocker環境でTensorFlowを使っているが、音声処理をしたいと思ってPyAudioライブラリを導入しようとしたところつまづいたのでメモを走り書き

後で書き直すかも

環境

WindowsホストのDocker使用の仮想環境

要はUbuntuだったらできるだろうと思われる

目的

TensorFlowとPyAudioを同時に使いたい

まず、いつもはどのような手順で仮想環境を環境を立ち上げてるかと言うと

//////////////////////////////////////////////////////////


-Docker Quickstart Terminalを立ち上げる(仮想マシン[default]が起動)


Oracle VM VirtualBox マネージャーで

[いつも使ってる仮想マシン名]を起動

次を実行

$ docker-machine ssh [いつも使ってる仮想マシン名]

boot2dockerで次を実行

$ docker run -v //c/Users/********/tensorflow:/root -it b.gcr.io/tensorflow/tensorflow:latest-devel

(上記設定により下記のディレクトリがwindowsとtensorflowで共有される

C:\Users********\tensorflow)

これでpythonを、1行ずつ実行は

$ python

テキストファイルで実行は

$ python file名

//////////////////////////////////////////////////////////

pyaudioをインストールしたいが、

$ pip pyaudio --proxy=http://**************:8080

とやってもうまくインストールできなかった

portaudioが必要とか何とか色々あるが…

どうやらapt-get と言うやつを使うらしい

必要ならプロキシ設定をしておく

$ export http_proxy="http://your.proxy.address:8080/"

インストールできるライブラリのリストをとりにいく

$ apt-get update

リスト内にpyaudioがあるか検索

$ apt-cache search portaudio

pyaudioらしきもの(python-pyaudio)があったのでインストール

$apt-get install python-pyaudio

pip listで確認してみると

$pip list

ちゃんとPyAudio(0.2.7)があった!

しかしここで、コンテナを落してから上の仮想環境起動の

$ docker run -v //c/Users/********/tensorflow:/root -it b.gcr.io/tensorflow/tensorflow:latest-devel

をやると、PyAudioのインストールされていない新しいコンテナが立ち上がるだけ。試しに

$ pip list

をやるとPyAudio(0.2.7)がないはず

なので、さきほどと同じコンテナを立ち上げる

今まで作成したコンテナを確認する

$ docker ls -a

PyAudioをインストールしたコンテナを見つけ、コンテナ名を確認する。仮の名前がついている。


docker@*****:~$ docker ps -a

CONTAINER ID IMAGE COMMAND

CREATED STATUS PORTS NAM

ES

017422a67b2e b.gcr.io/tensorflow/tensorflow:latest-devel "/bin/bash"

About an hour ago Exited (0) About an hour ago stu

pefied_einstein

c2dffdeba366 b.gcr.io/tensorflow/tensorflow:latest-devel "/bin/bash"

About an hour ago Exited (0) 12 seconds ago tco

ntainer

9b29177d149a simage "/bin/bash"

About an hour ago Exited (0) About an hour ago sco

ntainer


何分前にコンテナから抜けたかで探す。ここではstupefied_einsteinとかtcontainerとかscontainerが名前

名前をわかりやすい名前に変えておく

$ docker rename 旧名前 新しい名前

コンテナをstartで起動してattachで入る

$ docker start 新しい名前

$ docker attach 新しい名前

しっかりpyaudioがインストールされているか

dockerとwindowsでファイル共有できているか

など確認

$ pip list

ちゃんとPyAudioがある

$ touch test

ちゃんと共有したフォルダ(ここではC:\Users********\tensorflow)にtestファイルができた

PyAudioはサウンドカードを使うみたいなので

VirtualBoxの設定からオーディオ、オーディオを有効化にチェックがいるかも、仮想マシンを落としてから設定しておく


音を鳴らすのは試行錯誤中