# Copyright (c) 2022, NVIDIA CORPORATION. All rights reserved. | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
# Use this script to install KenLM, OpenSeq2Seq decoder, Flashlight decoder | |
shopt -s expand_aliases | |
NEMO_PATH=/workspace/nemo # Path to NeMo folder: /workspace/nemo if you use NeMo/Dockerfile | |
if [ "$#" -eq 1 ]; then | |
NEMO_PATH=$1 | |
fi | |
KENLM_MAX_ORDER=10 # Maximum order of KenLM model, also specified in the setup_os2s_decoders.py | |
if [ -d "$NEMO_PATH" ]; then | |
echo "The folder '$NEMO_PATH' exists." | |
else | |
echo "Error: The folder '$NEMO_PATH' does not exist. Specify it as a first command line positional argument!" | |
exit 1 | |
fi | |
cd $NEMO_PATH | |
if [ $(id -u) -eq 0 ]; then | |
alias aptupdate='apt-get update' | |
alias b2install='./b2' | |
else | |
alias aptupdate='sudo apt-get update' | |
alias b2install='sudo ./b2' | |
fi | |
aptupdate && apt-get upgrade -y | |
# apt-get install -y swig liblzma-dev && rm -rf /var/lib/apt/lists/* # liblzma needed for flashlight decoder | |
# install Boost package for KenLM | |
#wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 --no-check-certificate && tar --bzip2 -xf $NEMO_PATH/boost_1_80_0.tar.bz2 && cd boost_1_80_0 && ./bootstrap.sh && b2install --layout=tagged link=static,shared threading=multi,single install -j4 && cd .. || echo FAILURE | |
#export BOOST_ROOT=$NEMO_PATH/boost_1_80_0 | |
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 --no-check-certificate && tar --bzip2 -xf $NEMO_PATH/boost_1_80_0.tar.bz2 && cd boost_1_80_0 && ./bootstrap.sh && sudo b2 --layout=tagged link=static,shared threading=multi,single install && cd .. || echo FAILURE | |
export BOOST_ROOT=$NEMO_PATH/boost_1_80_0 | |
git clone https://github.com/NVIDIA/OpenSeq2Seq | |
cd OpenSeq2Seq | |
git checkout ctc-decoders | |
cd .. | |
mv OpenSeq2Seq/decoders $NEMO_PATH/ | |
rm -rf OpenSeq2Seq | |
cd $NEMO_PATH/decoders | |
cp $NEMO_PATH/scripts/installers/setup_os2s_decoders.py ./setup.py | |
./setup.sh | |
# install KenLM | |
cd $NEMO_PATH/decoders/kenlm/build && cmake -DKENLM_MAX_ORDER=$KENLM_MAX_ORDER .. && make -j2 | |
cd $NEMO_PATH/decoders/kenlm | |
python setup.py install --max_order=$KENLM_MAX_ORDER | |
export KENLM_LIB=$NEMO_PATH/decoders/kenlm/build/bin | |
export KENLM_ROOT=$NEMO_PATH/decoders/kenlm | |
cd .. | |
# install Flashlight | |
# git clone https://github.com/flashlight/text && cd text | |
# python setup.py bdist_wheel | |
# pip install dist/*.whl | |
# cd .. | |