Train a ASR model from scratch for a low resource language, comparing transformer decoding vs CTC
# train-transformer-asr
Train an ASR model from scratch for a low resource language, comparing transformer decoding vs CTC.
---
## Overview
This repository provides a complete end-to-end training pipeline for Automatic Speech Recognition (ASR) in low-resource language settings. Two decoder architectures are implemented and can be directly compared:
| Decoder | Architecture | Loss |
|---------|-------------|------|
| **Transformer** | Conformer encoder + autoregressive attention decoder | Cross-entropy |
| **CTC** | Conformer encoder + linear CTC projection | CTC loss |
Both share the same Conformer/Transformer encoder backbone, enabling a fair comparison.
---
## Project Structure
```
train-transformer-asr/
├── configs/
│ ├── base_config.yaml # shared hyper-parameters
│ ├── transformer_config.yaml # attention decoder settings
│ └── ctc_config.yaml # CTC decoder settings
├── src/
│ ├── data/
│ │ ├── dataset.py # HuggingFace dataset loader & CharTokenizer
│ │ └── preprocessing.py # LogMelFilterBank & SpecAugment
│ ├── models/
│ │ ├── encoder.py # Conformer / Transformer encoder
│ │ ├── transformer_decoder.py # Autoregressive Transformer decoder
│ │ ├── ctc_decoder.py # CTC decoder with prefix beam search
│ │ └── asr_model.py # CTCASRModel & TransformerASRModel
│ ├── training/
│ │ ├── trainer.py # Unified training loop (fp16, early stopping)
│ │ └── metrics.py # WER / CER computation
│ └── utils/
│ └── logger.py # Logging utilities
├── scripts/
│ ├── train_transformer.py # Entry point: train Transformer decoder
│ ├── train_ctc.py # Entry point: train CTC decoder
│ └── evaluate.py # Evaluate a checkpoint on the test set
├── cloud/
│ ├── aws/
│ │ ├── ec2_setup.sh # EC2 environment setup script
│ │ └── sagemaker_job.py # Submit training to SageMaker
│ └─ …