Automatic Speech Recognition
Transformers
qwen3-asr
latent-reasoning
test-time-compute
parameter-efficient
Instructions to use voidful/latentASR with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use voidful/latentASR with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("automatic-speech-recognition", model="voidful/latentASR")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("voidful/latentASR", device_map="auto") - Notebooks
- Google Colab
- Kaggle
| license: apache-2.0 | |
| library_name: transformers | |
| base_model: Qwen/Qwen3-ASR-0.6B | |
| tags: | |
| - automatic-speech-recognition | |
| - qwen3-asr | |
| - latent-reasoning | |
| - test-time-compute | |
| - parameter-efficient | |
| datasets: | |
| - google/fleurs | |
| - facebook/voxpopuli | |
| metrics: | |
| - wer | |
| - cer | |
| # latentASR | |
| `latentASR` is the release repo for **Listen, Think, Transcribe: Continuous | |
| Latent Test-Time Scaling for ASR**. The method adds a small trainable latent | |
| adapter and value head on top of a frozen `Qwen/Qwen3-ASR-0.6B` backbone. | |
| The released checkpoint is an adapter-only artifact. It does not redistribute | |
| the Qwen3-ASR base weights. | |
| ## What Is Included | |
| - Core model/training/evaluation code: `model.py`, `train.py`, `eval.py`. | |
| - Paper-aligned adapter checkpoint: `checkpoints/latentASR_adapter.pth`. | |
| - Experiment runners: `experiments/`. | |
| - Analysis and summarization scripts: `scripts/`. | |
| - Reproducibility artifacts: `results/`. | |
| - Documentation: `docs/`. | |
| ## Method Summary | |
| LatentASR inserts `N=4` latent prefix positions before transcript generation. | |
| At each latent step, a frozen decoder hidden state is projected into a bounded | |
| delta, gated, and added around a fixed latent-token embedding. A value head | |
| predicts whether further latent computation is useful and halts dynamically. | |
| The frozen ASR backbone is never updated in the LatentASR setting. The adapter | |
| has 5,251,077 trainable parameters. | |
| ## Install | |
| ```bash | |
| git clone https://huggingface.co/voidful/latentASR | |
| cd latentASR | |
| python -m pip install -r requirements.txt | |
| ``` | |
| The code expects the `qwen-asr` package, which provides | |
| `Qwen3ASRModel.from_pretrained`. | |
| ## Quick Evaluation | |
| Evaluate the released adapter on FLEURS English: | |
| ```bash | |
| python eval.py \ | |
| --model-id Qwen/Qwen3-ASR-0.6B \ | |
| --dataset-name google/fleurs \ | |
| --configs en_us \ | |
| --split test \ | |
| --latent-ckpt checkpoints/latentASR_adapter.pth \ | |
| --dynamic-halt-threshold 0.0 \ | |
| --skip-baseline-ft \ | |
| --skip-prompt-tuning \ | |
| --skip-lora-r16 \ | |
| --output-json eval_runs/fleurs_en_us.json | |
| ``` | |
| Use `--max-samples-per-config 100` for a quick smoke test. | |
| ## Single-File Transcription | |
| ```bash | |
| python examples/transcribe_file.py path/to/audio.wav \ | |
| --latent-ckpt checkpoints/latentASR_adapter.pth \ | |
| --theta 0.0 | |
| ``` | |
| ## Training | |
| The paper-aligned minimal-data activation setting uses: | |
| - `N_LATENT=4` | |
| - `TRAIN_MAX_SAMPLES=500` | |
| - effective batch size 16 | |
| - 10 epochs | |
| - value forced-negative probability `0.3` | |
| - latent input noise `0.5` | |
| - latent-loop dropout `0.15` | |
| Run the maintained sequential baseline/adapter trainer: | |
| ```bash | |
| ./experiments/run_all_training_modes.sh | |
| ``` | |
| Run the paper ablation checkpoint retraining suite: | |
| ```bash | |
| ./experiments/run_paper_tbd_retrain.sh | |
| ``` | |
| ## Result Scope | |
| The clean benchmark deltas are single-run point estimates. They are reported as | |
| directional, not statistically established, and should be confirmed with paired | |
| multi-seed testing before making strong claims. | |
| ASCEND is included only as an overlap-confounded in-domain diagnostic because | |
| ASCEND contributes 5/500 activation utterances and speaker-disjointness was not | |
| enforced. | |
| ## Important Files | |
| - `docs/METHOD.md`: architecture and loss details. | |
| - `docs/REPRODUCIBILITY.md`: exact commands and evaluation workflow. | |
| - `docs/RESULTS.md`: headline tables and caveats. | |
| - `model_metadata.json`: released checkpoint metadata. | |