# Story Read Aloud: The Lighthouse Keeper

> Example: a short graded story read aloud with a narrator and two character voices. Shows how to turn a class reader into listening audio.

Canonical: https://zenmic.com/convert/reading-passage-to-listening-audio/story-read-aloud/
Last updated: 2026-11-14

🌊 A2–B1 · Story

A class reader comes alive when the characters have their own voices. Paste the story with a narrator and character names.

## Script

3 speakers · 6 lines

Narrator

Every night for forty years, old Martin climbed the stairs of the lighthouse and lit the lamp. One stormy evening, there was a knock at the door.

Ana

Hello? Please, can I come in? My boat hit the rocks.

Martin

Come in, come in. You're wet through. Sit by the fire.

Narrator

The young woman was shaking. Martin gave her a blanket and a cup of hot tea.

Ana

Thank you. I saw your light. Without it, I don't know where I'd be.

Martin

That's what it's for. Forty years, and you're the first person who ever said thank you.

Want your own version? The AI writes a fresh script and casts a voice for every speaker. [Make a New One Like This →](https://zenmic.com/studio/?template=esl-listening-dialogue&topic=Read+a+short+graded+story+aloud+with+a+narrator+and+a+separate+voice+for+each+character%2C+A2+to+B1+level)

'; return; } if (!seen[who]) seen[who] = colors[count++ % colors.length]; var c = seen[who]; out += '

' + '' + '

' + esc(who) + '

' + '

' + pills(text) + '

'; }); return out; }; // Show a script in an element the Studio way, keeping the plain text for copy buttons (data-raw) window.zmShowScript = function (el, script) { if (!el) return; el.setAttribute('data-raw', String(script || '')); el.className = 'rounded-2xl border border-stone-200 bg-white shadow-sm p-2 sm:p-3 space-y-0.5 text-left'; el.innerHTML = window.zmScriptLines(script); }; document.addEventListener('click', function (ev) { var copy = ev.target.closest('[data-copy]'); if (copy) { var el = document.getElementById(copy.getAttribute('data-copy')); navigator.clipboard.writeText((el.getAttribute('data-raw') || el.textContent || '').trim()).then(function () { var t = copy.textContent; copy.textContent = '✓ Copied!'; setTimeout(function () { copy.textContent = t; }, 1800); }); return; } var gen = ev.target.closest('[data-studio-script]'); if (gen) { var box = document.getElementById(gen.getAttribute('data-studio-script')); try { var txt = (box.getAttribute('data-raw') || box.textContent || '').trim().replace(/^s(\d):/gm, function (m, n) { return (['Alex','Sam','Maya','Leo'][n - 1] || ('Speaker ' + n)) + ':'; }); localStorage.setItem('zenmic_prefill_script', txt); localStorage.setItem('zenmic_prefill_title', gen.getAttribute('data-title') || ''); } catch (e) {} var q = new URLSearchParams(); if (gen.getAttribute('data-template')) q.set('template', gen.getAttribute('data-template')); if (gen.getAttribute('data-lang')) q.set('lang', gen.getAttribute('data-lang')); window.open('/studio/' + (q.toString() ? '?' + q.toString() : ''), '_blank', 'noopener'); } });

## What Makes This Work

- ✓A narrator plus a voice for each character
- ✓Graded language for A2 to B1
- ✓Short enough for one lesson
- ✓Paste your own reader the same way

## More Examples

[😴 B1 · Science Reading Retold as an Interview: Why We Need Sleep A reading text about sleep becomes a short radio interview with a scientist.](https://zenmic.com/convert/reading-passage-to-listening-audio/article-retold-as-interview/)

[← All Turn a Reading Passage Into Listening Audio](https://zenmic.com/convert/reading-passage-to-listening-audio/)

## Make Your Own Version

Change the names, the product or the situation. The AI rewrites it and voices every speaker.

[Make One Like This →](https://zenmic.com/studio/?template=esl-listening-dialogue&topic=Read+a+short+graded+story+aloud+with+a+narrator+and+a+separate+voice+for+each+character%2C+A2+to+B1+level)
