/ Модель

Характеристики

Лицензия
Apache 2.0
Базовая модель
whisper-large-v3
Библиотека
transformers
Опубликована
4 июл 2026

SunflowerASR-51-african-languages

Распознавание речиАудио → текст9 профессий

SunflowerASR — адаптация Whisper large-v3 от Sunbird AI для транскрибации речи на 51 африканском языке и английском и французском с африканскими акцентами.

1 929скачиваний за 30 дней26лайковвеса обновлены8 окт 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

SunflowerASR-51-african-languages — модель распознавания речи от Sunbird AI, адаптация Whisper large-v3 для 51 широко используемого в Африке языка, включая английский и французский с африканскими акцентами. Модель доступна в формате safetensors и распространяется по лицензии Apache-2.0.

Модель предназначена для транскрибации аудио: мониторинга СМИ, анализа звонков и отзывов граждан, голосовых интерфейсов и использования в конвейерах перевода речи. Обучение включало дообучение всех параметров на 7 412 часах африканской речи и этап GRPO, оптимизирующий частоту ошибок символов. Авторы сообщают о сильных результатах на трёх бенчмарках, однако качество заметно различается между языками.

Для каждого аудиофрагмента язык нужно задать при декодировании — автоматического определения языка нет. Модель не переводит, не выдаёт временные метки или метки говорящих. Фрагменты длиннее 30 секунд необходимо разбивать. На шумной, спонтанной, перекрывающейся или смешанной по языкам речи точность может снижаться; результаты транскрибации для важных решений требуют проверки человеком.

Сценарии применения

  • транскрибация аудио на африканских языках
  • анализ записей колл-центра
  • мониторинг речи в СМИ
  • анализ голосовых отзывов граждан
  • распознавание речи для голосовых интерфейсов
  • подготовка транскриптов для дальнейшего перевода речи

Ограничения

Качество неодинаково по языкам; язык нужно задавать при декодировании, а аудио длиннее 30 секунд сегментировать. На шумной и спонтанной речи точность может снижаться, а транскрипты для значимых решений требуют проверки человеком.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

SunflowerASR: speech recognition for 51 African languages

SunflowerASR is an adaptation of Whisper large-v3 that supports Automatic Speech Recognition (ASR) for 51 languages widely spoken in Africa: English and French with African accents, Swahili, Afrikaans, Tswana, Kinyarwanda, Nigerian Pidgin, Luganda, Acholi, Lugbara, Ateso, Runyankole, Rutooro, Lumasaba, Lusoga, Rukiga, Akan, Amharic, Bambara, Bemba, Berber, Chichewa, Dagaare, Dagbani, Ewe, Fulani, Hausa, Igbo, Ikposo, Kabyle, Kalenjin, Kanuri, Kikuyu, Kwamba, Lendu, Lingala, Luhya, Luo, Malagasy, Ndebele, Oromo, Rukonjo, Ruruuli, Shona, Somali, Sotho, Thur, Wolof, Xhosa, Yoruba, and Zulu.

It was trained by Sunbird AI in two stages: full-parameter supervised fine-tuning on 7,412 hours of African speech, followed by a reinforcement learning pass with Group Relative Policy Optimisation (GRPO) that optimises character error rate directly. It is released as part of Sunflower V2, and the method is described in the accompanying paper (to be released later).

Across three benchmarks it is the most accurate published system we have measured: it has the lowest macro-averaged Word Error Rate (WER) of any model, open or closed, on the Sunbird Speech Benchmark (51 languages), AfriVox-v2 and SimbaBench, including against Meta's Omnilingual ASR, Gemini, GPT-4o-transcribe, Sahara v2 and Simba. Per-language rankings vary, and quality across the 51 languages is very uneven — check the per-language number for your language before relying on it.

model_metrics_comparison_sunbird_benchmark_slides

Intended use

The model is intended for transcribing speech in the 51 languages listed above, including for applications such as media monitoring, call-centre and citizen-feedback analysis, agricultural and health advisory services, voice interfaces, and as a component in speech translation or speech-to-speech pipelines. It is also intended as a starting point for further fine-tuning on a specific language, domain or accent.

The model transcribes one language per clip: the language token is supplied at decode time and is not detected automatically. It does not translate, does not produce timestamps or speaker labels in this configuration, and is not a speaker-identification, language-identification or voice-biometric system. It should not be used as the sole basis for consequential decisions about individuals (for example in legal, clinical, immigration or employment settings) without human review of the transcript, particularly for the languages in the weaker half of the results tables.

Usage

You can use this Colab Notebook to try out the model. It lets you transcribe an audio sample from a Hugging Face dataset, an uploaded audio file, or your own recording from your computer's microphone.

The model is used in much the same way as the base Whisper model. For better accuracy, specify the language during generation.

See the example below, which transcribes an audio sample from a Hugging Face dataset:

import transformers
import datasets
import torch

SAMPLE_RATE = 16000

LANGUAGE_TOKENS_WHISPER = {
    # Existing languges codes from Whisper
    "eng": 50259, "fra": 50265, "swa": 50318, "sna": 50324, "yor": 50325, "som": 50326,
    "afr": 50327, "amh": 50334, "mlg": 50349, "lin": 50353, "hau": 50354,
    # Overwrite unused language tokens
    "ach": 50357, "aka": 50356, "bam": 50355, "bem": 50352, "ber": 50351,
    "cgg": 50350, "dag": 50348, "dga": 50347, "ewe": 50346, "ful": 50345,
    "ibo": 50344, "kab": 50343, "kau": 50342, "kik": 50341, "kin": 50340,
    "kln": 50339, "koo": 50338, "kpo": 50337, "led": 50336, "lgg": 50335,
    "lth": 50333, "lug": 50332, "luo": 50331, "luy": 50330, "myx": 50329,
    "nbl": 50328, "nya": 50323, "nyn": 50322, "orm": 50321, "pcm": 50320,
    "ruc": 50319, "rwm": 50317, "sot": 50316, "teo": 50315, "tsn": 50314,
    "ttj": 50313, "wol": 50312, "xho": 50311, "xog": 50310, "zul": 50309
}

LANGUAGE_NAMES = {
    'Acholi': 'ach', 'Afrikaans': 'afr', 'Akan': 'aka', 'Amharic': 'amh', 'Ateso': 'teo',
    'Bambara': 'bam', 'Bemba': 'bem', 'Berber': 'ber', 'Chichewa': 'nya', 'Dagaare': 'dga',
    'Dagbani': 'dag', 'English': 'eng', 'Ewe': 'ewe', 'French': 'fra', 'Fulani': 'ful',
    'Hausa': 'hau', 'Igbo': 'ibo', 'Ikposo': 'kpo', 'Kabyle': 'kab', 'Kalenjin': 'kln',
    'Kanuri': 'kau', 'Kikuyu': 'kik', 'Kinyarwanda': 'kin', 'Kwamba': 'rwm', 'Lendu': 'led',
    'Lingala': 'lin', 'Luganda': 'lug', 'Lugbara': 'lgg', 'Luhya': 'luy', 'Lumasaba': 'myx',
    'Luo': 'luo', 'Lusoga': 'xog', 'Malagasy': 'mlg', 'Ndebele': 'nbl', 'Nigerian Pidgin': 'pcm',
    'Oromo': 'orm', 'Rukiga': 'cgg', 'Rukonjo': 'koo', 'Runyankole': 'nyn', 'Ruruuli': 'ruc',
    'Rutooro': 'ttj', 'Shona': 'sna', 'Somali': 'som', 'Sotho': 'sot', 'Swahili': 'swa',
    'Thur': 'lth', 'Tswana': 'tsn', 'Wolof': 'wol', 'Xhosa': 'xho', 'Yoruba': 'yor', 'Zulu': 'zul'
}

model_id = "Sunbird/SunflowerASR-51-african-languages"
model = transformers.WhisperForConditionalGeneration.from_pretrained(model_id)
processor = transformers.WhisperProcessor.from_pretrained(model_id)

def transcribe_by_whisper(audio_array, language):
    device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
    input_features = processor(
        audio_array, sampling_rate=SAMPLE_RATE, do_normalize=True, return_tensors="pt"
    ).input_features.to(device)

    lang_tok = LANGUAGE_TOKENS_WHISPER[LANGUAGE_NAMES[language]]
    transcribe_tok = processor.tokenizer.convert_tokens_to_ids("<|transcribe|>")
    notimestamps_tok = processor.tokenizer.convert_tokens_to_ids("<|notimestamps|>")
    forced_decoder_ids = [
        (1, lang_tok),
        (2, transcribe_tok),
        (3, notimestamps_tok),
    ]

    predicted_ids = model.to(device).generate(
        input_features,
        forced_decoder_ids=forced_decoder_ids,
        num_beams=1,
        do_sample=False,
    )
    transcription = processor.decode(
        predicted_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)

    print(transcription[0])

# Get some test audio
import huggingface_hub
huggingface_hub.login()

ds = datasets.load_dataset('Sunbird/salt', 'multispeaker-lug', split='test')
audio_column = 'audio'
ds = ds.cast_column(audio_column, datasets.Audio(sampling_rate=SAMPLE_RATE))
audio_array = ds[0][audio_column]['array']

# Specify a language
lang = 'Luganda'

transcribe_by_whisper(audio_array, lang)
# Ekikoola kya kasooli kya kyenvu wabula langi yakyo etera okuba eya kitaka wansi.

Two decoding notes. The language token must be forced from the table above rather than passed as a Whisper language name: the 40 languages Whisper did not originally cover are mapped onto unused token ids, so language="lug" alone will not select Luganda. And if you set max_new_tokens, keep it at 444 (Whisper's architectural ceiling of 448 decoder positions, minus the 4-token forced prefix) — Whisper's tokeniser has no Ge'ez coverage and falls back to bytes, so Amharic costs about 2.4 tokens per character against 0.4 for a median language here, and a shorter budget truncates its transcripts.

Performance metrics

We evaluate SunflowerASR on three benchmarks: our own Sunbird Speech Benchmark, which is the only one that covers the model's full language range, and the two independent benchmarks with published baselines, AfriVox-v2 and SimbaBench. WER and CER are computed with greedy decoding, the language token forced at the decoder, and Whisper's BasicTextNormalizer applied to both hypothesis and reference. Lower is better throughout.

Sunbird Speech Benchmark

The Sunbird Speech Benchmark is assembled from the held-out test splits of the 110 dataset subsets of our training corpus, capped at 200 clips each: 20,213 clips over 51 languages drawn from 28 source corpora. It is the only one of the three benchmarks that covers every language the model supports. Note that because it is drawn from the same collections as our training data, it is in-domain for SunflowerASR and out-of-domain for the baselines; read it as a measure of coverage across 51 languages, with AfriVox-v2 and SimbaBench below providing the arm's-length comparisons.

Macro-averages over languages, comparing against Omnilingual ASR from Meta, Simba-S from UBC-NLP, Gemini 3.5 Flash from Google and GPT-4o-transcribe from OpenAI. Systems cover different subsets of the 51 languages, so the last column repeats SunflowerASR's average over exactly the languages each baseline scores:

SystemLanguages scoredWERCERSunflowerASR on the same languages (WER / CER)
SunflowerASR (ours)510.2930.091—
OmniASR-LLM-7B460.3530.1110.300 / 0.093
OmniASR-LLM-1B460.3830.1190.300 / 0.093
Simba-S180.5670.1900.263 / 0.078
Gemini 3.5 Flash460.5710.2220.286 / 0.085
GPT-4o-transcribe510.7090.3340.293 / 0.091

SunflowerASR has the lowest WER of any system compared on 30 of the 51 languages, and the lowest CER on 34.

Per-language results, sorted by WER, alongside the hours of supervised training audio that language contributed to the corpus:

CodeLanguageTraining hoursTest clipsWERCER
fraFrench11.42000.0790.035
tsnTswana235.33690.0930.031
engEnglish160.62950.0940.036
afrAfrikaans51.67290.0960.039
nblNdebele137.91440.1090.028
mlgMalagasy93.51990.1370.052
sotSotho208.93210.1520.047
swaSwahili82.64000.1530.060
hauHausa278.211300.1710.047
luoLuo198.45960.1750.038
lthThur6.51670.1870.073
snaShona86.25940.1940.037
pcmNigerian Pidgin693.23970.1970.087
zulZulu171.65070.2010.040
lggLugbara10.4960.2030.054
ormOromo192.54390.2100.050
berBerber17.02000.2150.080
linLingala183.17670.2150.087
kikKikuyu183.71990.2260.074
ttjRutooro7.01990.2280.051
iboIgbo465.28600.2440.081
xhoXhosa111.15270.2520.049
ledLendu7.11990.2750.093
teoAteso8.5980.2780.091
akaAkan54.62000.2870.093
eweEwe79.34000.2910.095
amhAmharic374.210000.2980.113
lugLuganda180.79500.3030.077
kinKinyarwanda1,392.34000.3040.091
cggRukiga6.52000.3090.069
dgaDagaare80.62000.3100.129
dagDagbani78.44000.3120.106
nynRunyankole42.82800.3180.079
achAcholi25.92700.3220.130
nyaChichewa49.33990.3240.076
luyLuhya55.72000.3380.111
wolWolof40.05710.3450.128
kauKanuri31.62000.3480.089
somSomali126.45960.3530.114
yorYoruba466.19950.3640.129
xogLusoga30.71770.4190.082
fulFulani111.75940.4260.124
bamBambara156.76000.4410.219
bemBemba22.14000.4410.096
myxLumasaba34.11800.4520.103
kabKabyle130.92000.4670.215
klnKalenjin145.74000.4950.109
rucRuruuli5.21700.5180.112
rwmKwamba5.81990.5430.210
kooRukonjo6.52000.5670.139
kpoIkposo77.12000.6700.223
All 51 (macro-average)7,41220,2130.2930.091

SunflowerASR (ours)_wer_vs_train_hours

AfriVox-v2

AfriVox-v2 is an in-the-wild benchmark of 251 hours aggregating the Africa Next Voices, Waxal and AfriVox v1 corpora over a 10-domain taxonomy spanning health, finance, government and agriculture. It is largely spontaneous rather than read speech. We score 111,051 clips in the 14 languages that have metrics reported in the AfriVox-v2 paper; baseline figures are taken from that paper, which reports WER only. Simba-S is our own evaluation, and does not cover three of the languages, so its average is over the other eleven. Best per row in bold.

LanguageSunflowerASR (ours)Sahara v2Gemini 3 FlashOmni-CTC 7BOmni-CTC 1BOmni-CTC 300MSimba-S
Swahili0.1080.0710.0760.0770.0970.1520.150
Tswana0.1160.1400.2750.1420.2100.2770.604
Kinyarwanda0.1330.0660.1650.1040.1380.2150.591
Sotho0.1520.1950.3460.4210.4730.5330.596
Luganda0.1600.3930.3150.4220.4280.4830.341
Zulu0.1610.2560.2370.2020.2560.3460.396
Xhosa0.1660.2060.2920.2000.2560.3440.501
Shona0.2090.2490.3680.2860.3220.425—
Amharic0.2510.2530.2490.3270.3740.4900.716
Hausa0.2880.2850.2690.5020.3660.4010.835
Yoruba0.3160.2710.2960.3610.3650.4380.723
Fulani0.3430.3520.7290.5570.5690.588—
Akan0.3470.3070.4560.4470.4970.549—
Igbo0.4250.2870.4250.4590.3950.4460.998
Overall0.2270.2380.3210.3220.3390.4060.586

SimbaBench

SimbaBench aggregates read and conversational speech from Common Voice, BembaSpeech, Lwazi, NCHLT and regional collections. The table covers the 19 languages in common with SunflowerASR; baseline figures come from the public leaderboard. Best per row in bold.

LanguageSunflowerASR (ours)OmniASR-LLM-7BSimba-SSimba-MGemini 2.5 Pro
Hausa0.1670.1690.6410.2910.219
Luganda0.2200.1710.2270.3570.421
Swahili0.2460.1560.1630.2520.168
Kinyarwanda0.2510.1920.5310.3670.463
Luo0.2970.2710.3910.4420.494
Igbo0.3040.3620.7770.8500.428
Afrikaans0.3120.2790.1450.3130.158
Wolof0.3240.5830.5810.5861.830
Yoruba0.3350.2320.2010.4150.524
Kabyle0.3490.2870.6040.6430.933
Tswana0.3530.4890.1870.3060.464
Bemba0.3740.3920.3910.4370.635
Sotho0.4410.6340.2100.3270.495
Ndebele0.4440.5880.2460.3580.413
Zulu0.4590.4010.5850.3330.359
Xhosa0.4660.4480.2720.3830.466
Chichewa0.5450.6090.2230.4680.428
Kalenjin0.5800.7000.7130.7340.959
Amharic0.6000.2340.3300.5250.457
Overall0.3720.3790.3900.4420.543

Training Datasets

The model was fine-tuned on a multilingual corpus covering 51 African languages, assembled from a range of publicly available and community-collected speech datasets. The table below lists each source dataset and the languages it contributes to training (ISO 639-3 code in parentheses). A language may appear in more than one source.

Corpus statistics

Languages51
Dataset subsets113 (29 source collections, a mean of 2.2 independent sources per language)
Clips before filtering4.15 M
Removed: suspected label noise (CER > 0.4 against an intermediate checkpoint)4.1%
Removed: clips longer than Whisper's 30 s window3.9%
Clips after filtering3.82 M
Total audio after filtering7,412 h
Mean clip duration7.0 s
Packed training samples (clips concatenated into 30 s windows)1.10 M
Mean clips per pack / mean packed duration3.5 / 24.2 s
Hours per language5.2 h (Ruruuli) to 1,392 h (Kinyarwanda), median 81 h
Clips used for the GRPO stage15,285 (top 200 per subset by headroom)

Per-language hours are listed alongside the benchmark results in the Sunbird Speech Benchmark table above. Clips are filtered and then packed: short clips from the same subset are concatenated to fill the 30 s input window, which keeps every pack monolingual and single-source while cutting padding waste from 76.7% to 19.4%. Of the 113 training subsets, the 110 with held-out test splits make up the Sunbird Speech Benchmark.

Sources

Source datasetLanguages
Mozilla Common VoiceAfrikaans (afr), Amharic (amh), Rukiga (cgg), Dagbani (dag), Hausa (hau), Igbo (ibo), Kabyle (kab), Kinyarwanda (kin), Kalenjin (kln), Rukonjo (koo), Lendu (led), Thur (lth), Luganda (lug), Luo (luo), Nigerian Pidgin (pcm), Ruruuli (ruc), Kwamba (rwm), Swahili (swa), Tswana (tsn), Rutooro (ttj), Yoruba (yor)
Google FLEURSAfrikaans (afr), Fulani (ful), Hausa (hau), Igbo (ibo), Lingala (lin), Luganda (lug), Luo (luo), Chichewa (nya), Oromo (orm), Shona (sna), Somali (som), Sotho (sot), Swahili (swa), Wolof (wol), Xhosa (xho), Yoruba (yor), Zulu (zul)
Google WaxalAcholi (ach), Akan (aka), Amharic (amh), Dagbani (dag), Dagaare (dga), Ewe (ewe), Fulani (ful), Ikposo (kpo), Lingala (lin), Luganda (lug), Malagasy (mlg), Lumasaba (myx), Runyankole (nyn), Oromo (orm), Shona (sna), Lusoga (xog)
ASR Africa Data Efficiency BenchmarkAfrikaans (afr), Amharic (amh), Bambara (bam), Bemba (bem), Ewe (ewe), Fulani (ful), Hausa (hau), Igbo (ibo), Kinyarwanda (kin), Luganda (lug), Oromo (orm), Shona (sna), Wolof (wol), Xhosa (xho), Yoruba (yor), Zulu (zul)
African Next VoicesKikuyu (kik), Kalenjin (kln), Luo (luo), Somali (som), Ndebele (nbl), Sotho (sot), Tswana (tsn), Xhosa (xho), Zulu (zul)
Sunbird SALTAcholi (ach), English (eng), Lugbara (lgg), Luganda (lug), Runyankole (nyn), Ateso (teo)
African VoicesHausa (hau), Igbo (ibo), Nigerian Pidgin (pcm), Yoruba (yor)
NaijaVoicesHausa (hau), Igbo (ibo), Yoruba (yor)
Omnilingual ASR corpus (Meta)Rukiga (cgg), Rukonjo (koo), Rutooro (ttj)
CLEAR GlobalHausa (hau), Kanuri (kau)
Shunya LabsAmharic (amh), Lingala (lin)
RobotsMali Bambara ASRBambara (bam)
AfriSpeech-200 (Intron Health)English (eng)
African-Accented FrenchFrench (fra)
Afrikaans-30sAfrikaans (afr)
BembaSpeechBemba (bem)
TutlaytAI Amazigh ASRBerber (ber)
KasuleTrevor LingalaLingala (lin)
Makerere Radio SpeechLuganda (lug)
Digital Divide DataLuhya (luy)
michsethowusuChichewa (nya)
Soomali ASRSomali (som)
KallaamaWolof (wol)
KYAGABAAmharic (amh)

Notes

  • African Next Voices is drawn from two collection hubs: Kenya (Kikuyu, Kalenjin, Luo, Somali) and Southern Africa (Ndebele, Sotho, Tswana, Xhosa, Zulu).

Training procedure

SunflowerASR is trained from Whisper large-v3 in two stages. In the first, all 1.55 B parameters are fine-tuned for 5 epochs over the packed corpus described above, with a per-device batch of 64 packed samples and 4 gradient accumulation steps — an effective batch of 256 packed samples, or roughly 1.7 hours of audio per optimiser step, giving about 4,300 optimiser steps per epoch — at a peak learning rate of 2×10⁻⁵ with 100 warmup steps and cosine decay, label smoothing of 0.1, and augmentation applied on the fly: additive noise drawn from a corpus of Ugandan ambient recordings (Sunbird/urban-noise-uganda-61k) plus speed and bandwidth perturbation. The second stage is a reinforcement learning pass with Group Relative Policy Optimisation (GRPO), which optimises the sequence-level metric directly rather than the per-token likelihood of a single reference: for each clip the policy samples 10 complete transcripts, each is scored with the reward -min(CER, 1.0) against the reference, and the group's own mean and standard deviation turn those scores into advantages, so probability mass moves towards the better rollouts under a KL penalty of β = 0.01 against the initial policy. It runs for one epoch over 15,285 clips, selected as the 200 clips per dataset subset with the largest headroom — the gap between the median and the best CER over 10 sampled rollouts, which identifies clips where a better transcript is already inside the model's sampling distribution and only needs to be made more probable — with 64 distinct clips (640 rollouts) per update at a peak learning rate of 10⁻⁵, the encoder frozen so that only the decoder's 906 M parameters are trained. This stage leaves clean-speech accuracy roughly unchanged but improves noisy and spontaneous audio: it largely suppresses the repetition loops Whisper falls into under acoustic stress, makes ordinary substitutions closer to the reference spelling, and helps most for the languages with the least training data.

Training configuration

Base modelopenai/whisper-large-v3 (1.55 B parameters)
Stage 1Supervised fine-tuning, all parameters, 5 epochs, LR 2×10⁻⁵ cosine, label smoothing 0.1, effective batch 256 packs
Stage 2GRPO (trl, loss_type: dapo), decoder only (906 M of 1.55 B), 1 epoch, LR 10⁻⁵
GRPO reward-min(CER, 1.0) against a single reference transcript
GRPO rollouts10 per clip, temperature 0.8, top-p 0.98; 64 clips (640 rollouts) per update
GRPO regularisationGroup-std advantage scaling, KL β = 0.01 against the initialisation
Max completion length444 tokens (Whisper's 448 learned decoder positions, minus the 4-token forced prefix)
AugmentationAdditive urban noise, speed perturbation, occasional 8 kHz downsample-and-restore

Limitations

  • Quality is very uneven across the 51 languages. On the Sunbird Speech Benchmark, WER ranges from 0.08 to 0.67. Check the per-language figures before deploying for any one language, and treat the tail of the table as usable for triage or search rather than for verbatim transcription.
  • The language must be specified at decode time. The model does not perform language identification, and giving it the wrong language token degrades output substantially. Language tokens for the 40 languages Whisper did not originally support are overwritten unused tokens, so the mapping in the Usage section must be used rather than Whisper's own language names.
  • Audio longer than 30 seconds must be segmented before transcription, as with any Whisper model; longer clips are truncated by the encoder.
  • Orthographic convention rather than intelligibility. Both training stages score hypotheses against a single reference transcript, so the model is optimised towards the transcription conventions of these corpora. Languages without a settled orthography inherit that ambiguity, and a transcript may be penalised — or produced — in a spelling a given community would not use.
  • Domain and style. Much of the training data for the lower-resource languages is read speech recorded in quiet conditions. Accuracy is lower on spontaneous, overlapping, noisy or heavily code-switched speech, though this is the setting the GRPO stage improves most.
  • Repetition loops are reduced, not eliminated. Under heavy acoustic stress the model can still emit a repeated run or a hypothesis much longer than the utterance.
  • Benchmark caveat. The Sunbird Speech Benchmark is drawn from the same collections as the training corpus, so it is in-domain for this model and out-of-domain for the baselines it is compared against. AfriVox-v2 and SimbaBench are the arm's-length comparisons.
  • Not for consequential decisions without review. See Intended use.

Citation

If you use this model, please cite the accompanying paper:

@misc{sunflowerasr2026,
  title        = {Group Relative Policy Optimisation Improves Multilingual Speech
                  Recognition in Low-Resource Languages},
  author       = {Hu, Tim Wenjie and Ouma, Evelyn Nafula and Akera, Benjamin and
                  Quinn, John A.},
  year         = {2026},
  institution  = {Sunbird AI},
  howpublished = {\url{https://huggingface.co/Sunbird/SunflowerASR-51-african-languages}}
}

And, for the evaluation set:

@misc{sunbird_speech_benchmark_2026,
  title        = {Sunbird Speech Benchmark: a multilingual ASR test set for 51
                  African languages},
  author       = {Sunbird AI},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/datasets/Sunbird/speech-benchmark}}
}

License and acknowledgements

Released under the Apache 2.0 licence, following the licence of the Whisper large-v3 base model. The training corpus is assembled from the publicly available and community-collected datasets credited in Training Datasets; please also respect the licence and citation requirements of those sources. We thank the many organisations and community contributors who collected and released this speech data, without which a model covering these languages would not be possible.

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers

Нельзя запустить

Доступ к модели ограничен автором; у платформы нет доступа к весам.

Ревизия весов
4583c9d

0 моделей