Explain (LLM)
Leverage AI language models to explain, summarize, translate, and simplify text in supported Nigerian languages. Explain is synchronous — the response contains the processed text directly, with no job to poll.
Actions
| Action | What it does |
|---|---|
explain | Clarify the meaning of the text for an interested layperson. |
summarize | Condense the text to its most important points. |
translate | Translate into target_language, preserving tone and nuance. |
simplify | Rewrite in simpler, clearer language while preserving the meaning. |
Languages & codes
Explain is a text/LLM feature, so — unlike the speech modules — every Nigerian
language stands on its own, and Igbo (ig) is live today (even where TTS and
ASR still list it as coming soon).
| Language | Code |
|---|---|
| English | en |
| Yoruba | yo |
| Igbo | ig |
| Hausa | ha |
| Nigerian Pidgin | pcm |
Explain text
Requires the TRANSCRIPTIONS_WRITE scope.
Request parameters
| Parameter | Type | Status | Description |
|---|---|---|---|
text | string | Required | The text to explain, summarize, translate, or simplify. 1–12,000 characters. |
language | string | Required | Language code of the input: en, yo, ig, ha, or pcm. |
action | string | Required | explain, summarize, translate, or simplify. |
target_language | string | Optional | Output language for a translation. Required when action is translate, and must differ from language; leave it out for any other action. |
max_words | integer | Optional | Soft target for response length in words, 1–1000. Default 250. |
max_words is a soft target, not a hard cap
The response lands close to the requested length and always finishes its
sentences — it is never truncated mid-thought. Billing meters the model's real
token usage (tokens_used), so the same max_words costs more credits_used
for Nigerian languages (yo, ig, ha) than for English, whose tokenizer is
more compact.
curl -X POST https://api.myvoicemaker.ai/dev/v1/explain \
-H "Authorization: Bearer vmk_live_a1b2c3d4e5f6_8h9i0jKLmnOPqrSt" \
-H "Content-Type: application/json" \
-d '{
"text": "Èkó ní gbogbo ìgbà tí a bá rí àwọn olùkùnrin méjì...",
"language": "yo",
"action": "translate",
"target_language": "en",
"max_words": 250
}'from myvoicemaker import VoiceMaker
client = VoiceMaker(api_key="vmk_live_a1b2c3d4e5f6_8h9i0jKLmnOPqrSt")
result = client.explain.process(
text="Èkó ní gbogbo ìgbà...",
language="yo",
action="translate",
target_language="en",
max_words=250,
)
print(result.result) # processed text
print(result.tokens_used) # e.g. 145
print(result.credits_used) # e.g. 145import { VoiceMaker } from "myvoicemaker";
const client = new VoiceMaker({ apiKey: "vmk_live_a1b2c3d4e5f6_8h9i0jKLmnOPqrSt" });
const result = await client.explain.process({
text: "Èkó ní gbogbo ìgbà...",
language: "yo",
action: "translate",
target_language: "en",
max_words: 250,
});
console.log(result.result); // processed text
console.log(result.tokens_used); // e.g. 145
console.log(result.credits_used); // e.g. 145Response — 200 Success
{
"requestId": "8f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f",
"id": "explain_1a2b3c4d5e6f7g8h9i0j",
"action": "translate",
"language": "yo",
"result": "In Lagos, whenever we come across two men...",
"tokens_used": 145,
"credits_used": 145,
"created_at": "2026-03-03T10:30:00Z"
}action and language echo your request — language is always the input
language, even for a translation (the translated text is in result). result
is plain prose, with no markdown or preamble.
Billing
Explain bills 1 credit per token, metered on the model's real usage
(tokens_used), from your purchased credits only. The estimated cost is
reserved up front and settled to the exact usage once the response is ready — you
are never charged more than the reserved amount. If your purchased balance is too
low, the request fails fast with 402 and insufficient_credits before any work
starts.