Spaces:
Sleeping
Sleeping
# Thiết lập GPU sử dụng | |
export CUDA_VISIBLE_DEVICES=0 # 0 nếu như bạn có GPU của nvidia :v | |
log() { | |
echo "$@" | |
} | |
# Tạo thư mục cần thiết, | |
DATASET_DIR="data/your_training_dataset" | |
mkdir -p "$DATASET_DIR" | |
# Bắt buộc phải có thư mục data/your_dataset chứa các file .wav, file .txt tương ứng, các bạn tự xử lý | |
mkdir -p data/your_dataset | |
# Định nghĩa các tham số huấn luyện | |
EXP_NAME="F5TTS_Base" | |
DATASET_NAME="your_training_dataset" | |
BATCH_SIZE=7000 | |
NUM_WOKERS=16 | |
WARMUP_UPDATES=20000 | |
SAVE_UPDATES=10000 | |
LAST_UPDATES=10000 | |
PRETRAIN_CKPT="/mnt/d/ckpts/your_training_dataset/pretrained_model_1200000.pt" | |
# Tạo các biến stage để quản lý pipeline, bước nào đã chạy rồi thì không cần chạy lại | |
stage=5 | |
stop_stage=5 | |
# Chuẩn hoá sample_rate, bỏ qua stage này nếu audio của bạn đã ở định dạng 24Khz | |
if [ $stage -le 0 ] && [ $stop_stage -ge 0 ]; then | |
log "Convert sample rate: data/your_dataset ..." | |
python convert_sr.py | |
fi | |
# Chuẩn bị dữ liệu audio_name và text tương ứng | |
if [ $stage -le 1 ] && [ $stop_stage -ge 1 ]; then | |
log "Preparing metadata at: data/your_dataset ..." | |
python prepare_metadata.py | |
fi | |
# Bổ sung từ vựng trong bộ dữ liệu của bạn chưa có trong từ vựng của mô hình pretrained | |
if [ $stage -le 2 ] && [ $stop_stage -ge 2 ]; then | |
log "Checking missing token in pretrained vocab ... " | |
python check_vocab_pretrained.py | |
fi | |
# Mở rộng embedding của mô hình pretrained để hỗ trợ bộ từ vựng mới | |
if [ $stage -le 3 ] && [ $stop_stage -ge 3 ]; then | |
log "Extend embedding pretrained with new vocab ... " | |
python extend_embedding_pretrained.py | |
fi | |
# Trích xuất đặc trưng | |
if [ $stage -le 4 ] && [ $stop_stage -ge 4 ]; then | |
log "Feature extraction ... " | |
python src/f5_tts/train/datasets/prepare_csv_wavs.py "$DATASET_DIR" "$DATASET_DIR" --workers "$NUM_WOKERS" | |
fi | |
# Chạy quá trình fine-tuning | |
if [ $stage -le 5 ] && [ $stop_stage -ge 5 ]; then | |
log "Start fine-tuning F5-TTS with your dataset ... " | |
python src/f5_tts/train/finetune_cli.py \ | |
--exp_name "$EXP_NAME" \ | |
--dataset_name "$DATASET_NAME" \ | |
--batch_size_per_gpu "$BATCH_SIZE" \ | |
--num_warmup_updates "$WARMUP_UPDATES" \ | |
--save_per_updates "$SAVE_UPDATES" \ | |
--last_per_updates "$LAST_UPDATES" \ | |
--finetune \ | |
--log_samples \ | |
--pretrain "$PRETRAIN_CKPT" | |
### Nếu bạn muốn training với nhiều gpu, sử dụng câu lệnh bên dưới: | |
# accelerate launch src/f5_tts/train/finetune_cli.py \ | |
# --exp_name "$EXP_NAME" \ | |
# --dataset_name "$DATASET_NAME" \ | |
# --batch_size_per_gpu "$BATCH_SIZE" \ | |
# --num_warmup_updates "$WARMUP_UPDATES" \ | |
# --save_per_updates "$SAVE_UPDATES" \ | |
# --last_per_updates "$LAST_UPDATES" \ | |
# --finetune \ | |
# --log_samples \ | |
# --pretrain "$PRETRAIN_CKPT" | |
fi | |
log "Fine-tuning F5-TTS done." | |