1#!/bin/bash 2 3 4case $# in 5 9) SETUP=$1; OUTDIR=$2; NAME=$3; DEVICE=$4; ROUNDS=$5; LPCNEXT=$6; LPCNET=$7; TESTSUITE=$8; TESTITEMS=$9;; 6 *) echo "loop_run.sh setup outdir name device rounds lpcnext_repo lpcnet_repo testsuite_repo testitems"; exit;; 7esac 8 9 10PYTHON="/home/ubuntu/opt/miniconda3/envs/torch/bin/python" 11TESTFEATURES=${LPCNEXT}/testitems/features/all_0_orig_features.f32 12WARPQREFERENCE=${LPCNEXT}/testitems/wav/all_0_orig.wav 13METRICS="warpq,pesq,pitch_error,voicing_error" 14LPCNETDEMO=${LPCNET}/lpcnet_demo 15 16for ((round = 1; round <= $ROUNDS; round++)) 17do 18 echo 19 echo round $round 20 21 UUID=$(uuidgen) 22 TRAINOUT=${OUTDIR}/${UUID}/training 23 TESTOUT=${OUTDIR}/${UUID}/testing 24 CHECKPOINT=${TRAINOUT}/checkpoints/checkpoint_last.pth 25 FINALCHECKPOINT=${TRAINOUT}/checkpoints/checkpoint_finalize_last.pth 26 27 # run training 28 echo "starting training..." 29 $PYTHON $LPCNEXT/train_lpcnet.py $SETUP $TRAINOUT --device $DEVICE --test-features $TESTFEATURES --warpq-reference $WARPQREFERENCE 30 31 # run finalization 32 echo "starting finalization..." 33 $PYTHON $LPCNEXT/train_lpcnet.py $SETUP $TRAINOUT \ 34 --device $DEVICE --test-features $TESTFEATURES \ 35 --warpq-reference $WARPQREFERENCE \ 36 --finalize --initial-checkpoint $CHECKPOINT 37 38 # create test configs 39 $PYTHON $LPCNEXT/make_test_config.py ${OUTDIR}/${UUID}/testconfig.yml "$NAME $UUID" $CHECKPOINT --lpcnet-demo $LPCNETDEMO 40 $PYTHON $LPCNEXT/make_test_config.py ${OUTDIR}/${UUID}/testconfig_finalize.yml "$NAME $UUID finalized" $FINALCHECKPOINT --lpcnet-demo $LPCNETDEMO 41 42 # run tests 43 echo "starting test 1 (no finalization)..." 44 $PYTHON $TESTSUITE/run_test.py ${OUTDIR}/${UUID}/testconfig.yml \ 45 $TESTITEMS ${TESTOUT}/prefinal --num-workers 8 \ 46 --num-testitems 400 --metrics $METRICS 47 48 echo "starting test 2 (after finalization)..." 49 $PYTHON $TESTSUITE/run_test.py ${OUTDIR}/${UUID}/testconfig_finalize.yml \ 50 $TESTITEMS ${TESTOUT}/final --num-workers 8 \ 51 --num-testitems 400 --metrics $METRICS 52done 53