Your books, read aloud with the best AI voices.
Import any EPUB. Pick a voice. Tap play.
A simple iOS app that reads EPUB books out loud using ElevenLabs text-to-speech. Words are highlighted in real-time as they're spoken — like a personal narrator that follows along with you.
- 🎧 AI-powered narration — natural voices from ElevenLabs, not robotic TTS
- 🔦 Live word highlighting — see exactly what's being read, word by word
- 📚 Import any EPUB — open files from iCloud Drive, Files, email, anywhere
- 🎨 Themes — light, dark, sepia, or match your system
- ⏩ Speed control — 0.8x to 2.5x playback speed
- 🔊 Background audio — keep listening with the screen off
- A Mac with Xcode 16+
- An iPhone running iOS 17+
- An ElevenLabs API key — get one here (free tier works)
That's it.
git clone <this-repo> epub-reader
cd epub-reader
brew install xcodegen # if you don't have it
xcodegen generateopen EPUBReader.xcodeproj- Select the EPUBReader target in Xcode
- Go to Signing & Capabilities
- Pick your Personal Team (your Apple ID works — no paid developer account needed)
- Xcode will auto-create a provisioning profile
- Plug in your iPhone via USB
- Select it as the run destination in the toolbar
- Hit ⌘R (or the
▶️ button)
💡 First time? Your phone will say "Untrusted Developer." Go to Settings → General → VPN & Device Management, find your profile, and tap Trust.
- Open the app → tap the ⚙️ gear icon
- Paste your API key
- Tap Load Voices and pick one you like
- Import a book — tap the + button on the Library screen and pick an
.epubfile - Start reading — tap a book to open it
- Play narration — tap anywhere to show controls, then hit
▶️ - Select text to read from — long-press to select text, then tap "Speak from Here"
- Change voice/theme/speed — use the controls overlay or ⚙️ settings
📕 Need a free EPUB to try? Project Gutenberg and Standard Ebooks have thousands.
| UI | SwiftUI (iOS 17) |
| EPUB rendering | Readium Swift Toolkit 3.7.0 |
| TTS | ElevenLabs API (eleven_flash_v2_5) |
| Audio | AVAudioPlayer with rate control |
| Project gen | XcodeGen |
EPUBReader/
├── Models/ # Book data models + persistence
├── Views/ # Library, Reader, Settings screens
├── Services/ # ElevenLabs API, audio playback, EPUB parsing, Readium
└── Helpers/ # TTS highlight positioning
- ElevenLabs free tier gives you ~10,000 characters/month — enough for a few chapters. The app caches audio locally so replaying sections doesn't cost extra API calls.
- No paid Apple Developer account required. Free provisioning profiles last 7 days — just re-run from Xcode when they expire.
- Background playback works. Lock your phone and the narration keeps going.
This is a personal project I built because I wanted a Speechify-like experience without the subscription. Sharing it in case others find it useful.

