Conformer-CTC: LibriSpeech English ASR

Final inference resources for the DLA-1 project. The selected checkpoint is epoch 92 of conformer_bpe_ls960_night_b16_108k_cosine_lr1e5_v1.

Model and decoding

  • Conformer encoder: 16 blocks, hidden size 144, 4 attention heads.
  • Feed-forward expansion factor 4, convolution kernel 31, dropout 0.1.
  • Input: 128 log-mel channels, 16 kHz audio, 25 ms window, 10 ms hop.
  • SentencePiece BPE vocabulary: 256 tokens, CTC blank ID 0.
  • Final decoder: pyctcdecode + pruned LibriSpeech 3-gram KenLM, beam width 50, alpha 0.8, beta 2.0.

Test results

Full LibriSpeech test sets, 2,620 test-clean and 2,939 test-other recordings. CER and WER below are means over recordings. Corpus WER divides total word edit counts by the total reference word count.

Decoder test-clean CER (%) test-clean WER (%) test-other CER (%) test-other WER (%)
Argmax 7.07 19.96 16.48 37.68
Own beam search 6.97 19.77 16.29 37.31
Beam without LM 6.94 19.78 16.23 37.35
Beam with LM 5.06 11.77 14.09 26.16

With LM, corpus WER is 10.28% on test-clean and 23.18% on test-other. Decoder settings were selected on development data. Exact metrics are in resources/final/test_metrics.json inside the archive.

Resources

final_ctc.zip contains all resources used by the demo:

  • saved/final/model.pth: exported model state and checkpoint epoch;
  • resources/tokenizers/bpe_256.model: the original tokenizer;
  • data/lm/librispeech/3-gram.pruned.1e-7.arpa.gz: compressed original LM;
  • resources/final/training_logs/: configs and logs for all four training stages;
  • resources/final/dev_metrics.json and test_metrics.json: full evaluation results;
  • resources/final/sample_dataset/: three LibriSpeech dev-clean examples in FLAC, WAV, and MP3 formats, with reference transcriptions;
  • resources/final/manifest.json: provenance and per-file SHA256 hashes.

The LM comes from OpenSLR 11. Sample recordings come from LibriSpeech / OpenSLR 12. download_lm.py prepares a lowercase ARPA vocabulary for decoding. The archive SHA256 is published in SHA256SUMS.

Download and run

With the project's Python 3.11 environment and dependencies installed:

python download_resources.py
python inference.py -cn inference_final \
  datasets.test.data_dir=/path/to/dataset \
  inferencer.save_path=final_predictions

python calc_metrics.py \
  --ground-truth /path/to/dataset/transcriptions \
  --predictions data/saved/final_predictions/test \
  --output data/saved/final_predictions/scores.json

The project downloader verifies the bundle, extracts its resources, and prepares the included LM. The dataset format is audio/{id}.wav|flac|mp3 with optional transcriptions/{id}.txt. Predictions keep the recording IDs.

To download the archive directly:

from huggingface_hub import hf_hub_download

archive = hf_hub_download(
    repo_id="YaItco/DLA-1-Conformer-CTC",
    filename="final_ctc.zip",
)

Training lineage

The next stage uses the selected checkpoint of the preceding stage. Step budgets describe complete runs; the selected checkpoint may be earlier.

Stage Step budget Selected epoch Training logs
LibriSpeech 100 h, BPE-256 25k 25 Comet
LibriSpeech 460 h 50k 48 Comet
LibriSpeech 960 h 50k 47 Comet
LibriSpeech 960 h, continued 108k 92 Comet
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support