An open Najdi dataset for Saudi enterprise Arabic, because none existed
Open Arabic dialect data is full of daily life and travel and contains nothing that sounds like a refinery shift handover or a SADAD dispute. We built 13,156 gated Najdi dialogues across eight industries and released them under Apache 2.0. What is in it, how it was gated, and where the honest limits are.
If you want to train an Arabic model for a Saudi contact centre, the open data will not get you there, and the reason is not the dialect. It is the subject matter. The available Najdi corpora are good at daily life, work and travel. They contain nothing resembling a rig shift handover, a permit-to-work request, a SADAD payment dispute or a meter-reading complaint, and those are the conversations a Saudi enterprise deployment is made of.
So we built that data and published it. voho-saudi-dialogues is 13,156 multi-turn Najdi conversations, 105,808 turns, Apache 2.0, free for commercial use. This post is what is in it, how it was filtered, and the things about it you should hold against us.
13,156
Multi-turn Najdi dialogues
105,808 turns, mean assistant reply 7.3 words
7,603
Service calls across eight industries
Oil and gas, utilities, telecom, banking, government, health, logistics, facilities
5,553
Everyday conversations
Added after a model trained without them read every sentence as a ticket
Dialect authenticity was never the gap
This is the finding that should change how you spend money on Arabic data, so it goes first. Before generating anything we measured the published Najdi reference set against our own gates, and it scores 90.2 per cent on the lexicon check and 95.1 per cent of replies reading as Gulf. There is almost no headroom there. A project that sets out to make Najdi five per cent more Najdi will mostly buy noise.
Higher is better.
The gates separate cleanly, which is the point of measuring them on a known-good set and a known-bad one before trusting them on anything new. Najdi markers per dialogue run 5.3 against 0.3 on the same two sets.
The gap worth paying for is coverage. Eight verticals, four scenarios each, four employee roles: a grid of 128 combinations that the open data does not touch, and that is the commercially useful hole rather than dialect fidelity.
What is in it
| Vertical | One of its four scenarios |
|---|---|
| Oil and gas | A shift handover at a drilling site |
| Utilities | An outage reported across a neighbourhood |
| Telecom | A bill with charges the customer did not expect |
| Banking | A transfer that never arrived |
| Government | The status of a submitted application |
| Healthcare | A test result, and a referral to a specialist |
| Logistics | A damaged parcel, and a late shipment |
| Real estate and facilities | A lift out of service in a tower |
The other 5,553 dialogues are two people talking rather than a customer and an employee: family, friends, food, driving, weather, sport, occasions, work, home, health, travel. They are in the set because of a failure described below, and they are 34 per cent of the supervised text in the mix we shipped.
Why half of it is not enterprise data at all
We trained a model on the service calls alone first. Aggregate dialect scores rose seventeen points and it looked like a clear win. Reading the samples showed what the metric had missed: asked its opinion on a television for the final, the model answered that the system supports the TV and to buy it from the store. Every input was being read as a support ticket.
Topic coverage, not dialect fidelity, was the failure, and no aggregate number would have said so. That is why the everyday half exists, and it is the single most useful thing in this dataset for anyone building a voice agent: a model trained only on the calls you care about learns that every sentence is one of those calls.
How it was gated
Every dialogue had to pass two independent checks before it was kept, and the keep rate is on the card rather than asserted in prose.
- A Najdi lexicon gate: the dialogue must use the Saudi function words people actually say — وش، تبي، الحين، ليش، زين — and avoid their Modern Standard equivalents. A classifier alone will not do this, because its Gulf class covers Kuwait and the UAE too.
- A dialect classifier gate: at least 60 per cent of a dialogue's replies must read as Gulf to MARBERTv2, the same published classifier the model evaluation uses. Gating the training data with the thing that scores the model means the data cannot be worse than the bar it is measured against.
- Deduplication on openings and replies. Repetition, not dialect quality, is the real constraint at scale: duplicate openings were the largest reject class until the generation grid was shuffled and given a random caller persona per call.
After those changes, 487 staged dialogues had 487 unique openings and 1,953 unique assistant replies out of 1,959. Duplicates had been running at 24 by the forty-eighth call; they were 5 by the hundred and ninety-second.
What this data is not
It is generated text that passed two gates. It is not recorded human Saudi speech, we do not describe it as such anywhere, and if you see it characterised that way the characterisation is wrong rather than ours. Recorded Saudi audio exists and is a different thing: SADA, from SDAIA, is the corpus for that, and it carries a non-commercial licence, which is precisely why this dataset was built to be clean of it.
- It is written Najdi in a chat format, not transcribed telephony. It does not carry disfluency, overlap or the things a real call does to a transcript.
- The scenarios come from a fixed grid, so the variety is bounded by that grid rather than by the world. If you need a ninth vertical, extend the grid rather than turning up the temperature; more ground beats more randomness over the same ground.
- It is Najdi. Hijazi and Khaleeji appear in our speech models, not here.
- No evaluation split of ours is in it. The models trained on this are scored on a published third-party corpus, because scoring a model on data from your own generator measures how well it matched your prompt.
Use it
Apache 2.0, so commercially, without asking us. It is on Hugging Face as VohoAI/voho-saudi-dialogues, and the card carries the row counts, the keep rate and the gate scores rather than a description of them. If you run our gates over it and your numbers disagree with ours, we would rather hear that than not.
We publish this because a dialect claim nobody can check is worth nothing, and because the enterprise Arabic gap is large enough that one company filling it privately helps no one. The models trained on it are published too, with their evaluations, in a separate post.
Sources
Frequently asked
- What is in voho-saudi-dialogues?
- 13,156 multi-turn Najdi conversations totalling 105,808 turns. 7,603 are service calls across oil and gas, utilities, telecom, banking, government, healthcare, logistics and real estate and facilities; 5,553 are everyday conversations between two people. It is released under Apache 2.0 and free for commercial use.
- Is this recorded Saudi speech?
- No. It is generated text that passed a Najdi lexicon gate and an independent dialect classifier, and it is written chat rather than transcribed telephony, so it carries none of the disfluency or overlap a real call does. For recorded Saudi audio the corpus is SADA from SDAIA, which is licensed CC BY-NC-SA and therefore non-commercial.
- Why include everyday conversation in an enterprise dataset?
- Because a model trained only on service calls learns that every Arabic sentence is a service call. Ours did exactly that: asked its opinion on a television, it replied that the system supports it and to buy it from the store. Aggregate dialect scores had gone up seventeen points and said nothing about it. The everyday half is the fix, and it is 34% of the supervised text in the shipped mix.
- How do you know the dialect quality is good?
- Two gates, both measured on a known-good and a known-bad set before being trusted. The published Najdi reference set passes the lexicon gate 90.2% of the time against 1.7% for an MSA control, and 95.1% of its replies read as Gulf against 14.3%. Dialogues that do not clear the same bars are discarded, and the keep rate is published on the card.
- Can I use it to train a commercial model?
- Yes. It is Apache 2.0 with no additional conditions from us. That is deliberate: the dataset was built without any SADA-derived data specifically so its licence would not block commercial adoption the way our speech models' licence does.
Keep reading
