A repository for Automatic Speech Recognition (ASR) that ensembles multiple open-source models to achieve SOTA quality of recognition. Useful if you need to get the maximum quality of recognition despite the computational time.
23
stars
22
commits
Python
primary language
Jul 28, 2026
updated
A repository for Automatic Speech Recognition (ASR) that ensembles multiple open-source models to achieve SOTA quality of recognition. Useful if you need to get the maximum quality of recognition despite the computational time.
pip install asr-consilium
or copy folder asr_consilium into your project. After:
from asr_consilium import inference as asr_inference
jsonl_dataset = 'markdown.jsonl' # Dataset in jsonl format
out_file = 'result.jsonl' # File where results will be stored in JSONL format
asr_inference(
jsonl_file=jsonl_dataset, # input dataset for processing
out_file=out_file, # Outputs file
batch_size=16, # Batch size
model_list=None, # Models for ensemble - see usage below
weights=None, # Weights for models
language='English', # Language
normalize=True, # Normalize texts before ensemble
char_level=False, # ensemble on char or word level
ensemble_type='median_extended', # Type of ensemble ('greedy', 'median', 'median_extended')
skip_existed=True, # if some model already calculated the results they will not recalculate
)
Or with command line:
python3 inference.py --input_data "samples/markdown.jsonl" --output "result.jsonl" --batch_size 16
| Model name | Params (B) | Languages | Average WER (English) |
|---|---|---|---|
| Nvidia Parakeet v2 | 0.6 | en | 6.05 |
| Nvidia Parakeet v3 | 0.6 | 26 | 6.32 |
| Nvidia Parakeet tdt1.1 | 1.1 | en | 7.02 |
| Qwen3-ASR-0.6B | 0.6 | 30 | 6.42 |
| Qwen3-ASR-1.7B | 1.7 | 52 | 5.76 |
| Canary Qwen | 2.5 | en | 5.63 |
| IBM Granite Speech 4.0-1B | 1.0 | 6 | 5.52 |
| IBM Granite Speech 3.3-8B | 8.0 | 5 | 5.74 |
| Cohere Transcribe (03-2026)* | 2.0 | 14 | 5.42 |
| Granite-Speech-4.1-2B | 2.0 | 6 | 5.33 |
| Microsoft-Phi-4 | 5.6 | 8 | 6.02 |
| Voxtral-Mini-3B-2507 | 3.0 | 13 | 7.05 |
| Voxtral-Small-24B-2507 | 24.0 | 13 | 6.62 |
| Whisper Large v3 | 2.0 | 99 | 7.31 |
transformers library (>= 5.4), as well as granted access to the model itself.nemo_toolkit[asr,tts] package; all other components are compatible with Python 3.10).markdown.jsonl must contain 2 fields:
...
{"audio": "483_0.wav", "duration": 2.079875}
{"audio": "461_1.wav", "duration": 9.6599375}
{"audio": "243_2.wav", "duration": 7.3400625}
...
You can find sample here
List of models and their weights are chosen with parameters model_list and weights. You may leave it None. So default list of models and default weights will be used.
model_list = [
'nvidia/parakeet-tdt-0.6b-v2',
'nvidia/parakeet-tdt-0.6b-v3',
'Qwen/Qwen3-ASR-1.7B',
'nvidia/canary-qwen-2.5b',
'ibm-granite/granite-speech-3.3-8b',
'ibm-granite/granite-4.0-1b-speech',
'ibm-granite/granite-speech-4.1-2b',
'ZFTurbo/Phi-4-multimodal-instruct',
]
weights = [4.5, 4.2, 8.4, 9.8, 8.7, 3.5, 8.9, 9.4]
Note: WER/CER metric calculation slightly different from Open ASR Leaderboard
| Model name | avg | AMI | Earnings22 | GigaSpeech | LibriSpeech (clean) | LibriSpeech (other) | SPGISpeech | TED-LIUM v3 | VoxPopuli |
|---|---|---|---|---|---|---|---|---|---|
| Nvidia Parakeet v2 | 6.09 | 11.27 | 11.28 | 9.78 | 1.70 | 3.19 | 2.14 | 3.42 | 5.94 |
| Nvidia Parakeet v3 | 6.36 | 11.59 | 11.29 | 9.59 | 1.92 | 3.60 | 3.99 | 2.82 | 6.10 |
| Qwen3-ASR-1.7B | 5.82 | 11.16 | 10.25 | 8.74 | 1.62 | 3.38 | 2.84 | 2.30 | 6.33 |
| Canary Qwen 2.5B | 5.57 | 10.17 | 10.34 | 9.24 | 1.62 | 3.12 | 1.92 | 2.58 | 5.62 |
| IBM Granite Speech 4.0-1B | 5.67 | 8.58 | 8.87 | 10.37 | 1.44 | 2.91 | 4.15 | 3.14 | 5.97 |
| IBM Granite Speech 3.3-8B | 5.81 | 8.83 | 10.12 | 10.21 | 1.43 | 2.90 | 3.86 | 3.40 | 5.73 |
| Granite-Speech-4.1-2B | 5.43 | 8.16 | 8.56 | 9.98 | 1.29 | 2.55 | 4.10 | 3.04 | 5.79 |
| Microsoft-Phi-4 | 6.01 | 11.22 | 10.28 | 9.30 | 1.68 | 3.94 | 2.87 | 2.88 | 5.98 |
| Whisper Large v3 | 7.31 | 16.61 | 10.85 | 9.97 | 1.91 | 3.85 | 2.96 | 3.86 | 8.47 |
| Ensemble (Default parameters) | 4.66 | 7.32 | 7.77 | 8.67 | 1.15 | 2.24 | 2.68 | 2.21 | 5.24 |
| Model name | avg | AMI | Earnings22 | GigaSpeech | LibriSpeech (clean) | LibriSpeech (other) | SPGISpeech | TED-LIUM v3 | VoxPopuli |
|---|---|---|---|---|---|---|---|---|---|
| Nvidia Parakeet v2 | 3.51 | 7.18 | 7.67 | 5.15 | 0.50 | 1.15 | 0.97 | 2.03 | 3.50 |
| Nvidia Parakeet v3 | 3.63 | 7.48 | 7.47 | 4.94 | 0.59 | 1.33 | 2.06 | 1.54 | 3.63 |
| Qwen3-ASR-1.7B | 3.25 | 6.50 | 6.89 | 4.47 | 0.50 | 1.29 | 1.48 | 1.19 | 3.75 |
| Canary Qwen 2.5B | 3.10 | 5.77 | 6.95 | 4.70 | 0.51 | 1.14 | 0.89 | 1.47 | 3.40 |
| IBM Granite Speech 4.0-1B | 3.17 | 5.12 | 5.55 | 5.56 | 0.45 | 1.15 | 2.19 | 1.76 | 3.60 |
| IBM Granite Speech 3.3-8B | 3.23 | 5.33 | 6.15 | 5.37 | 0.44 | 1.12 | 2.04 | 1.93 | 3.46 |
| Granite-Speech-4.1-2B | 3.05 | 4.85 | 5.40 | 5.33 | 0.43 | 0.98 | 2.24 | 1.72 | 3.47 |
| Microsoft-Phi-4 | 3.38 | 6.89 | 6.69 | 4.78 | 0.54 | 1.65 | 1.43 | 1.45 | 3.66 |
| Whisper Large v3 | 4.49 | 11.21 | 7.46 | 5.51 | 0.66 | 1.71 | 1.47 | 2.32 | 5.58 |
| Ensemble (Default parameters) | 2.61 | 4.43 | 5.05 | 4.45 | 0.35 | 0.86 | 1.41 | 1.17 | 3.18 |
22 commits
Python
100.0%
A repository for Automatic Speech Recognition (ASR) that ensembles multiple open-source models to achieve SOTA quality of recognition. Useful if you need to get the maximum quality of recognition despite the computational time.
23
stars
22
commits
Python
primary language
Jul 28, 2026
updated
A repository for Automatic Speech Recognition (ASR) that ensembles multiple open-source models to achieve SOTA quality of recognition. Useful if you need to get the maximum quality of recognition despite the computational time.
pip install asr-consilium
or copy folder asr_consilium into your project. After:
from asr_consilium import inference as asr_inference
jsonl_dataset = 'markdown.jsonl' # Dataset in jsonl format
out_file = 'result.jsonl' # File where results will be stored in JSONL format
asr_inference(
jsonl_file=jsonl_dataset, # input dataset for processing
out_file=out_file, # Outputs file
batch_size=16, # Batch size
model_list=None, # Models for ensemble - see usage below
weights=None, # Weights for models
language='English', # Language
normalize=True, # Normalize texts before ensemble
char_level=False, # ensemble on char or word level
ensemble_type='median_extended', # Type of ensemble ('greedy', 'median', 'median_extended')
skip_existed=True, # if some model already calculated the results they will not recalculate
)
Or with command line:
python3 inference.py --input_data "samples/markdown.jsonl" --output "result.jsonl" --batch_size 16
| Model name | Params (B) | Languages | Average WER (English) |
|---|---|---|---|
| Nvidia Parakeet v2 | 0.6 | en | 6.05 |
| Nvidia Parakeet v3 | 0.6 | 26 | 6.32 |
| Nvidia Parakeet tdt1.1 | 1.1 | en | 7.02 |
| Qwen3-ASR-0.6B | 0.6 | 30 | 6.42 |
| Qwen3-ASR-1.7B | 1.7 | 52 | 5.76 |
| Canary Qwen | 2.5 | en | 5.63 |
| IBM Granite Speech 4.0-1B | 1.0 | 6 | 5.52 |
| IBM Granite Speech 3.3-8B | 8.0 | 5 | 5.74 |
| Cohere Transcribe (03-2026)* | 2.0 | 14 | 5.42 |
| Granite-Speech-4.1-2B | 2.0 | 6 | 5.33 |
| Microsoft-Phi-4 | 5.6 | 8 | 6.02 |
| Voxtral-Mini-3B-2507 | 3.0 | 13 | 7.05 |
| Voxtral-Small-24B-2507 | 24.0 | 13 | 6.62 |
| Whisper Large v3 | 2.0 | 99 | 7.31 |
transformers library (>= 5.4), as well as granted access to the model itself.nemo_toolkit[asr,tts] package; all other components are compatible with Python 3.10).markdown.jsonl must contain 2 fields:
...
{"audio": "483_0.wav", "duration": 2.079875}
{"audio": "461_1.wav", "duration": 9.6599375}
{"audio": "243_2.wav", "duration": 7.3400625}
...
You can find sample here
List of models and their weights are chosen with parameters model_list and weights. You may leave it None. So default list of models and default weights will be used.
model_list = [
'nvidia/parakeet-tdt-0.6b-v2',
'nvidia/parakeet-tdt-0.6b-v3',
'Qwen/Qwen3-ASR-1.7B',
'nvidia/canary-qwen-2.5b',
'ibm-granite/granite-speech-3.3-8b',
'ibm-granite/granite-4.0-1b-speech',
'ibm-granite/granite-speech-4.1-2b',
'ZFTurbo/Phi-4-multimodal-instruct',
]
weights = [4.5, 4.2, 8.4, 9.8, 8.7, 3.5, 8.9, 9.4]
Note: WER/CER metric calculation slightly different from Open ASR Leaderboard
| Model name | avg | AMI | Earnings22 | GigaSpeech | LibriSpeech (clean) | LibriSpeech (other) | SPGISpeech | TED-LIUM v3 | VoxPopuli |
|---|---|---|---|---|---|---|---|---|---|
| Nvidia Parakeet v2 | 6.09 | 11.27 | 11.28 | 9.78 | 1.70 | 3.19 | 2.14 | 3.42 | 5.94 |
| Nvidia Parakeet v3 | 6.36 | 11.59 | 11.29 | 9.59 | 1.92 | 3.60 | 3.99 | 2.82 | 6.10 |
| Qwen3-ASR-1.7B | 5.82 | 11.16 | 10.25 | 8.74 | 1.62 | 3.38 | 2.84 | 2.30 | 6.33 |
| Canary Qwen 2.5B | 5.57 | 10.17 | 10.34 | 9.24 | 1.62 | 3.12 | 1.92 | 2.58 | 5.62 |
| IBM Granite Speech 4.0-1B | 5.67 | 8.58 | 8.87 | 10.37 | 1.44 | 2.91 | 4.15 | 3.14 | 5.97 |
| IBM Granite Speech 3.3-8B | 5.81 | 8.83 | 10.12 | 10.21 | 1.43 | 2.90 | 3.86 | 3.40 | 5.73 |
| Granite-Speech-4.1-2B | 5.43 | 8.16 | 8.56 | 9.98 | 1.29 | 2.55 | 4.10 | 3.04 | 5.79 |
| Microsoft-Phi-4 | 6.01 | 11.22 | 10.28 | 9.30 | 1.68 | 3.94 | 2.87 | 2.88 | 5.98 |
| Whisper Large v3 | 7.31 | 16.61 | 10.85 | 9.97 | 1.91 | 3.85 | 2.96 | 3.86 | 8.47 |
| Ensemble (Default parameters) | 4.66 | 7.32 | 7.77 | 8.67 | 1.15 | 2.24 | 2.68 | 2.21 | 5.24 |
| Model name | avg | AMI | Earnings22 | GigaSpeech | LibriSpeech (clean) | LibriSpeech (other) | SPGISpeech | TED-LIUM v3 | VoxPopuli |
|---|---|---|---|---|---|---|---|---|---|
| Nvidia Parakeet v2 | 3.51 | 7.18 | 7.67 | 5.15 | 0.50 | 1.15 | 0.97 | 2.03 | 3.50 |
| Nvidia Parakeet v3 | 3.63 | 7.48 | 7.47 | 4.94 | 0.59 | 1.33 | 2.06 | 1.54 | 3.63 |
| Qwen3-ASR-1.7B | 3.25 | 6.50 | 6.89 | 4.47 | 0.50 | 1.29 | 1.48 | 1.19 | 3.75 |
| Canary Qwen 2.5B | 3.10 | 5.77 | 6.95 | 4.70 | 0.51 | 1.14 | 0.89 | 1.47 | 3.40 |
| IBM Granite Speech 4.0-1B | 3.17 | 5.12 | 5.55 | 5.56 | 0.45 | 1.15 | 2.19 | 1.76 | 3.60 |
| IBM Granite Speech 3.3-8B | 3.23 | 5.33 | 6.15 | 5.37 | 0.44 | 1.12 | 2.04 | 1.93 | 3.46 |
| Granite-Speech-4.1-2B | 3.05 | 4.85 | 5.40 | 5.33 | 0.43 | 0.98 | 2.24 | 1.72 | 3.47 |
| Microsoft-Phi-4 | 3.38 | 6.89 | 6.69 | 4.78 | 0.54 | 1.65 | 1.43 | 1.45 | 3.66 |
| Whisper Large v3 | 4.49 | 11.21 | 7.46 | 5.51 | 0.66 | 1.71 | 1.47 | 2.32 | 5.58 |
| Ensemble (Default parameters) | 2.61 | 4.43 | 5.05 | 4.45 | 0.35 | 0.86 | 1.41 | 1.17 | 3.18 |
22 commits
Python
100.0%