Inspiration

Reading is easy. Remembering it is hard.

Rereading feels productive, but retrieval—trying to explain what you just read from memory—is far better for long-term retention.

Most reading apps optimize for finishing faster. Study apps add recall, but outside the reading experience.

Inside Voice puts retrieval directly inside the reader.

What it does

  • Synced narration: Highlights the exact word being spoken. Tap a word to jump audio there.
  • Recall: After a few paragraphs, recall what happened before seeing a summary.
  • Ask the book: AI answers using only text you have already read, preventing spoilers.
  • Speed reading: RSVP mode from 100–1000 WPM.
  • Notes: Save or summarize paragraphs.
  • Customization: Fonts, spacing, themes, margins, voices, and more.
  • Runs on iPhone, iPad, and Mac.
  • Most features work offline with no account.

How we built it

The core is:

timeline: [(word, startTime, endTime)]

Everything follows one rule:

Current playback time determines the highlighted word.

This makes seeking, speed changes, pause/resume, and highlighting reliable.

Built with:

  • Swift 6 + SwiftUI
  • TextKit 2 pagination
  • AVSpeechSynthesizer + AVAudioPlayer
  • Kokoro-82M/CoreML neural voice
  • EPUB parsing written in Swift
  • AI restricted to already-read text
  • 258 core tests

Challenges

  • Creating accurate word-level audio timestamps
  • Preventing the AI from spoiling unread text
  • Making recall useful without constantly interrupting reading
  • Handling Swift 6 concurrency with AVFoundation
  • Keeping huge books fast through lazy loading

Accomplishments

  • War and Peace opens in about 16ms
  • Word highlighting stays synced across seeking and playback speeds
  • Recall works with cloud AI, Apple's on-device model, or no AI
  • 258 tests with zero dependencies in the reading core
  • One app target across iPhone, iPad, and Mac

What we learned

A strong invariant simplifies everything.

For us:

highlight = function(currentTime)

We also learned that interaction order matters: recall first, reveal second.

What's next

  • Test neural voices on real devices
  • Background audio + lock-screen controls
  • Disk caching
  • Voice-based recall
  • Bookmarks, highlights, and search
  • App Store release

Built With

  • apple-foundation-models
  • avfoundation
  • avspeechsynthesizer
  • coreml
  • epub
  • fluidaudio
  • google-gemini
  • ios
  • ipados
  • keychain
  • kokoro-82m
  • macos
  • swift
  • swift-6
  • swift-package-manager
  • swift-testing
  • swiftui
  • textkit-2
  • xcode
  • xcodegen
Share this project:

Updates

Submission history