Reading Buddy
Speak a question about a book chapter and hear a spoken answer
I kept thinking there had to be a better way. Something that already knew my book, already knew my place in it, and could just answer my question so I could get back to reading. So I built it.
Reading Buddy is a voice AI reading companion for classic literature. You select your book, set your current chapter, tap a microphone button, and ask your question out loud. The app transcribes your voice, reasons over the book context, and speaks the answer back. No typing, no explaining context, no spoilers.
The spoiler prevention is architectural rather than prompt-based. Reading Buddy only ever receives the text of chapters you have already read. The model cannot reveal what comes next because it has never been given what comes next. If you are on chapter 4 and ask whether Raskolnikov commits the murder, the companion will tell you honestly that it has not happened yet. Jump to chapter 8 and ask the same question and it answers fully, because now you have read past that point.
It reads with you.
Reading Buddy is what we called the older students who would come to our classroom to sit with younger readers who were still finding their footing. It is a nostalgic name for me. They were patient and kind and helped when we got stuck, without taking over or rushing us along. They were just there.
That is what I wanted to build. Not a tutor, not a summarizer, not a replacement for the book. A companion that is there beside you and ready to help when you need some clarity.
.
The voice pipeline is powered by MiniCPM-O 4.5, an omni model from OpenBMB that handles speech-to-text, reasoning, and text-to-speech in a single unified model. When you speak a question, MiniCPM-O transcribes your voice, reasons over the book context, generates a response, and speaks it back in one pipeline. There is no handoff between separate systems. It just listens and speaks.
The book context is assembled from a hybrid data structure built for each book. Rather than injecting raw chapter text, each chapter is represented as a compact prose summary combined with structured data covering characters, aliases, key events, locations, and cultural references. This was a hard-won insight. The model could barely fit two full chapters of raw text within its context window before quality started degrading. The model would start continuing the story instead of answering questions. The hybrid approach reduces each chapter from roughly 10,000 tokens to around 800 tokens while preserving everything a reader actually needs. I validated this with 12 test questions across every question type a reader might ask and achieved an average score of 8.6 out of 10.
The infrastructure runs on Modal with an A100 GPU. The frontend is a fully custom Gradio app using gr.Server, with no default Gradio components. The design is clean and warm, built to feel like a pleasant reading environment rather than a generic AI tool.
Small models are not a limitation. MiniCPM-O 4.5 at 8 billion parameters handles literary comprehension, cultural context, and natural spoken responses with genuine quality. The omni architecture handles voice input, reasoning, and voice output natively in one model, which makes the interaction feel coherent in a way that a pipeline stitched together from separate models simply would not. It is genuinely impressive what OpenBMB has achieved at this size.
Spoiler prevention needs to be structural. Prompt-based approaches were fragile. The model knew the full book and could be nudged into revealing it. Making spoiler prevention structural, by only injecting chapters the reader has already passed, made it robust by design. The model cannot tell you what it has never been given.
Preprocessing is worth the investment. I used Qwen 2.5 14B to automatically generate chapter summaries and structured character data for all four books. Getting the summarization prompt right took several iterations, including adding a one-shot example from Jane Eyre and requiring the model to walk through every scene before generating. The quality of that preprocessing data is what makes the reading companion genuinely useful.
The four books currently in the library are a starting point. Adding a new book takes only a few minutes to preprocess and have ready to use, so the library can grow quickly. Response latency is the most obvious thing to improve, and a RAG system replacing the hybrid summary approach with vector retrieval is the right long-term architecture for scaling to any book length.
But the core product works today. A warm, voice-first, spoiler-free reading companion that sits beside you as you read.
Reading Buddy is live on Hugging Face Spaces. Select a book, set your chapter, and ask anything.
Demo: https://www.loom.com/share/5a570bc775fe477397aeaf2a5f654c50
Space: https://huggingface.co/spaces/build-small-hackathon/Reading-Buddy-Frontend
Built with MiniCPM-O 4.5 by OpenBMB. Powered by Modal. Hosted on Hugging Face.
โ Jared, June 2026
Speak a question about a book chapter and hear a spoken answer