Bro-ASR-1.7B / README.md
Junlaii's picture
Add aligned Whisper baseline audit
6e8f651 verified
|
Raw
History Blame Contribute Delete
5.72 kB
---
license: apache-2.0
pipeline_tag: automatic-speech-recognition
library_name: transformers
language:
- ja
base_model: Qwen/Qwen3-ASR-1.7B-hf
tags:
- automatic-speech-recognition
- japanese
- qwen3-asr
- lora-merged
- noise-robustness
---
# Bro-ASR-1.7B
Bro-ASR-1.7B is a merged, parameter-efficiently fine-tuned derivative of
`Qwen/Qwen3-ASR-1.7B-hf` for Japanese noisy-recording/device-domain speech
recognition. The repository contains full merged model weights; it does **not**
require a separate LoRA adapter at inference time.
## Intended use
- Offline Japanese ASR for noisy conversational recordings.
- Research and evaluation of device/noise-domain ASR adaptation.
It is not a safety-critical transcription system. Validate performance on your
own audio domain before deployment.
## Training
The model was produced by merging a LoRA adapter trained with the frozen
`lowrank_loraplus8_coverage` recipe:
- Base model: `Qwen/Qwen3-ASR-1.7B-hf`
- Training pool: 3,000 Delivery_JP Japanese audio/text segments
- LoRA: rank 8, alpha 16, dropout 0.1, applied to attention and MLP
projections
- LoRA+: base learning rate `8e-6`, B-matrix ratio `8x`
- Sampling: shuffle without replacement; 500 micro-steps, gradient
accumulation 2
The Delivery_JP audio and transcripts are not included in this repository.
## Dataset and evaluation
Evaluation uses the 20,619-segment Delivery_JP Japanese manifest. The shared
3,000-segment training/development pool is excluded before scoring, leaving a
strictly unseen evaluation set of **17,619** segments. Both models were run on
the same ordered `sample_id` list with identical normalized ground truth; each
side produced exactly 17,619 predictions with no duplicate IDs.
Decoding uses a Japanese language hint, beam size 5, and
`max_new_tokens=256`. CER is character-level Levenshtein distance after the
same whitespace normalization for both models. Macro-CER is the unweighted
mean of per-segment CER.
| Model | Evaluated segments | Micro-CER | Macro-CER | Character errors | Exact-match rate |
|---|---:|---:|---:|---:|---:|
| Base Qwen3-ASR-1.7B | 17,619 | 0.34295 | 0.41445 | 102,563 | 14.995% |
| Bro-ASR-1.7B | 17,619 | **0.33763** | **0.39566** | **100,970** | **18.208%** |
Compared with the base model, Bro-ASR-1.7B reduces Micro-CER by **0.533
percentage points** and character errors by **1,593**. On paired per-segment
comparison, Bro-ASR-1.7B is better / unchanged / worse on 5,681 / 7,775 /
4,163 segments, respectively.
### Fixed-set audit score comparisons
The following four models were evaluated on the identical frozen 1,000
`sample_id` values with identical normalized ground truth and exact fractional
audio time boundaries. This fixed-set audit is separate from the 17,619-segment
strict-unseen evaluation above.
| Fixed audit subset | Model | Segments | Micro-CER | Macro-CER | Character errors | Exact-match rate | Decoding |
|---|---|---:|---:|---:|---:|---:|---|
| Delivery_JP frozen 1,000 | Bro-ASR-1.7B | 1,000 | **0.47119** | **0.49852** | **7,581** | **14.4%** | Japanese, beam 5 |
| Delivery_JP frozen 1,000 | Qwen3-ASR-1.7B baseline | 1,000 | 0.48574 | 0.54712 | 7,815 | 10.3% | Japanese, beam 5 |
| Delivery_JP frozen 1,000 | Cohere Transcribe 03-2026 | 1,000 | 0.56871 | 0.63912 | 9,150 | 7.1% | Official `model.transcribe`, `ja`, punctuation, greedy |
| Delivery_JP frozen 1,000 | Whisper large-v3-turbo (untrained) | 1,000 | 1.53969 | 3.86799 | 24,772 | 0.7% | Historical frozen TTA: speed factors 1.0/0.95/1.05, Japanese, beam 5 |
On this 1,000-segment audit, Bro-ASR-1.7B reduces Micro-CER by **1.454
percentage points** and character errors by **234** relative to the paired
Qwen baseline. The Cohere run used the official native transcription entry
point with EOS handling; Qwen and Bro-ASR both used Japanese beam size 5.
The Whisper row is the untrained base model, not the historical Plan B
fine-tuned checkpoint. It was reproduced with the frozen
`best_solution_snapshot.py` TTA decoder and an asserted zero LoRA B-matrix.
Its result is substantially weaker on this audit; the decode policy is
reported separately because it uses three TTA speed factors while the Qwen
runs use beam-5 decoding.
## Quick start
Qwen3-ASR is not included in older stable Transformers releases. Install the
current Transformers source first, as recommended by the upstream Qwen3-ASR
model card:
```bash
pip install "git+https://github.com/huggingface/transformers"
pip install torch soundfile
```
```python
import torch
from transformers import AutoModelForMultimodalLM, AutoProcessor
model_id = "Junlaii/Bro-ASR-1.7B"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForMultimodalLM.from_pretrained(
model_id, torch_dtype=torch.bfloat16, device_map="auto"
).eval()
inputs = processor.apply_transcription_request(
audio="sample.wav", language="ja"
).to(model.device, model.dtype)
with torch.inference_mode():
output = model.generate(**inputs, num_beams=5, max_new_tokens=256)
text = processor.decode(
output[:, inputs["input_ids"].shape[1]:], return_format="transcription_only"
)[0]
print(text)
```
## Limitations
- The current adaptation is specifically motivated by Japanese noisy-recording
conditions; it may regress on other languages or acoustic domains.
- The full strict-unseen Delivery_JP evaluation has completed on 17,619
segments under the protocol described above.
- Decoding settings affect results. The final comparison uses Japanese,
beam size 5, and `max_new_tokens=256`.
## License and attribution
Bro-ASR-1.7B follows the Apache-2.0 license indicated by its base checkpoint.
Please cite and follow the upstream Qwen3-ASR model terms when using this model.