Spaces:
Running
Running
: <<'END' | |
sh run.sh --stage 2 --stop_stage 2 --system_version centos --file_folder_name file_dir --final_model_name nx-mpnet-aishell \ | |
--noise_dir "/data/tianxing/HuggingDatasets/nx_noise/data/noise" \ | |
--speech_dir "/data/tianxing/HuggingDatasets/aishell/data_aishell/wav/train" \ | |
--max_epochs 100 \ | |
--duration 2 \ | |
END | |
# params | |
system_version="windows"; | |
verbose=true; | |
stage=0 # start from 0 if you need to start from data preparation | |
stop_stage=9 | |
work_dir="$(pwd)" | |
file_folder_name=file_folder_name | |
final_model_name=final_model_name | |
config_file="yaml/config.yaml" | |
limit=10 | |
noise_dir=/data/tianxing/HuggingDatasets/nx_noise/data/noise | |
speech_dir=/data/tianxing/HuggingDatasets/aishell/data_aishell/wav/train | |
duration=2 | |
nohup_name=nohup.out | |
# model params | |
batch_size=64 | |
max_epochs=200 | |
save_top_k=10 | |
patience=5 | |
# parse options | |
while true; do | |
[ -z "${1:-}" ] && break; # break if there are no arguments | |
case "$1" in | |
--*) name=$(echo "$1" | sed s/^--// | sed s/-/_/g); | |
eval '[ -z "${'"$name"'+xxx}" ]' && echo "$0: invalid option $1" 1>&2 && exit 1; | |
old_value="(eval echo \\$$name)"; | |
if [ "${old_value}" == "true" ] || [ "${old_value}" == "false" ]; then | |
was_bool=true; | |
else | |
was_bool=false; | |
fi | |
# Set the variable to the right value-- the escaped quotes make it work if | |
# the option had spaces, like --cmd "queue.pl -sync y" | |
eval "${name}=\"$2\""; | |
# Check that Boolean-valued arguments are really Boolean. | |
if $was_bool && [[ "$2" != "true" && "$2" != "false" ]]; then | |
echo "$0: expected \"true\" or \"false\": $1 $2" 1>&2 | |
exit 1; | |
fi | |
shift 2; | |
;; | |
*) break; | |
esac | |
done | |
file_dir="${work_dir}/${file_folder_name}" | |
final_model_dir="${work_dir}/../../trained_models/${final_model_name}"; | |
evaluation_audio_dir="${file_dir}/evaluation_audio" | |
dataset="${file_dir}/dataset.xlsx" | |
train_dataset="${file_dir}/train.xlsx" | |
valid_dataset="${file_dir}/valid.xlsx" | |
$verbose && echo "system_version: ${system_version}" | |
$verbose && echo "file_folder_name: ${file_folder_name}" | |
if [ $system_version == "windows" ]; then | |
alias python3='D:/Users/tianx/PycharmProjects/virtualenv/nx_denoise/Scripts/python.exe' | |
elif [ $system_version == "centos" ] || [ $system_version == "ubuntu" ]; then | |
#source /data/local/bin/nx_denoise/bin/activate | |
alias python3='/data/local/bin/nx_denoise/bin/python3' | |
fi | |
if [ ${stage} -le 1 ] && [ ${stop_stage} -ge 1 ]; then | |
$verbose && echo "stage 1: prepare data" | |
cd "${work_dir}" || exit 1 | |
python3 step_1_prepare_data.py \ | |
--file_dir "${file_dir}" \ | |
--noise_dir "${noise_dir}" \ | |
--speech_dir "${speech_dir}" \ | |
--train_dataset "${train_dataset}" \ | |
--valid_dataset "${valid_dataset}" \ | |
--duration "${duration}" \ | |
fi | |
if [ ${stage} -le 2 ] && [ ${stop_stage} -ge 2 ]; then | |
$verbose && echo "stage 2: train model" | |
cd "${work_dir}" || exit 1 | |
python3 step_2_train_model.py \ | |
--train_dataset "${train_dataset}" \ | |
--valid_dataset "${valid_dataset}" \ | |
--serialization_dir "${file_dir}" \ | |
--config_file "${config_file}" \ | |
fi | |
if [ ${stage} -le 3 ] && [ ${stop_stage} -ge 3 ]; then | |
$verbose && echo "stage 3: test model" | |
cd "${work_dir}" || exit 1 | |
python3 step_3_evaluation.py \ | |
--valid_dataset "${valid_dataset}" \ | |
--model_dir "${file_dir}/best" \ | |
--evaluation_audio_dir "${evaluation_audio_dir}" \ | |
--limit "${limit}" \ | |
fi | |
if [ ${stage} -le 4 ] && [ ${stop_stage} -ge 4 ]; then | |
$verbose && echo "stage 4: collect files" | |
cd "${work_dir}" || exit 1 | |
mkdir -p ${final_model_dir} | |
cp "${file_dir}/best"/* "${final_model_dir}" | |
cp -r "${file_dir}/evaluation_audio" "${final_model_dir}" | |
cd "${final_model_dir}/.." || exit 1; | |
if [ -e "${final_model_name}.zip" ]; then | |
rm -rf "${final_model_name}_backup.zip" | |
mv "${final_model_name}.zip" "${final_model_name}_backup.zip" | |
fi | |
zip -r "${final_model_name}.zip" "${final_model_name}" | |
rm -rf "${final_model_name}" | |
fi | |
if [ ${stage} -le 5 ] && [ ${stop_stage} -ge 5 ]; then | |
$verbose && echo "stage 5: clear file_dir" | |
cd "${work_dir}" || exit 1 | |
rm -rf "${file_dir}"; | |
fi | |