v221 of 21 FLORES+ languages →

The protocol underneath African language AI.

A tokenizer that cuts the token premium, a consented recordings network and the app members record with.

Pixel mosaic in magenta, flame and Volt rising from a pale ground toward a bright glow
DEMO DATA
Nzinga console overview with token premium, fewer tokens, FLORES+ and vocabulary stats, a premium-by-language chart and demo recordings
Recording window for a Yoruba voice note with four steps, waiting for review before it is paid
WE WORK WITH

The models, test sets and tools Nzinga is measured with.

Gemma 3
Llama 3.1
FLORES+
NTREX-128
Hugging Face
Expo

Four principles we build by.

Each is enforced in code; where it is not yet true, we say so.

01

Consent for every recording.

Each person in a recording chooses who can use their voice, and can withdraw anytime.

02

African control, measured.

Tokenizer, data, standard and infrastructure: each layer is measured, and reported honestly.

03

Social by design.

Members join by invite from people they know.

04

Pay for your voice.

Members are paid per accepted minute, with a licence share.

Three products. One protocol.

Use one, or all three. They share consent records and the ledger.

Magenta and Volt pixel mosaic for the Nzinga Tokenizer
01 · TOKENIZER

Fewer tokens for African languages

32,000 African word pieces added to Gemma 3's tokenizer, every existing token unchanged.

02 · NETWORK

Recordings that stay with their speakers

Invite-only membership, a choice on every recording, pay per accepted minute and hashed contacts.

03 · APP

Record your language and get paid

Record voice notes, choose who can use each one, and track earnings.

FOR DEVELOPERS

Or build on the tokenizer directly.

Load the tokenizer with the Hugging Face tokenizers library, count tokens, then resize a Gemma 3 model.

294,145
tokens in the vocabulary
1.55x
average Tier 1 token premium
21 of 21
languages ahead on FLORES+
gemma3-afx32k.json
1from tokenizers import Tokenizer
2
3tok = Tokenizer.from_file("gemma3-afx32k.json")
4
5enc = tok.encode(
6sequence="Huku shirika la Save the Children",
7pair=None,
8add_special_tokens=False,
9is_pretokenized=False,
10)
11
12for name in ("ids", "tokens"):
13print(name, getattr(enc, name)[:8])
1import { createLiveClient } from "./lib/api";
2
3const api = createLiveClient(() => token);
4
5const rec = await api.createRecording({
6kind: "voice_note",
7language: "swh",
8speakers: ["m_9f2c", "m_41ab"],
9durationSeconds: 192,
10});
11
12for (const r of (await api.myRecordings()).recordings) {
13console.log(r.language, r.status);
14}
1curl http://127.0.0.1:3000/v1/recordings \
2-H "Authorization: Bearer $NZ_SESSION_TOKEN" \
3-H "Content-Type: application/json" \
4-d '{
5"kind": "voice_note",
6"language": "swh",
7"speakers": ["<member id>"],
8"durationSeconds": 192
9}'
$ curl -s .../v1/recordings/r1-demo
pending
recorded
3:12
choice_set
training
details_sent
ok
review
awaiting review
yor · 192 s · consent v1 b363…187d
LANGUAGE STORY · SWAHILI, MEASURED
“Ten tokens for one Swahili sentence, where GPT-4o needs eleven and GPT-4 needs sixteen.”
Pixel mosaic in flame and violet for the Swahili example on NTREX-128
Sentence 1680
NTREX-128 test set
8.4%
fewer than GPT-4o
1.35x
token premium
79,100
context words

Privacy is a principle, not a feature.

Enforced in code from the first recording, and honest about gaps.

Consent

Each speaker in a recording chooses for themselves.

Hashing

Contacts hashed on the phone; the server keeps none.

Audio location

Audio stays on the phone; upload is not built yet.

Sign-in

Codes kept as hashes, expiring after ten minutes.

Withdrawal

Withdraw any recording, or everything, any time.

Consent history

Records are never edited; every change adds a record.

One protocol, three ways to join.

Members are paid per accepted minute. Partners license on request. Researchers get open data.

COMPARE ROLES
MEMBERS

Paid

For speakers of any language.

RESEARCHERS

Open

For open research use.

Pay model
Per accepted minute
Licensing, on request
Open data
Recordings
Own
Licensed
Everyone choice only
Licence share
Proportional to minutes
Paid by partners
None
Consent check
Per recording, always
Every speaker, checked
Required
Open data access
Not included
Not included
✓
Contact
In-app
Partner call
GitHub issues
Licence signed
Not yet
On request
Open licence

Built by HQ Protocol, with speakers of every language.

Cowrie mosaic in magenta and Volt
HQ Protocol
Builder
Cowrie mosaic in cyan and violet
Native speakers
Members
Cowrie mosaic in magenta and flame
Language reviewers
Wanted
Cowrie mosaic in flame and violet
Data partners
Wanted
Cowrie mosaic in Volt and cyan
Research partners
Wanted
Cowrie mosaic in violet and magenta
Language communities
Benefit-sharing
Built with
Gemma 3
Hugging Face
Cloudflare Pages
Code under Apache 2.0

Fair questions, straight answers.

Q.01

Which models use the tokenizer?

Gemma 3 models today, and Llama 3.1 through a separate pack.

Q.02

Do you train without my consent?

No. A recording is used only as its speaker chose, and Only me never trains anything.

Q.03

How long does review usually take?

A native speaker checks each recording, usually within about three days. Accepted minutes are paid at once.

Q.04

Where is my audio kept?

On your phone, today. Only the details are sent: language, length and choice.

Q.05

What if I change my mind?

Withdraw from the recording's own page. Models already trained cannot forget it; you keep your pay.

Q.06

Is any of it hosted in Africa?

Not yet. Moving it there is on the roadmap.

Closing the premium

The protocol underneath African language AI.

Try the tokenizer, or the demo app today.