| # Phase 3: scale-up. Warm-start from P1 (weights-only init), train on ~337h | |
| # (IndicVoices-hi 307h + keywords + svarah + numbers) with x3 speed perturbation. | |
| # bf16, pure CTC, causal streaming, fixed 103-char vocab. | |
| set -e | |
| source /workspace/venvs/icefall/bin/activate | |
| export PYTHONPATH=/root/icefall:$PYTHONPATH | |
| cd /root/icefall/egs/hindi/ASR | |
| ROOT=/workspace/hindi_ft/asr_ctc | |
| python zipformer/train.py \ | |
| --world-size 1 \ | |
| --num-epochs 15 \ | |
| --start-epoch 1 \ | |
| --init-ckpt $ROOT/exp_p1/epoch-30.pt \ | |
| --exp-dir $ROOT/exp_p3 \ | |
| --lang-dir $ROOT/data/lang_char \ | |
| --manifest-dir $ROOT/data/fbank_p3 \ | |
| --use-ctc 1 --use-transducer 0 --ctc-loss-scale 1.0 \ | |
| --causal 1 \ | |
| --chunk-size "16,32,64,-1" \ | |
| --left-context-frames "64,128,256,-1" \ | |
| --max-duration 300 \ | |
| --use-fp16 0 \ | |
| --num-workers 8 \ | |
| --enable-musan False \ | |
| --on-the-fly-feats True \ | |
| --base-lr 0.02 # warm-start lr; nan at batch~350 was a bad data sample (recurs at any lr), handled by skip-nan guard in train.py | |