Downloads · 30 days
88
7% of all-time downloads
OzLabs/Caspi-1.7B
Caspi-1.7B is a automatic speech recognition model from OzLabs. Use it when you need speech turned into text. The card lists the license as cc-by-nc-4.0.
Downloads · 30 days
88
7% of all-time downloads
All-time downloads
1.2K
Public
Parameters
2B
4.1 GB on disk
Likes
5
Public
Click a slice to open those files.
.safetensors4.1 GB · 100%
From the Hugging Face model README

Caspi-1.7B is a Hebrew automatic speech recognition model built by fine-tuning Qwen/Qwen3-ASR-1.7B for real Hebrew speech.
Caspi exists for one reason: the base multilingual models are strong, but Hebrew deserves a model that is actually tuned for Hebrew — its vocabulary, phonetic edge cases, spelling patterns, and real-world audio conditions.
This model is aimed at single-pass Hebrew ASR with strong quality across conversational, crowd-sourced, and broadcast-style speech.
Despite major advances in speech recognition, Hebrew ASR has seen relatively little dedicated model development, with most systems relying on multilingual Whisper variants.
Caspi aims to push Hebrew ASR forward by training directly on Hebrew speech data and optimizing for real-world Hebrew transcription.
Hebrew ASR is deceptively hard.
Short function words, phonetically similar terms, compressed voice-note audio, domain-specific names, and inconsistent orthography can all wreck transcription quality. Caspi was trained specifically to push performance where generic multilingual checkpoints tend to slip.
Compared to the base model, Caspi is intended to provide:
This is not a general multilingual release.
Caspi is a Hebrew-specialized checkpoint.
Qwen/Qwen3-ASR-1.7BCaspi inherits the architecture and inference ecosystem of Qwen3-ASR, while adapting the model specifically for Hebrew ASR.
| Model | Supported Languages | Supported Dialects | Inference Mode | Audio Types |
|---|---|---|---|---|
| Caspi-1.7B | Hebrew (he), Chinese (zh), English (en), Cantonese (yue), Arabic (ar), German (de), French (fr), Spanish (es), Portuguese (pt), Indonesian (id), Italian (it), Korean (ko), Russian (ru), Thai (th), Vietnamese (vi), Japanese (ja), Turkish (tr), Hindi (hi), Malay (ms), Dutch (nl), Swedish (sv), Danish (da), Finnish (fi), Polish (pl), Czech (cs), Filipino (fil), Persian (fa), Greek (el), Hungarian (hu), Macedonian (mk), Romanian (ro) | Anhui, Dongbei, Fujian, Gansu, Guizhou, Hebei, Henan, Hubei, Hunan, Jiangxi, Ningxia, Shandong, Shaanxi, Shanxi, Sichuan, Tianjin, Yunnan, Zhejiang, Cantonese (Hong Kong accent), Cantonese (Guangdong accent), Wu language, Minnan language. | Offline / Streaming | Speech, Singing Voice, Songs with BGM |
Caspi was fine-tuned on Hebrew speech-transcription data including:
ivrit-ai/crowd-transcribe-v5ivrit-ai/crowd-recital-whisper-trainingThese datasets were used to adapt the multilingual base model toward stronger Hebrew recognition.
Training focused on Hebrew audio + transcript pairs. As with any ASR system, performance is highly sensitive to:
Some of the hardest Hebrew ASR failure modes remain:
Caspi is intended for:
Caspi was evaluated on Hebrew ASR benchmarks and internal evaluation sets.
eval-d1eval-whatsapphebrew-speech-kanWER: Word Error Rate, lower is better
| Dataset | Caspi WER | Ivrit v3 WER |
|---|---|---|
| eval-d1 | 4.2% | 5.1% |
| eval-whatsapp | 6% | 7.2% |
| hebrew-speech-kan | 7.1% | 6.4% |
| Matti Caspi Songs | 2.4% | 3.7% |
| average | 4.96% | 5.6% |
Caspi improves over the compared Hebrew Whisper baseline on eval-d1, eval-whatsapp, and on the overall average, while remaining competitive on KAN-style broadcast speech.
That makes it a strong Hebrew ASR checkpoint for real-world use, especially on conversational and less curated audio.
Caspi uses the same overall inference ecosystem as the base Qwen3-ASR model.
Depending on your setup, you can use:
qwen-asr packageQwen/Qwen3-ForcedAligner-0.6BBecause Caspi is a fine-tuned derivative of Qwen3-ASR-1.7B, usage is similar to the base model — just replace the model name with OzLabs/Caspi-1.7B.
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"OzLabs/Caspi-1.7B",
dtype=torch.bfloat16,
device_map="cuda:0",
max_inference_batch_size=32,
max_new_tokens=256,
)
results = model.transcribe(
audio="path/to/hebrew_audio.wav",
language="Hebrew",
)
print(results[0].language)
print(results[0].text)
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"OzLabs/Caspi-1.7B",
dtype=torch.bfloat16,
device_map="cuda:0",
max_inference_batch_size=32,
max_new_tokens=256,
)
results = model.transcribe(
audio="audio path / url",
language=None,
)
print(results[0].language)
print(results[0].text)
import torch
from qwen_asr import Qwen3ASRModel
model = Qwen3ASRModel.from_pretrained(
"OzLabs/Caspi-1.7B",
dtype=torch.bfloat16,
device_map="cuda:0",
max_inference_batch_size=32,
max_new_tokens=256,
forced_aligner="Qwen/Qwen3-ForcedAligner-0.6B",
forced_aligner_kwargs=dict(
dtype=torch.bfloat16,
device_map="cuda:0",
),
)
results = model.transcribe(
audio=[
"path/to/audio",
"audio.url"
],
language=["Hebrew", "English"],
return_time_stamps=True,
)
for r in results:
print(r.language, r.text, r.time_stamps[0])
import torch
from qwen_asr import Qwen3ASRModel
if __name__ == '__main__':
model = Qwen3ASRModel.LLM(
model="OzLabs/Caspi-1.7B",
gpu_memory_utilization=0.7,
max_inference_batch_size=128,
max_new_tokens=4096,
forced_aligner="Qwen/Qwen3-ForcedAligner-0.6B",
forced_aligner_kwargs=dict(
dtype=torch.bfloat16,
device_map="cuda:0",
),
)
results = model.transcribe(
audio=[
"path/to/audio",
"path/to/audio",
],
language=["Hebrew", "English"],
return_time_stamps=True,
)
for r in results:
print(r.language, r.text, r.time_stamps[0])
qwen-asr-serve OzLabs/Caspi-1.7B --gpu-memory-utilization 0.8 --host 0.0.0.0 --port 8000
import requests
url = "http://localhost:8000/v1/chat/completions"
headers = {"Content-Type": "application/json"}
data = {
"messages": [
{
"role": "user",
"content": [
{
"type": "audio_url",
"audio_url": {
"url": "path/to/audio"
},
}
],
}
]
}
response = requests.post(url, headers=headers, json=data, timeout=300)
response.raise_for_status()
content = response.json()["choices"][0]["message"]["content"]
print(content)
from qwen_asr import parse_asr_output
language, text = parse_asr_output(content)
print(language)
print(text)
Caspi supports streaming inference through the vLLM backend.
Streaming is useful when you want lower-latency transcription, but note:
See the upstream Qwen3-ASR examples for the streaming backend implementation.
qwen-asr-demo-streaming \
--asr-model-path OzLabs/Caspi-1.7B \
--host 0.0.0.0 \
--port 8000 \
--gpu-memory-utilization 0.9
For timestamp prediction and alignment, Caspi can be used together with:
Qwen/Qwen3-ForcedAligner-0.6Bimport torch
from qwen_asr import Qwen3ForcedAligner
model = Qwen3ForcedAligner.from_pretrained(
"Qwen/Qwen3-ForcedAligner-0.6B",
dtype=torch.bfloat16,
device_map="cuda:0",
)
results = model.align(
audio="path/to/audio",
text="איך זה שכוכב אחד מעז",
language="Hebrew",
)
print(results[0])
print(results[0][0].text, results[0][0].start_time, results[0][0].end_time)
from vllm import LLM, SamplingParams
from vllm.assets.audio import AudioAsset
llm = LLM(
model="OzLabs/Caspi-1.7B"
)
audio_asset = AudioAsset("winning_call")
conversation = [
{
"role": "user",
"content": [
{
"type": "audio_url",
"audio_url": {"url": audio_asset.url}
}
]
}
]
sampling_params = SamplingParams(temperature=0.01, max_tokens=256)
outputs = llm.chat(conversation, sampling_params=sampling_params)
print(outputs[0].outputs[0].text)
For best results:
Caspi is strong, but Hebrew ASR is still hard.
Common failure modes include:
על / אל, אם / עם, לא / לוPerformance will vary depending on:
ASR systems can mis-transcribe people’s speech, especially under:
For sensitive, high-stakes, or public-facing use cases, transcripts should be reviewed by a human.
Caspi is built on top of Qwen3-ASR-1.7B from the Qwen team.
We also thank the creators and contributors of the Hebrew datasets used for fine-tuning, especially the Ivrit.AI community datasets.
If you use Caspi in research or applications, please cite both the original Qwen3-ASR work and this checkpoint.
@article{Qwen3-ASR,
title={Qwen3-ASR Technical Report},
author={Xian Shi and Xiong Wang and Zhifang Guo and Yongqi Wang and Pei Zhang and Xinyu Zhang and Zishan Guo and Hongkun Hao and Yu Xi and Baosong Yang and Jin Xu and Jingren Zhou and Junyang Lin},
journal={arXiv preprint arXiv:2601.21337},
year={2026}
}
@misc{caspi_hebrew_asr,
title={Caspi-1.7B: Hebrew ASR fine-tuned from Qwen3-ASR-1.7B},
author={Oz Labs},
year={2026},
howpublished={Hugging Face model card}
}