NAMAA-Space/Cohere-Speech-Tashkeel-2B

Model

๐Ÿ•Œ Cohere-ar-tashkeel

29

4 commits

1 linked in READMEs

updated Jul 13, 2026

See the code

README

๐Ÿ•Œ Cohere-ar-tashkeel

Arabic Speech โ†’ Fully-Diacritized Text ย ยทย  ุงู„ุชูŽู‘ุดู’ูƒููŠู„ ู…ูู†ูŽ ุงู„ุตูŽู‘ูˆู’ุช

Restores every แธฅaraka โ€” fatแธฅa, แธamma, kasra, sukลซn, shadda, tanwฤซn, and case-endings (iสฟrฤb) โ€” directly from the audio, in a single pass.


Built on Cohere ASR Task Language License


๐Ÿ“Š Performance at a glance

๐ŸŽฏ Diacritic Accuracy๐Ÿ“‰ DER ยท with iสฟrฤb๐Ÿ“‰ DER ยท no iสฟrฤb๐Ÿ”ค Letter WER
95.30%6.62%5.67%10.13%

Diacritic accuracy = correct แธฅaraka placement on letters the model recognized correctly.


โœจ What it does

Cohere-ar-tashkeel takes spoken Arabic and returns fully-voweled text. Instead of guessing diacritics from an unvoweled skeleton, it infers them from how the words are actually pronounced โ€” so the output reflects the real reading, not a statistical best-guess.

It is built on Cohere Labs' cohere-transcribe-arabic-07-2026 (a ~2B-parameter Arabic/English speech model) and specialized for acoustic diacritization.


๐ŸŽง Why diacritize from speech?

Restoring tashkeel from text alone is inherently ambiguous โ€” one consonantal skeleton (ุฑูŽุณู’ู…) maps to many valid voweled readings, and text-only tools must guess which one was intended. Speech removes that ambiguity: the vowels and grammatical endings are audible. This model simply listens and writes them down.

That is exactly why it excels at the hardest part of tashkeel โ€” case-endings / iสฟrฤb (ุฅูุนู’ุฑูŽุงุจ) โ€” the word-final marks that text-only systems most often get wrong.


๐Ÿ“ˆ Results

Evaluated on a held-out set of 260 natural Arabic speech clips.

MetricScoreWhat it measures
Diacritic accuracy95.30%Correct แธฅaraka on correctly-recognized letters โ€” the purest tashkeel-quality signal.
DER โ€” with case-endings6.62%Diacritic Error Rate over all letters, including word-final iสฟrฤb.
DER โ€” excluding case-endings5.67%DER on word-internal diacritics only.
WER โ€” undiacritized10.13%Letter-level speech-recognition accuracy.
WER โ€” fully diacritized24.35%Strict: any single wrong แธฅaraka marks the whole word wrong.

How to read this: when the model hears a letter correctly, it places the right diacritic on it 95.3% of the time, and only ~1 diacritic in 15 is wrong even including the tricky grammatical endings. Diacritized WER is strict by design and reads high โ€” DER and diacritic accuracy are the meaningful diacritization metrics.


๐Ÿ“ Example outputs

Fully-diacritized transcriptions produced by the model:

#ุงู„ู†ูŽู‘ุตูู‘ ุงู„ู…ูุดูŽูƒูŽู‘ู„
ูกุงู„ุณูŽู‘ูŠูู‘ุฏู’ ุฃููˆูƒููŠ ุฃููˆุฑูŽุงู…ูŽุง ุฑูŽุฆููŠุณู ู…ูŽุฌู’ู„ูุณู ุฅูุฏูŽุงุฑูŽุฉู ุจูŽู†ู’ูƒู ุงู„ุชูŽู‘ู†ู’ู…ููŠูŽุฉู ุงู„ู’ุฅููู’ุฑููŠู‚ููŠู‘
ูขูˆูŽุงู„ู’ุจูุฐููˆุฑู’ ู„ูุถูŽู…ูŽุงู†ู ู†ูŽุฌูŽุงุญู ุงู„ู’ู…ููˆุณูู…ู ุงู„ุฒูู‘ุฑูŽุงุนููŠูู‘ ุงู„ู’ู‚ูŽุงุฏูู…ู’
ูฃู†ูุตู’ูู ุงู„ุฑูู‘ุจู’ุญู ู„ูุฑูŽุจูู‘ ุงู„ู’ู…ูŽุงู„ู ุฎูŽุงุตูŽู‘ุฉู‹ ุŒ ู„ูุฃูŽู†ูŽู‘ ุงู„ู’ู…ูุถูŽุงุฑูŽุจูŽุฉูŽ ูููŠู‡ู ููŽุงุณูุฏูŽุฉูŒ

๐Ÿš€ Usage

The model is fully self-contained โ€” it loads and runs just like the Cohere ASR base model (the fine-tuned weights are already merged in).

import torch, soundfile as sf, librosa
from transformers import AutoProcessor, CohereAsrForConditionalGeneration

repo = "NAMAA-Space/Cohere-Speech-Tashkeel-2B"
proc = AutoProcessor.from_pretrained(repo)
model = CohereAsrForConditionalGeneration.from_pretrained(
    repo, dtype=torch.bfloat16, device_map="auto"
).eval()

# load audio as 16 kHz mono
wav, sr = sf.read("your_audio.wav", dtype="float32")
if wav.ndim > 1:
    wav = wav.mean(1)
if sr != 16000:
    wav = librosa.resample(wav, orig_sr=sr, target_sr=16000)

feats = proc.feature_extractor(
    [wav], sampling_rate=16000, return_tensors="pt",
    padding="longest", return_attention_mask=True,
)
audio_chunk_index = feats.pop("audio_chunk_index")

# request the diacritized Arabic decoding
prompt = proc.get_decoder_prompt_ids(language="ar", punctuation=True)
decoder_input_ids = torch.tensor([prompt], dtype=torch.long, device=model.device)

with torch.no_grad():
    out = model.generate(
        input_features=feats["input_features"].to(model.device, torch.bfloat16),
        attention_mask=feats["attention_mask"].to(model.device),
        decoder_input_ids=decoder_input_ids,
        max_new_tokens=448,
    )

text = proc.decode(out, skip_special_tokens=True,
                   audio_chunk_index=audio_chunk_index, language="ar")
print(text)

Requirements: transformers, torch, soundfile, librosa, and a CUDA GPU (bf16).


๐Ÿงฉ Model details

Base modelCohereLabs/cohere-transcribe-arabic-07-2026
Parameters~2B
ArchitectureConformer encoder + Transformer decoder (attention encoderโ€“decoder)
TaskArabic speech โ†’ fully-diacritized text
Input16 kHz mono audio
OutputDiacritized Arabic text (with punctuation)
Precisionbfloat16
LicenseApache 2.0

โš ๏ธ Intended use & limitations

  • Intended use: fully-diacritized Arabic transcripts from audio โ€” captioning, language learning, MSA/liturgical read-speech, TTS front-ends, and linguistic annotation where correct harakฤt matter.
  • Diacritization is inferred from pronunciation, so on noisy audio or unclear articulation the letters and their diacritics can degrade together โ€” a VAD / noise gate is recommended for noisy input.
  • Inherits the base model's constraints: optimized for a single pre-specified language, no timestamps or speaker diarization.

๐Ÿ“œ Citation & attribution

Released under Apache 2.0. A fine-tuned derivative of CohereLabs/cohere-transcribe-arabic-07-2026 by Cohere Labs; all original terms apply.

@misc{cohere_ar_tashkeel_2026,
  title  = {Cohere-ar-tashkeel: Arabic Speech Diacritization},
  author = {Omer Nacar},
  year   = {2026},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/NAMAA-Space/Cohere-Speech-Tashkeel-2B}},
  note   = {Built on CohereLabs/cohere-transcribe-arabic-07-2026}
}
arabic
automatic-speech-recognition
cohere
cohere_asr
diacritization
endpoints_compatible
harakat
iraab
model-index
safetensors
speech-to-text
tashkeel
transformers

NAMAA-Space/Cohere-Speech-Tashkeel-2B

Model

๐Ÿ•Œ Cohere-ar-tashkeel

29

4 commits

1 linked in READMEs

updated Jul 13, 2026

See the code

README

๐Ÿ•Œ Cohere-ar-tashkeel

Arabic Speech โ†’ Fully-Diacritized Text ย ยทย  ุงู„ุชูŽู‘ุดู’ูƒููŠู„ ู…ูู†ูŽ ุงู„ุตูŽู‘ูˆู’ุช

Restores every แธฅaraka โ€” fatแธฅa, แธamma, kasra, sukลซn, shadda, tanwฤซn, and case-endings (iสฟrฤb) โ€” directly from the audio, in a single pass.


Built on Cohere ASR Task Language License


๐Ÿ“Š Performance at a glance

๐ŸŽฏ Diacritic Accuracy๐Ÿ“‰ DER ยท with iสฟrฤb๐Ÿ“‰ DER ยท no iสฟrฤb๐Ÿ”ค Letter WER
95.30%6.62%5.67%10.13%

Diacritic accuracy = correct แธฅaraka placement on letters the model recognized correctly.


โœจ What it does

Cohere-ar-tashkeel takes spoken Arabic and returns fully-voweled text. Instead of guessing diacritics from an unvoweled skeleton, it infers them from how the words are actually pronounced โ€” so the output reflects the real reading, not a statistical best-guess.

It is built on Cohere Labs' cohere-transcribe-arabic-07-2026 (a ~2B-parameter Arabic/English speech model) and specialized for acoustic diacritization.


๐ŸŽง Why diacritize from speech?

Restoring tashkeel from text alone is inherently ambiguous โ€” one consonantal skeleton (ุฑูŽุณู’ู…) maps to many valid voweled readings, and text-only tools must guess which one was intended. Speech removes that ambiguity: the vowels and grammatical endings are audible. This model simply listens and writes them down.

That is exactly why it excels at the hardest part of tashkeel โ€” case-endings / iสฟrฤb (ุฅูุนู’ุฑูŽุงุจ) โ€” the word-final marks that text-only systems most often get wrong.


๐Ÿ“ˆ Results

Evaluated on a held-out set of 260 natural Arabic speech clips.

MetricScoreWhat it measures
Diacritic accuracy95.30%Correct แธฅaraka on correctly-recognized letters โ€” the purest tashkeel-quality signal.
DER โ€” with case-endings6.62%Diacritic Error Rate over all letters, including word-final iสฟrฤb.
DER โ€” excluding case-endings5.67%DER on word-internal diacritics only.
WER โ€” undiacritized10.13%Letter-level speech-recognition accuracy.
WER โ€” fully diacritized24.35%Strict: any single wrong แธฅaraka marks the whole word wrong.

How to read this: when the model hears a letter correctly, it places the right diacritic on it 95.3% of the time, and only ~1 diacritic in 15 is wrong even including the tricky grammatical endings. Diacritized WER is strict by design and reads high โ€” DER and diacritic accuracy are the meaningful diacritization metrics.


๐Ÿ“ Example outputs

Fully-diacritized transcriptions produced by the model:

#ุงู„ู†ูŽู‘ุตูู‘ ุงู„ู…ูุดูŽูƒูŽู‘ู„
ูกุงู„ุณูŽู‘ูŠูู‘ุฏู’ ุฃููˆูƒููŠ ุฃููˆุฑูŽุงู…ูŽุง ุฑูŽุฆููŠุณู ู…ูŽุฌู’ู„ูุณู ุฅูุฏูŽุงุฑูŽุฉู ุจูŽู†ู’ูƒู ุงู„ุชูŽู‘ู†ู’ู…ููŠูŽุฉู ุงู„ู’ุฅููู’ุฑููŠู‚ููŠู‘
ูขูˆูŽุงู„ู’ุจูุฐููˆุฑู’ ู„ูุถูŽู…ูŽุงู†ู ู†ูŽุฌูŽุงุญู ุงู„ู’ู…ููˆุณูู…ู ุงู„ุฒูู‘ุฑูŽุงุนููŠูู‘ ุงู„ู’ู‚ูŽุงุฏูู…ู’
ูฃู†ูุตู’ูู ุงู„ุฑูู‘ุจู’ุญู ู„ูุฑูŽุจูู‘ ุงู„ู’ู…ูŽุงู„ู ุฎูŽุงุตูŽู‘ุฉู‹ ุŒ ู„ูุฃูŽู†ูŽู‘ ุงู„ู’ู…ูุถูŽุงุฑูŽุจูŽุฉูŽ ูููŠู‡ู ููŽุงุณูุฏูŽุฉูŒ

๐Ÿš€ Usage

The model is fully self-contained โ€” it loads and runs just like the Cohere ASR base model (the fine-tuned weights are already merged in).

import torch, soundfile as sf, librosa
from transformers import AutoProcessor, CohereAsrForConditionalGeneration

repo = "NAMAA-Space/Cohere-Speech-Tashkeel-2B"
proc = AutoProcessor.from_pretrained(repo)
model = CohereAsrForConditionalGeneration.from_pretrained(
    repo, dtype=torch.bfloat16, device_map="auto"
).eval()

# load audio as 16 kHz mono
wav, sr = sf.read("your_audio.wav", dtype="float32")
if wav.ndim > 1:
    wav = wav.mean(1)
if sr != 16000:
    wav = librosa.resample(wav, orig_sr=sr, target_sr=16000)

feats = proc.feature_extractor(
    [wav], sampling_rate=16000, return_tensors="pt",
    padding="longest", return_attention_mask=True,
)
audio_chunk_index = feats.pop("audio_chunk_index")

# request the diacritized Arabic decoding
prompt = proc.get_decoder_prompt_ids(language="ar", punctuation=True)
decoder_input_ids = torch.tensor([prompt], dtype=torch.long, device=model.device)

with torch.no_grad():
    out = model.generate(
        input_features=feats["input_features"].to(model.device, torch.bfloat16),
        attention_mask=feats["attention_mask"].to(model.device),
        decoder_input_ids=decoder_input_ids,
        max_new_tokens=448,
    )

text = proc.decode(out, skip_special_tokens=True,
                   audio_chunk_index=audio_chunk_index, language="ar")
print(text)

Requirements: transformers, torch, soundfile, librosa, and a CUDA GPU (bf16).


๐Ÿงฉ Model details

Base modelCohereLabs/cohere-transcribe-arabic-07-2026
Parameters~2B
ArchitectureConformer encoder + Transformer decoder (attention encoderโ€“decoder)
TaskArabic speech โ†’ fully-diacritized text
Input16 kHz mono audio
OutputDiacritized Arabic text (with punctuation)
Precisionbfloat16
LicenseApache 2.0

โš ๏ธ Intended use & limitations

  • Intended use: fully-diacritized Arabic transcripts from audio โ€” captioning, language learning, MSA/liturgical read-speech, TTS front-ends, and linguistic annotation where correct harakฤt matter.
  • Diacritization is inferred from pronunciation, so on noisy audio or unclear articulation the letters and their diacritics can degrade together โ€” a VAD / noise gate is recommended for noisy input.
  • Inherits the base model's constraints: optimized for a single pre-specified language, no timestamps or speaker diarization.

๐Ÿ“œ Citation & attribution

Released under Apache 2.0. A fine-tuned derivative of CohereLabs/cohere-transcribe-arabic-07-2026 by Cohere Labs; all original terms apply.

@misc{cohere_ar_tashkeel_2026,
  title  = {Cohere-ar-tashkeel: Arabic Speech Diacritization},
  author = {Omer Nacar},
  year   = {2026},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/NAMAA-Space/Cohere-Speech-Tashkeel-2B}},
  note   = {Built on CohereLabs/cohere-transcribe-arabic-07-2026}
}
arabic
automatic-speech-recognition
cohere
cohere_asr
diacritization
endpoints_compatible
harakat
iraab
model-index
safetensors
speech-to-text
tashkeel
transformers