model_id- baobab-zu
display_name- Baobab isiZulu
model_version- 2026.10.national
family- baobab
status- national_shipped
product_line- National Durban / KwaZulu-Natal isiZulu isiZulu speech + phrase MT corridor — generative_inference_live false; neural_nmt false; trainingEligible locked. Product default zu-ZA / own:zu-za-female; Johannesburg secondary.
as_of- 2026-10-23T09:41:14.022Z
varieties
isiZulu (Durban / KwaZulu-Natal isiZulu)
variety_id- zu-za
pack_key- durban
name_en- isiZulu (Durban / KwaZulu-Natal isiZulu)
bcp47- zu-ZA
iso6393- zul
echo_voice_id- own:zu-za-female
mt_lang_key- zu
language_pack_version- zu-za-pack-2026.10
corridor_id- en-zu-durban
primary_use- Durban / South Africa citizen services / education / MeetingBridge South Africa isiZulu
dataset_manifest- apps/api/eval/corridors/en-zu-durban/test-scripts.json
trainingEligible- false
audio_clean- spectral_gate_v2
speech_finetune_recipe- docs/baobab/SPEECH_FINETUNE_RECIPE.md
english_accentlocale- en-ZA
voice_id- own:en-za-female
label- Lerato · South African English
region- south_africa
note- South African English accent paired with Afrikaans and isiZulu national models. Never substitutes for L1 Afrikaans or isiZulu.
domains- greetings
- everyday
- airtime
- health
- civic
- market
not_interchangeable_with- af-za
- xh-za
- zu-za-jhb
- zu-za-gauteng
- zu-za-soweto
mtstatus- phrase_table_only
note- Deterministic phrase + lexical Baobab pack in lugemi-mt.engine. Fail-closed when uncovered. No dedicated neural NMT service.
pairs- en↔zu
asrstatus- neural_offline
checkpoint- openai/whisper-small (isiZulu + Durban phrase rescoring)
license- see_model_card
env_gate- isiZulu speech
variety_exclusive_finetune- false
ttsstatus- neural_offline
checkpoint- guymandude/South-African-TTS-11-Vits (Coqui VITS, language=zul) + Durban targeting
license- CC-BY-NC-4.0
env_gate- isiZulu speech
variety_exclusive_finetune- false
s2s_corridorstatus- corridor_pass
note- en-zu-durban corridor scripts PASS when speech URL points at lugemi-zulu. Broad domain deferred. Clarity: spectral_gate_v2.
national_tiers
Public demo
id- public_demo
name- Public demo
who- Citizens, press, students (unauthenticated demos)
auth- None — soft abuse controls on demo speech
maps_to_plan- null
residency_preference- null
audit- false
commercial_nc_clean_tts_required- false
endpoints- GET /v1/models/baobab-zu
- GET /v1/baobab/am/national
- POST /v1/demo/speech
limitstranslate_chars_daily_hint- Authenticated translate required for production MT
demo_speech- 400 requests / 10 minutes / IP (demo controller)
rate_limit_note- Demo speech returns rate_limited when exceeded
controls- honest en-ZA remap when speech offline (paired South African English accent; never Afrikaans or isiXhosa)
- spectral_gate_v2 clarity on live neural WAV
- variety headers — zu-za
Education / free
id- education
name- Education / free
who- Students, UG / KNUST labs, research orgs on Free/Pro plans
auth- Org API key (TranslateAuthGuard) — Free or Pro plan
maps_to_plan- free|pro
residency_preference- ZA
audit- true
commercial_nc_clean_tts_required- false
endpoints- POST /v1/translate
- POST /v1/tts/synthesize
- POST /v1/audio/transcriptions (when ASR keyed)
- GET /v1/models/baobab-zu
limitstranslate_chars_daily_hint- Free: BILLING_FREE_TRANSLATE_CHARS_QUOTA (default 50k); Pro: BILLING_PRO_TRANSLATE_CHARS_QUOTA
demo_speech- null
rate_limit_note- RATE_LIMIT_FREE_PER_KEY / RATE_LIMIT_PRO_PER_KEY via existing RateLimitGuard
controls- UsageService metering
- BillingService.assertWithinQuota
Ministry production
id- ministry
name- Ministry production
who- South Africa government services (Durban / KwaZulu-Natal isiZulu citizen channels)
auth- Ministry-keyed org API key — Business plan mapping
maps_to_plan- business
residency_preference- ZA
audit- true
commercial_nc_clean_tts_required- false
endpoints- POST /v1/translate
- POST /v1/tts/synthesize
- MeetingBridge South Africa corridor
- GET /v1/residency
- GET /v1/metrics/translate
limitstranslate_chars_daily_hint- Business translate quota (BILLING_BUSINESS_TRANSLATE_CHARS_QUOTA)
demo_speech- null
rate_limit_note- RATE_LIMIT_BUSINESS_PER_KEY / PER_ORG
controls- AuditService on translate.completed
- Org retention / vendor-training settings
- Residency preference GH (affinity, not hard geo-fence)
Enterprise
id- enterprise
name- Enterprise
who- Banks, telcos, NGOs serving Durban / South Africa
auth- Paid Enterprise keys
maps_to_plan- enterprise
residency_preference- AF
audit- true
commercial_nc_clean_tts_required- true
endpoints- POST /v1/translate (+ TM / quality)
- Speech + MeetingBridge
- Fine-tunes / marketplace where plan allows
limitstranslate_chars_daily_hint- Enterprise translate quota
demo_speech- null
rate_limit_note- RATE_LIMIT_ENTERPRISE_PER_KEY / PER_ORG
controls- SLA targets (documented; contractual SLA separate)
- Commercial TTS path must be NC-clean for redistribution of MMS TTS assets
- Audit + retention
research
id- baobab-zu-generative-lm
status- research_planned
foundation_llm_weights- false
generative_inference_live- false
ships_trained_baobab_foundation- false
separate_variety_checkpoints_required- true
training_recipe- docs/baobab/GENERATIVE_LM_RECIPE.md
note- Research slot + harness + training recipe only. Do not brand phrase MT or speech corridors as a full national LLM. Generative inference unsupported until gates are met.
proposed_checkpoint_ids
primary- baobab-zu-durban-lm-*
prerequisites
- en-zu-durban corridor + national API surfaces remain the product wedge
- Mix / Fidelity / Live evals and rights clear
- Consented parallel + speech data with held-outs
acceptance_gates
held_out_speakers
id- held_out_speakers
required- true
met- false
description- Held-out evaluation speakers must never appear in training exports; speaker lists remain empty until consented collection.
community_consent
id- community_consent
required- true
met- false
description- trainingEligible stays false until Durban / South Africa community speakers re-confirm for training.
variety_separation
id- variety_separation
required- true
met- false
description- Any future LM/adapters must ship as baobab-zu-durban-* — never one blob marketed as interchangeable varieties.
beat_phrase_mt_baselines
id- beat_phrase_mt_baselines
required- true
met- false
description- Generative claims require held-out gains vs corridor phrase-MT baselines on declared native tasks.
commercial_rights_clear
id- commercial_rights_clear
required- true
met- false
description- Base model + data licenses must clear commercial ministry/enterprise redistribution before promotion.
task_harness
goldens- apps/api/src/baobab/baobab-zu.research.ts#RESEARCH_GOLDENS
runner- apps/api/src/baobab/baobab-zu.research.ts#evaluateBaobabZuNativeTasks
generative_default- unsupported
training_eligible_unlock
trainingEligible- false
status- locked
unlock_doc- docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md
note- trainingEligible remains false until all gates are met with durable evidence. Do not invent consent.
gates
community_consent_sw
id- community_consent_sw
required- true
met- false
evidence_required- Signed Durban / South Africa contributor agreements reconfirming training use
description- Durban / South Africa community speakers must reconfirm training export consent.
held_out_speaker_lists
id- held_out_speaker_lists
required- true
met- false
evidence_required- Published held-out speaker IDs never present in train splits
description- Held-out evaluation speakers must never appear in training exports.
sw_native_review
id- sw_native_review
required- true
met- false
evidence_required- Paid isiZulu (Durban / KwaZulu-Natal isiZulu) native review records with trainingEligible fields
description- Native review must cover isiZulu (Durban / KwaZulu-Natal isiZulu) before any train export.
variety_not_conflated
id- variety_not_conflated
required- true
met- false
evidence_required- Corpus metadata proving non-interchangeable varieties excluded from train exports
description- Johannesburg (ti-et) is a secondary East African variety — not the South Africa national default.
rights_clear_for_export
id- rights_clear_for_export
required- true
met- false
evidence_required- Legal memo clearing commercial vs research split for export corpus
description- IP / commercial rights must clear before trainingEligible flips.
license_warnings
- isiZulu ZA-11 VITS (guymandude/South-African-TTS-11-Vits, language=zul) is CC-BY-NC-4.0 and gated — accept the HF license; Meta MMS has no facebook/mms-tts-zul.
- Whisper ASR for isiZulu corridor — pin versions and attribute per model card.
- Durban / KwaZulu-Natal isiZulu is the product default via language/speaker ids on shared ZA-11 weights — not a Durban-only exclusive speech finetune — Johannesburg / Gauteng / Soweto varieties are secondary.
- Phrase/lexical Baobab MT covers reviewed corridor domains; neural_nmt is false (no dedicated isiZulu NLLB national service shipped).
- Never substitute Afrikaans or isiXhosa for isiZulu (country-pack honesty).
capabilities
phrase_mt- phrase_table_only
national_api_tiers- true
generative_lm_research_slot- true
generative_inference_live- false
neural_nmt- false
neural_asr- false
neural_tts- false
s2s_corridor- true
foundation_llm_weights- false
audio_clean- spectral_gate_v2
honesty
phrase_table_only- true
national_api_tiers- true
research_slot_shipped- true
neural_speech_live- false
neural_nmt- false
generative_inference_live- false
foundation_llm_weights- false
ships_trained_baobab_foundation- false
variety_exclusive_speech_finetunes- false
trainingEligible- false
iso_code- zul
audio_clean- spectral_gate_v2
training_eligible_unlock
trainingEligible- false
status- locked
unlock_doc- docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md
note- trainingEligible remains false until all gates are met with durable evidence. Do not invent consent.
gates
community_consent_sw
id- community_consent_sw
required- true
met- false
evidence_required- Signed Durban / South Africa contributor agreements reconfirming training use
description- Durban / South Africa community speakers must reconfirm training export consent.
held_out_speaker_lists
id- held_out_speaker_lists
required- true
met- false
evidence_required- Published held-out speaker IDs never present in train splits
description- Held-out evaluation speakers must never appear in training exports.
sw_native_review
id- sw_native_review
required- true
met- false
evidence_required- Paid isiZulu (Durban / KwaZulu-Natal isiZulu) native review records with trainingEligible fields
description- Native review must cover isiZulu (Durban / KwaZulu-Natal isiZulu) before any train export.
variety_not_conflated
id- variety_not_conflated
required- true
met- false
evidence_required- Corpus metadata proving non-interchangeable varieties excluded from train exports
description- Johannesburg (ti-et) is a secondary East African variety — not the South Africa national default.
rights_clear_for_export
id- rights_clear_for_export
required- true
met- false
evidence_required- Legal memo clearing commercial vs research split for export corpus
description- IP / commercial rights must clear before trainingEligible flips.
nmt
neural_nmt- false
disclosed_base_named- null
disclosed_base_weights_in_repo- false
commercial_license_cleared- false
adapter_status- phrase_table_only
checkpoint_shipped- false
phrase_table_live- true
remote_mt_configured- false
remote_mt_env- null
baobab_yo_nmt_url_configured- false
baobab_yo_nmt_env- null
separate_variety_adapters- false
note- Baobab isiZulu MT is phrase/lexical only (en↔zu). Fail-closed when uncovered. neural_nmt false.
phrase_table_pairs
- en↔zu
residency
serving_today- jnb
serving_today_label- Africa-primary Fly region Johannesburg (jnb)
affinity_target- af-south-1
affinity_city- Durban
affinity_country- ZA
accra_gpu_island- false
accra_gpu_island_status- deferred
hard_geo_fence- false
preference_model- affinity_not_hard_fence
ministry_affinity_pin- af-south-1
affinity_enforcement- soft_preference_recorded
accra_island_runbook- docs/baobab/JNB_RESIDENCY.md
note- Inference prefers matching person/org residency to nearby model hosting when ready — affinity, not a hard geo-fence. Durban is the South Africa residency preference; Africa-south affinity pin is af-south-1. Live serving for verbalab + lugemi-zulu is jnb today. No fictional Durban GPU island is claimed live beyond jnb serving.
licenses
tts- CC-BY-NC-4.0
asr- see_model_card
note- TTS is CC-BY-NC-4.0. neural_nmt stays false — no dedicated NLLB remote shipped. Clarity path: spectral_gate_v2.
deferred
- Commercially cleared neural NMT (phrase MT is the live fail-closed path)
- Durban GPU island / hard South Africa geo-fence (affinity af-south-1; serving jnb)
- Contractual ministry SLA signature (operational targets shipped)
- Generative LM weights + inference (recipe + gates only)
- Variety-exclusive ASR/TTS finetunes beyond shared checkpoints
- trainingEligible unlock evidence (checklist shipped; flag locked false)
endpoints
model_card- GET /v1/models/baobab-zu
national- GET /v1/baobab/am/national
research- GET /v1/baobab/am/research
unlock- GET /v1/baobab/am/unlock
slo- GET /v1/baobab/am/slo
translate- POST /v1/translate
demo_speech- POST /v1/demo/speech
tts- POST /v1/tts/synthesize
meetingbridge_ghana- MeetingBridge South Africa corridor
corridor- en-zu-durban
residency- GET /v1/residency
translate_metrics- GET /v1/metrics/translate
docs
national_model- docs/baobab/ZULU_NATIONAL_MODEL.md
model_card- docs/baobab/baobab-zu.MODEL_CARD.md
partnership_open_eval- docs/baobab/PARTNERSHIP_OPEN_EVAL.md
ministry_sla- docs/baobab/MINISTRY_SLA.md
training_eligible_unlock- docs/baobab/TRAINING_ELIGIBLE_UNLOCK.md
speech_finetune_recipe- docs/baobab/SPEECH_FINETUNE_RECIPE.md
generative_lm_recipe- docs/baobab/GENERATIVE_LM_RECIPE.md
jnb_residency- docs/residency.md
corridor- en-zu-durban
language_kit- docs/models/05_LANGUAGE_KIT.md
residency- docs/residency.md