--- license: cc-by-4.0 language: - en library_name: nemo pipeline_tag: automatic-speech-recognition tags: - asr - speech-recognition - parakeet - nemo - adapter - linear-adapter - switchboard - telephony base_model: nvidia/parakeet-tdt_ctc-110m datasets: - hhoangphuoc/switchboard metrics: - wer --- # Parakeet-TDT-CTC-110M — Switchboard LinearAdapter A lightweight **LinearAdapter** (2.25M trainable params, dim=128) fine-tuned on top of the **frozen** [`nvidia/parakeet-tdt_ctc-110m`](https://huggingface.co/nvidia/parakeet-tdt_ctc-110m) for conversational telephone speech. The base model's 114.6M weights are untouched — this file is **only the ~9.5 MB adapter**. ## Results — Switchboard test | model | WER | utterances | audio | |---|---|---|---| | base `parakeet-tdt_ctc-110m` | 15.98% | 50,165 | 63.4 h | | **+ this adapter** | **7.00%** | 50,165 | 63.4 h | **−8.98 WER absolute / 56% relative** on the public `hhoangphuoc/switchboard` test split (650,491 reference words; 23,703 sub / 9,284 ins / 12,577 del). > **Off-domain caveat (important):** this is a telephony *specialist*. On > clean read speech it **regresses** (LibriSpeech WER ~4.96% vs ~2.61% base). > Use it for conversational/telephone audio, not general ASR. ## Usage (NeMo) ```python import nemo.collections.asr as nemo_asr m = nemo_asr.models.ASRModel.from_pretrained("nvidia/parakeet-tdt_ctc-110m") m.load_adapters("switchboard_adapter.nemo") # this file m.set_enabled_adapters("switchboard", enabled=True) print(m.transcribe(["call.wav"])) # 16 kHz mono ``` ## Training - Base: `nvidia/parakeet-tdt_ctc-110m` (frozen, 114.6M params) - Adapter: `LinearAdapter`, dim 128, 2,245,632 trainable params - 50 epochs, effective batch 32, LR 5e-4, CosineAnnealing (500 warmup), bf16-mixed, grad-clip 1.0; best val WER 0.0687 @ epoch 4; ~6.8 h on one GPU. - Data: Switchboard (LDC; not redistributed here). ## License / attribution Adapter weights: CC-BY-4.0. Requires the base model `nvidia/parakeet-tdt_ctc-110m` (NVIDIA, CC-BY-4.0) — load it from NVIDIA and apply this adapter on top. This repo does **not** redistribute NVIDIA's weights.