voice-changer/trainer/exec.sh

197 lines
5.5 KiB
Bash
Raw Normal View History

2022-08-22 21:57:54 +03:00
#!/bin/bash
# 参考:https://programwiz.org/2022/03/22/how-to-write-shell-script-for-option-parsing/
set -eu
2022-10-02 18:16:46 +03:00
MODE=$1
PARAMS=${@:2:($#-1)}
2022-08-22 21:57:54 +03:00
echo "------"
2022-10-02 18:16:46 +03:00
echo "$MODE"
echo "PARAMS: $PARAMS"
echo "VERBOSE: $VERBOSE"
2022-08-22 21:57:54 +03:00
echo "------"
2022-10-02 18:16:46 +03:00
# 起動
if [ "${MODE}" = "SOFT_VC" ] ; then
cd /voice-changer-internal/voice-change-service
2022-08-22 21:57:54 +03:00
2022-10-02 18:16:46 +03:00
cp -r /resources/* .
if [[ -e ./setting.json ]]; then
cp ./setting.json ../frontend/dist/assets/setting.json
2022-10-02 18:25:07 +03:00
else
cp ../frontend/dist/assets/setting_softvc.json ../frontend/dist/assets/setting.json
2022-10-02 18:16:46 +03:00
fi
if [ "${VERBOSE}" = "on" ]; then
echo "SOFT_VCを起動します(verbose)"
python3 SoftVcServerSIO.py $PARAMS
else
echo "SOFT_VCを起動します"
python3 SoftVcServerSIO.py $PARAMS 2>stderr.txt
fi
elif [ "${MODE}" = "MMVC" ] ; then
cd /voice-changer-internal/voice-change-service
2022-08-23 05:17:51 +03:00
2022-10-02 18:16:46 +03:00
cp -r /resources/* .
if [[ -e ./setting.json ]]; then
cp ./setting.json ../frontend/dist/assets/setting.json
2022-10-02 18:25:07 +03:00
else
cp ../frontend/dist/assets/setting_mmvc.json ../frontend/dist/assets/setting.json
2022-10-02 18:16:46 +03:00
fi
2022-08-23 05:17:51 +03:00
2022-10-02 18:16:46 +03:00
if [ "${VERBOSE}" = "on" ]; then
echo "MMVCを起動します(verbose)"
python3 serverSIO.py $PARAMS
else
echo "MMVCを起動します"
python3 serverSIO.py $PARAMS 2>stderr.txt
fi
elif [ "${MODE}" = "MMVC_TRAIN" ] ; then
2022-08-23 05:17:51 +03:00
python3 create_dataset_jtalk.py -f train_config -s 24000 -m dataset/multi_speaker_correspondence.txt
# date_tag=`date +%Y%m%d%H%M%S`
sed -ie 's/80000/8000/' train_ms.py
sed -ie "s/\"batch_size\": 10/\"batch_size\": $batch_size/" configs/train_config.json
sed -ie "s/torch.cuda.device_count()/1/" train_ms.py
python3 -m tensorboard.main --logdir logs --port 6006 --host 0.0.0.0 &
2022-10-02 18:16:46 +03:00
python3 train_ms.py $PARAMS
# if ${resume_flag}; then
# echo "トレーニング再開。バッチサイズ: ${batch_size}。"
# python3 train_ms.py -c configs/train_config.json -m vc
# else
# echo "トレーニング開始。バッチサイズ: ${batch_size}。"
# python3 train_ms.py -c configs/train_config.json -m vc -fg fine_model/G_180000.pth -fd fine_model/D_180000.pth
# fi
2022-08-23 05:17:51 +03:00
fi
2022-10-02 18:16:46 +03:00
# usage() {
# echo "
# usage:
# For training
# $0 [-t] [-b batch_size] [-r]
# -t: flag for training mode
# -b: batch_size.
# -r: flag for resuming training.
# For changing voice
# $0 [-v] [-c config] [-m model]
# -v: flag for voice change mode
# -c: config
# -m: model name
# For help
# $0 [-h]
# -h: show this help
# " >&2
# }
# warn () {
# echo "! ! ! $1 ! ! !"
# exit 1
# }
# training_flag=false
# batch_size=10
# resume_flag=false
# voice_change_flag=false
# config=
# model=
# escape_flag=false
# # オプション解析
# while getopts tb:rvc:m:hx OPT; do
# case $OPT in
# t)
# training_flag=true
# ;;
# b)
# batch_size="$OPTARG"
# ;;
# r)
# resume_flag=true
# ;;
# v)
# voice_change_flag=true
# ;;
# c)
# config="$OPTARG"
# ;;
# m)
# model="$OPTARG"
# ;;
# h | \?)
# usage && exit 1
# ;;
# x)
# escape_flag=true
# esac
# done
# # ## コマンドライン引数から、オプション引数分を削除
# # # shift $((OPTIND - 1))
# # # モード解析
# # if $training_flag && $voice_change_flag; then
# # warn "-tトレーニングモード と -vボイチェンモードは同時に指定できません。"
# # exit 1
# # elif $training_flag; then
# # echo "■■■ ト レ ー ニ ン グ モ ー ド ■■■"
# # elif $voice_change_flag; then
# # echo "■■■ ボ イ チ ェ ン モ ー ド ■■■"
# # elif $escape_flag; then
# # /bin/bash
# # else
# # warn "-tトレーニングモード と -vボイチェンモードのいずれかを指定してください。"
# # exit 1
# # fi
# if $training_flag; then
# python3 create_dataset_jtalk.py -f train_config -s 24000 -m dataset/multi_speaker_correspondence.txt
# # date_tag=`date +%Y%m%d%H%M%S`
# sed -ie 's/80000/8000/' train_ms.py
# sed -ie "s/\"batch_size\": 10/\"batch_size\": $batch_size/" configs/train_config.json
# sed -ie "s/torch.cuda.device_count()/1/" train_ms.py
# python3 -m tensorboard.main --logdir logs --port 6006 --host 0.0.0.0 &
# if ${resume_flag}; then
# echo "トレーニング再開。バッチサイズ: ${batch_size}。"
# python3 train_ms.py -c configs/train_config.json -m vc
# else
# echo "トレーニング開始。バッチサイズ: ${batch_size}。"
# python3 train_ms.py -c configs/train_config.json -m vc -fg fine_model/G_180000.pth -fd fine_model/D_180000.pth
# fi
# fi
# if $voice_change_flag; then
# if [[ -z "$config" ]]; then
# warn "コンフィグファイル(-c)を指定してください"
# fi
# if [[ -z "$model" ]]; then
# warn "モデルファイル(-m)を指定してください"
# fi
# cd /voice-changer-internal/voice-change-service
# cp -r /resources/* .
# if [[ -e ./setting.json ]]; then
# cp ./setting.json ../frontend/dist/assets/setting.json
# fi
# echo "-----------!!"
# echo $config $model
# echo $model
# python3 serverSIO.py -p 8080 -c $config -m $model --https True --httpsSelfSigned True
# fi