Text to Speech API for E-Learning and Course Narration
Consistent instructor voice across every slide, chapter, and language edition. 32 languages, 43 voices, single REST endpoint.
Why it matters.
Human narrators break voice consistency on script revisions
When a compliance update changes 10 slides out of 200, a human narrator re-records those 10 with slightly different mic placement, room tone, and delivery. AI narration is deterministic: the same text, same voice ID, same acoustic character, always.
Localization triples production cost with human voice actors
Audexum generates a French, German, Spanish, and Japanese edition of your course by passing the translated script with lang changed. The voice count (43 voices) and price schedule are identical regardless of language.
LMS platforms need file-based audio, not an embedded player
Audexum returns a binary WAV or MP3. Store it in S3, Cloudflare R2, or your LMS asset library directly. No iframe embeds, no third-party player dependency, no outbound CDN request from the learner's browser at playback time.
Rapid course iteration needs batch generation
Script edits happen late in production. A Python loop over your JSON slide data regenerates all changed slides in minutes. The Batch page in the Audexum dashboard handles CSV-based bulk synthesis without writing code.
First audio in 60 seconds.
No SDK. One POST request, binary audio in the response body.
"""
Generate narration audio for every slide in a course manifest.
manifest.json: [{"id": "s01", "lang": "en", "text": "Welcome..."}, ...]
"""
import json, pathlib, requests
API = "https://audexum.com/api/synthesize"
KEY = "sk_..."
slides = json.loads(pathlib.Path("manifest.json").read_text())
out_dir = pathlib.Path("audio")
out_dir.mkdir(exist_ok=True)
VOICE = "F1" # consistent voice across all slides
for slide in slides:
dest = out_dir / f"{slide['id']}_{slide['lang']}.mp3"
if dest.exists():
continue # skip already-rendered slides
r = requests.post(
API,
headers={"Authorization": f"Bearer {KEY}"},
json={
"text": slide["text"],
"voice": VOICE,
"lang": slide["lang"],
"format": "mp3",
},
timeout=60,
)
r.raise_for_status()
dest.write_bytes(r.content)
print(f"Rendered {dest.name}")
print(f"Done: {len(slides)} slides.")Full parameter reference: audexum.com/docs. Formats: wav, mp3, ogg. Voices: F1 to F5, M1 to M5 (43 voices total). Languages: 33.
No per-use-case surcharge.
Every plan covers every use case at the same credit rate. Pack credits never expire, and dictation uses the same balance.
Full pricing details- Free
- €0
- 2,000 + 250/day
- Creator
- €12/mo
- 480,000 / mo
- Pro
- €29/mo
- 1,200,000 / mo
- Scale
- €49/mo
- 4,000,000 / mo
- Business
- €149/mo
- 15,000,000 / mo
- Credit packs
- €7
- 250,000, never expire
Questions, answered.
Can the same voice narrate in multiple languages?
How do I keep narration in sync after a script edit?
What output format do LMS platforms expect?
Is there a no-code option for instructional designers?
Tools and guides for this use case.
Same API, every use case.
One endpoint handles Discord bots, podcast narration, e-learning courses, accessibility audio, and newsletter editions.