voice-changer/trainer/exec.sh
2022-10-03 00:25:07 +09:00

197 lines
5.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 参考:https://programwiz.org/2022/03/22/how-to-write-shell-script-for-option-parsing/
set -eu
MODE=$1
PARAMS=${@:2:($#-1)}
echo "------"
echo "$MODE"
echo "PARAMS: $PARAMS"
echo "VERBOSE: $VERBOSE"
echo "------"
# 起動
if [ "${MODE}" = "SOFT_VC" ] ; then
cd /voice-changer-internal/voice-change-service
cp -r /resources/* .
if [[ -e ./setting.json ]]; then
cp ./setting.json ../frontend/dist/assets/setting.json
else
cp ../frontend/dist/assets/setting_softvc.json ../frontend/dist/assets/setting.json
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
cp -r /resources/* .
if [[ -e ./setting.json ]]; then
cp ./setting.json ../frontend/dist/assets/setting.json
else
cp ../frontend/dist/assets/setting_mmvc.json ../frontend/dist/assets/setting.json
fi
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
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 &
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
fi
# 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