[PYTHON] Implémenter ESPnet sur Macbook

Contexte

Je voulais utiliser une bibliothèque de reconnaissance vocale open source sur mon Mac, mais après de nombreuses recherches, je ne pouvais même pas conclure si je pouvais. Requirement environments according to ESPnet official documents

Supported Linux distributions and other requirements
We support the following Linux distributions with CI. If you want to build your own Linux by yourself, please also check our CI configurations. to prepare the appropriate environments
ubuntu18
ubuntu16
centos7
debian9

(Dans la documentation, seul Linux semble fonctionner, mais j'ai pu l'implémenter sur macOS) Voici un résumé de mes propres méthodes et problèmes qui se sont posés.

procédure

Environnement d'exploitation

** macOS Calatina 10.15.4 ** (actuellement la dernière version de 2020.4) Anaconda3(Python3.7.3)

Installation Homebrew

https://brew.sh/index_ja

$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

Préparer l'environnement

Selon la documentation, gcc 4.9+ pour PyTorch 1.0.0+ est requis

warp-transducer.done: espnet.done
    rm -rf warp-transducer
    git clone https://github.com/HawkAaron/warp-transducer.git
    # Note: Requires gcc>=5.0 to build extensions with pytorch>=1.0

Si vous vous référez au makefile d'ESPnet, ** gcc> = 5.0 ** est requis.

Installez gcc

$ brew install gcc
$ ln -s /usr/local/bin/gcc-9 /usr/local/bin/gcc
$ ln -s /usr/local/bin/g++-9 /usr/local/bin/g++
$ gcc --version
gcc-9 (Homebrew GCC 9.3.0_1) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.

Installez cmake

Téléchargez et installez la version macOS depuis https://cmake.org/download/

Installez sox, ffmepg, flac

$ conda install -c conda-forge sox
$ conda install -c conda-forge ffmpeg
$ brew install flac
$ brew install automake

Installez autoconf

Téléchargement depuis http://ftp.gnu.org/gnu/autoconf/.

$ wget http://ftp.gnu.org/gnu/autoconf/autoconf-latest.tar.xz
$ tar xvfz autoconf-latest.tar.xz
$ cd autoconf-latest
$ ./configure --prefix=/usr  #Si vous ne pouvez pas obtenir l'autorisation ici, préfixez~Veuillez dans ce qui suit.
$ make
$ make install
$ git clone https://github.com/kaldi-asr/kaldi
$ cd kaldi/tools
$ ./extras/install_openblas.sh #openBLAS installation
$ ./extras/check_dependencies.sh 

Après avoir implémenté toutes les dépendances

$ make -j <Le nombre de fils>  #C'est inhabituellement lent ici, alors dépêchez-vous et utilisez tous les cœurs.

compiler sans cuda

$ cd ../src
$ ./configure --mkl-root=/opt/intel/compilers_and_libraries_2020/mac/mkl --use-cuda=no
$ make -j clean depend; make -j <NUM-CPU>

Installation d'ESPnet

$ git clone https://github.com/espnet/espnet
$ cd espnet/tools

Si le clang fourni avec Xcode est déjà installé, clang sera appelé même si vous appuyez sur la commande gcc. La compilation avec clang pose le problème de clang: error: option non prise en charge'-fopenmp'` ``, vous devez donc définir les variables du compilateur dans gcc avant de faire make.

$ export CC=gcc
$ export CXX=g++

$ make KALDI=<PATH_TO_KALDI>  #OPTIONS

OPTIONS:

CUPY_VERSION='' #CPU-Version cupy vide à installer uniquement.
PYTHON=/opt/anaconda3/bin/python3.7 #Veuillez spécifier PYTHON s'il y a un bogue dans miniconda.
TH_VERSION=1.2.0 #warp pour macOS-Version 1 avec perte CTC intégrée en raison du manque de package ctc.2.Nécessite 0 pytroch ou plus.
INFO: library availableness check start.
INFO: # libraries to be checked = 7
INFO: --> espnet is installed.
INFO: --> kaldiio is installed.
INFO: --> matplotlib is installed.
INFO: --> torch is installed.
INFO: --> chainer is installed.
INFO: --> chainer_ctc is installed.
WARNING: --> warprnnt_pytorch is not installed.
INFO: library availableness check done.
INFO: 6 / 7 libraries are correctly installed.
INFO: please try to setup again and then re-run this script.
make: *** [check_install] Error 1

Il semble que warprnnt_pytorch n'ait pas besoin d'être une plate-forme uniquement CPU, donc c'est complet.

Vérification

$cd espnet/egs/csj/asr1;bash ../../../utils/recog_wav.sh --models csj.transformer.v1 <fichier wav>

Voici le modèle csj.transformer avec les résultats asr japonais

stage 0: Data preparation
stage 1: Feature Generation
steps/make_fbank_pitch.sh --cmd run.pl --nj 1 --write_utt2num_frames true decode/osa/data decode/osa/log decode/osa/fbank
steps/make_fbank_pitch.sh: moving decode/osa/data/feats.scp to decode/osa/data/.backup
utils/validate_data_dir.sh: Successfully validated data-directory decode/osa/data
steps/make_fbank_pitch.sh: [info]: no segments file exists: assuming wav.scp indexed by utterance.
steps/make_fbank_pitch.sh: Succeeded creating filterbank and pitch features for data
/Users/soshiyuu/signal/espnet/egs/csj/asr1/../../../utils/dump.sh --cmd run.pl --nj 1 --do_delta false decode/osa/data/feats.scp decode/download/csj.transformer.v1/data/train_nodup_sp/cmvn.ark decode/osa/log decode/osa/dump
stage 2: Json Data Preparation
/Users/soshiyuu/signal/espnet/egs/csj/asr1/../../../utils/data2json.sh --feat decode/osa/dump/feats.scp decode/osa/data decode/osa/dict
/Users/soshiyuu/signal/espnet/egs/csj/asr1/../../../utils/feat_to_shape.sh --cmd run.pl --nj 1 --filetype  --preprocess-conf  --verbose 0 decode/osa/dump/feats.scp decode/osa/data/tmp-EPng1/input_1/shape.scp
sym2int.pl: replacing X with 1
** Replaced 1 instances of OOVs with 1
stage 3: Decoding

Recognized text:Eh bien, que diriez-vous du lundi matin, n'est-ce pas gratuit?



Recommended Posts

Implémenter ESPnet sur Macbook
OpenPose sur MacBook Pro
OpenPose sur MacBook Pro Partie 2
Implémentation de retina net sur CentOS
Apprendre Paints Chainer avec Macbook Pro ~ Fonctionnement