VoiceMaker

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

ActionWhat it does
explainClarify the meaning of the text for an interested layperson.
summarizeCondense the text to its most important points.
translateTranslate into target_language, preserving tone and nuance.
simplifyRewrite 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).

LanguageCode
Englishen
Yorubayo
Igboig
Hausaha
Nigerian Pidginpcm

Explain text

POST/dev/v1/explain

Requires the TRANSCRIPTIONS_WRITE scope.

Request parameters

ParameterTypeStatusDescription
textstringRequiredThe text to explain, summarize, translate, or simplify. 1–12,000 characters.
languagestringRequiredLanguage code of the input: en, yo, ig, ha, or pcm.
actionstringRequiredexplain, summarize, translate, or simplify.
target_languagestringOptionalOutput language for a translation. Required when action is translate, and must differ from language; leave it out for any other action.
max_wordsintegerOptionalSoft 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
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
  }'
Python
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. 145
JavaScript
import { 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. 145

Response — 200 Success

JSON
{
  "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.