ラズパイ4に。
成果物
情報源
まとめ
pip3 install --upgrade pip3 setuptools pip install --upgrade pip setuptools
sudo apt install -y cmake sox libsndfile1-dev ffmpeg flac libatlas-base-dev
git clone https://github.com/kaldi-asr/kaldi.git git clone https://github.com/espnet/espnet cd espnet/tools ls -s ../../kaldi/ . ./setup_venv.sh $(command -v python3) . activate_python.sh pip install numpy pip install cython ./installers/install_pyopenjtalk.sh make . ./activate_python.sh; python3 check_install.py
- ESPnetは
activate_python.sh
でPythonパッケージ仮想環境を作っている- いつもこれを実行して仮想環境をアクティブにしておく必要がある
- 日本語TTSのため
pyopenjtalk
を入れたpip install
:numpy
,cython
が必要だった
インストール状況
[x] python=3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] Python modules: [ ] torch [ ] chainer [ ] cupy [ ] torchaudio [ ] torch_optimizer [ ] warpctc_pytorch [ ] warprnnt_pytorch [ ] warp_rnnt [ ] chainer_ctc [ ] pyopenjtalk [ ] kenlm [ ] mmseg [ ] espnet Executables: [ ] sclite [ ] sph2pipe [ ] PESQ [ ] BeamformIt
試行錯誤ログ
pip3 install --upgrade pip3 setuptools pip install --upgrade pip setuptools
pip3 install espnet pip3 install torch pip3 install chainer==6.0.0 cupy==6.0.0 # [Option] If you'll use ESPnet1 pip3 install torchaudio # [Option] If you'll use enhancement task pip3 install torch_optimizer # [Option] If you'll use additional optimizers in ESPnet2
pip install espnet pip install torch pip install chainer==6.0.0 cupy==6.0.0 # [Option] If you'll use ESPnet1 pip install torchaudio # [Option] If you'll use enhancement task pip install torch_optimizer # [Option] If you'll use additional optimizers in ESPnet2
エラー。
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-b7ux0rwr/sentencepiece/
解決できず。よくみるとフルインストールするなら以下を読めってことだった。こっちをみてみる。
sudo apt install -y cmake sox libsndfile1-dev ffmpeg flac
日本語TTSするならpyopenjtalk
を入れるっぽい。それを加味してインストールするスクリプトは以下だと思われる。
git clone https://github.com/kaldi-asr/kaldi.git git clone https://github.com/espnet/espnet cd espnet/tools ls -s ../../kaldi/ . ./setup_venv.sh $(command -v python3) . activate_python.sh ./installers/install_pyopenjtalk.sh make . ./activate_python.sh; python3 check_install.py
PyOpenJTalk
PyOpenJTalkのインストールでエラー。mumpy
がないと怒られる。
Obtaining file:///tmp/work/espnet/tools/pyopenjtalk ERROR: Command errored out with exit status 1: command: /tmp/work/espnet/tools/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"'; __file__='"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-tifgzkmx cwd: /tmp/work/espnet/tools/pyopenjtalk/ Complete output (5 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/work/espnet/tools/pyopenjtalk/setup.py", line 10, in <module> import numpy as np ModuleNotFoundError: No module named 'numpy' ---------------------------------------- WARNING: Discarding file:///tmp/work/espnet/tools/pyopenjtalk. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
いや、あるんですけど?
$ pip3 list | grep numpy numpy 1.16.2 $ pip list | grep numpy numpy 1.16.2
./setup_venv.sh numpy
わかったぞ。. activate_python.sh
スクリプトファイルの中でPythonパッケージ仮想環境をつくっている。venv
ってやつ。その仮想環境venvの中にnumpy
をインストールしないとダメなんだ。
. activate_python.sh
pip install numpy
git clone https://github.com/kaldi-asr/kaldi.git git clone https://github.com/espnet/espnet cd espnet/tools ls -s ../../kaldi/ . ./setup_venv.sh $(command -v python3) . activate_python.sh pip install numpy ./installers/install_pyopenjtalk.sh make . ./activate_python.sh; python3 check_install.py
新たなエラーが出た。
... Obtaining file:///tmp/work/espnet/tools/pyopenjtalk ERROR: Command errored out with exit status 1: command: /tmp/work/espnet/tools/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"'; __file__='"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-u88lzkkx cwd: /tmp/work/espnet/tools/pyopenjtalk/ Complete output (41 lines): Traceback (most recent call last): File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/__init__.py", line 22, in <module> from . import multiarray File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/multiarray.py", line 12, in <module> from . import overrides File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/overrides.py", line 7, in <module> from numpy.core._multiarray_umath import ( ImportError: libf77blas.so.3: cannot open shared object file: No such file or directory During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/work/espnet/tools/pyopenjtalk/setup.py", line 10, in <module> import numpy as np File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/__init__.py", line 145, in <module> from . import core File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/__init__.py", line 48, in <module> raise ImportError(msg) ImportError: IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE! Importing the numpy C-extensions failed. This error can happen for many reasons, often due to issues with your setup or how NumPy was installed. We have compiled some common reasons and troubleshooting tips at: https://numpy.org/devdocs/user/troubleshooting-importerror.html Please note and check the following: * The Python version is: Python3.7 from "/tmp/work/espnet/tools/venv/bin/python3" * The NumPy version is: "1.20.0" and make sure that they are the versions you expect. Please carefully study the documentation linked above for further help. Original error was: libf77blas.so.3: cannot open shared object file: No such file or directory ---------------------------------------- WARNING: Discarding file:///tmp/work/espnet/tools/pyopenjtalk. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
何かが足りないっぽい。
アナコンダは使えなかった
これはアナコンダってのを入れたほうが早いかもな。
新しい端末のタブを起動。以下コマンドを入力する。
cd /tmp/work/espnet/tools ./setup_anaconda.sh anaconda espnet 3.8
... miniconda.sh: 行 412: /tmp/work/espnet/tools/anaconda/conda.exe: バイナリファイルを実行できません: 実行形式エラー miniconda.sh: 行 414: /tmp/work/espnet/tools/anaconda/conda.exe: バイナリファイルを実行できません: 実行形式エラー
exe
って、まさかWindowsでしか使えないの? クソすぎ。ダメじゃん。
libf77blas.so.3
numpy
が使うlibf77blas.so.3
というのがないってさ。libf77blas.so.3
ってなんぞ?
from . import multiarray File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/multiarray.py", line 12, in <module> from . import overrides File "/tmp/work/espnet/tools/venv/lib/python3.7/site-packages/numpy/core/overrides.py", line 7, in <module> from numpy.core._multiarray_umath import ( ImportError: libf77blas.so.3: cannot open shared object file: No such file or directory
ググった。
以下インストールすればいいっぽい。
sudo apt install libatlas-base-dev
再び
./installers/install_pyopenjtalk.sh
また別のエラー。
Obtaining file:///tmp/work/espnet/tools/pyopenjtalk ERROR: Command errored out with exit status 1: command: /tmp/work/espnet/tools/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"'; __file__='"'"'/tmp/work/espnet/tools/pyopenjtalk/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-0_tnrln8 cwd: /tmp/work/espnet/tools/pyopenjtalk/ Complete output (5 lines): Traceback (most recent call last): File "<string>", line 1, in <module> File "/tmp/work/espnet/tools/pyopenjtalk/setup.py", line 52, in <module> raise RuntimeError("Cython is required to generate C++ code") RuntimeError: Cython is required to generate C++ code ---------------------------------------- WARNING: Discarding file:///tmp/work/espnet/tools/pyopenjtalk. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output. ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
エラー内容を和訳すると「C++コードを生成するにはCPythonが必要です」ってことらしい。
よくわからんけどCPythonってのはPythonのパッケージ。以下でインストールするっぽい。venv
内に入れる。
pip install cython
再び
./installers/install_pyopenjtalk.sh
できた!
Successfully installed pyopenjtalk six-1.15.0
ESPnetのビルド
やっと続きができる。
make
インストール確認
. ./activate_python.sh; python3 check_install.py
[x] python=3.7.3 (default, Jul 25 2020, 13:03:44) [GCC 8.3.0] Python modules: [ ] torch [ ] chainer [ ] cupy [ ] torchaudio [ ] torch_optimizer [ ] warpctc_pytorch [ ] warprnnt_pytorch [ ] warp_rnnt [ ] chainer_ctc [ ] pyopenjtalk [ ] kenlm [ ] mmseg [ ] espnet Executables: [ ] sclite [ ] sph2pipe [ ] PESQ [ ] BeamformIt INFO: Use 'installers/install_warp-ctc.sh' to install warpctc_pytorch Use 'installers/install_warp-transducer.sh' to install warprnnt_pytorch Use 'installers/install_warp-rnnt.sh' to install warp_rnnt Use 'installers/install_chainer_ctc.sh' to install chainer_ctc Use 'installers/install_pyopenjtalk.sh' to install pyopenjtalk Use 'installers/install_kenlm.sh' to install kenlm Use 'installers/install_py3mmseg.sh' to install mmseg Use 'installers/install_sctk.sh' to install sclite Use 'installers/install_sph2pipe.sh' to install sph2pipe Use 'installers/install_pesq.sh' to install PESQ Use 'installers/install_beamformit.sh' to install BeamformIt
あれ、チェックついてないじゃん。これほんとにインストールされてんの? 一応、INFOに従って以下コマンドをやってみたけどかわらず。
./installers/install_pyopenjtalk.sh
以下の[ ]
が[x]
になるのかと思っていたんだが。ていうか、torch
とかも必要じゃないの?
[ ] pyopenjtalk
ダメだわからん。
ESPnetのインストールはできたと思う。足りないものばかりっぽいが。とにかくここまでまとめよう。
まとめ
sudo apt install -y cmake sox libsndfile1-dev ffmpeg flac libatlas-base-dev
git clone https://github.com/kaldi-asr/kaldi.git git clone https://github.com/espnet/espnet cd espnet/tools ls -s ../../kaldi/ . ./setup_venv.sh $(command -v python3) . activate_python.sh pip install numpy pip install cython ./installers/install_pyopenjtalk.sh make . ./activate_python.sh; python3 check_install.py
- ESPnetは
activate_python.sh
でPythonパッケージ仮想環境を作っているっぽい- いつもこれを実行して仮想環境をアクティブにしておく必要がある
- 日本語TTSのため
pyopenjtalk
を入れたpip install
:numpy
,cython
が必要だった
所感
で? だから何? これで何ができるの? どうやって使うの? というかインストール完了してなくない? ぜんぜん足りてないっぽく見えるんですけど。
あらゆる疑問をすっとばして次へ進む。
対象環境
- Raspbierry pi 4 Model B
- Raspberry Pi OS buster 10.0 2020-08-20 ※
- bash 5.0.3(1)-release
$ uname -a Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux