Show HN:开源早期阅读器,提供语音拼读帮助
Show HN: Open-source early-reading reader with phonics help

原始链接: https://github.com/finereli/yarareads

Yara Reads 是一款免费、无需账号的阅读应用,面向掌握基础拼读法的儿童。故事仅使用孩子能拼读的单词;点按单词会显示字母/声音按钮,并在单词前播放每个声音,而不会朗读整页。故事会逐词对照孩子的已知声音进行检查,npm run check 会对不可用的单词失败。家长或技术用户可以导入或生成书籍,连接 MCP 兼容代理,设置已知声音和难点单词,并跟踪进度。它是一个 Cloudflare Worker,包含静态资源、D1 和 R2,无构建步骤。未登录模式会在本地保存声音和进度;账号使用 finereli 登录或自定义登录。声音文件不包含在仓库中,但拼读块仍会点亮。代码采用 MIT 许可;故事和图片采用 CC BY 4.0 许可。设置包括克隆、创建 D1/R2、迁移、加载词典/故事,以及在启用 Workers AI 的情况下部署。

一篇 HN 帖子宣布了一款开源、免费的早期阅读网页应用,为 6 岁儿童打造:孩子可以点击单词听音素并独立阅读。它包含故事,后续还会增加更多,并支持通过 MCP 连接 AI 助手从 PDF 或扫描件导入个人书籍。评论称赞该项目,但指出局限,包括仅支持英语音素和可能的 Unicode 支持。一位批评者认为音素处理过于简化,有时混用口音,并把常见词标为难词;作者回应这些问题可通过设置和录音修复。另一位用户报告 iPhone/iPad 上没有音频,作者表示将调查。
相关文章

原文

Read it: yarareads.finereli.com - free, no account needed.

A reading app for kids who have just learned their phonics sounds and need something real to read. Every word in a story can be sounded out with the sounds they already know. When they get stuck, they tap the word and its sound buttons appear right there.

I made it for my daughter Yara. She's six and loves glitter, magic and dragons. She'd finished Teach Your Monster to Read and I couldn't find anything for her to read next that was both a good story and made only of words she could sound out. Her big brother Tom wrote the first story, and the app is built so there can be many more.

image
  • The help lives on the word. Tap any word: a dot under single letters, a bar under pairs like "sh" and "ee", an arc joining split vowels like a_e. One speaker button lights each sound in turn, then says the word. It never reads whole pages for them.
  • The checker is the point. Stories are checked word by word against the sounds the child knows, by pronunciation and not just spelling ("cake" fails if the child hasn't learned the split a). npm run check fails a story with a word they can't read.
  • Bring your own books. Connect your own agent (Claude, ChatGPT, anything that speaks MCP) and it writes stories inside your child's sounds, or types in books you own. It checks its own words, adds pictures, and shows you the result. Only your account sees them.
  • You set what your child knows. Switch sounds and tricky words on or off. Words with a sound they haven't learned get a dotted underline and the new sound shows in purple.

It's a Cloudflare Worker with static assets, D1 for data and R2 for pictures. No build step. If you're a tech dad (or mum) with a kid who's learning to read, I'd love you to take this and make it yours.

git clone https://github.com/finereli/yarareads && cd yarareads
npm install
npx wrangler d1 create yara-reads          # put the database_id in wrangler.jsonc, with your account_id
npx wrangler r2 bucket create yara-reads-pictures
npx wrangler d1 migrations apply yara-reads --local
node tools/lexicon-asset.mjs               # the word dictionary the worker uses
node tools/push.mjs --local --inventory --images --owner dev   # load the stories (--owner: books from home, if you have any)
npx wrangler dev

Then npm run deploy when you're happy (edit the routes in wrangler.jsonc for your domain; deploy needs the dictionary step, which the script runs for you).

Things to know:

  • It works signed out. That's the whole app, with the sounds and progress kept in the browser. Accounts (and so agents) use login.finereli.com, which only serves my own apps. To run accounts yourself, swap in your own sign-in: public/login.js and src/verify-login.js are the only files that know about it.
  • The sounds are my voice, recorded for the tiles, and they aren't in this repository. Without them the tiles still light up but stay quiet. Record your own with tools/sounds-record.mjs (see the comment at the top). Words are spoken by Cloudflare Workers AI, so deploying needs an account with that enabled.
  • Write a story: copy content/stories/toby-1.json, edit the pages, run npm run check. It tells you every word your child can't read yet. Never loosen the sounds to make a story pass: rewrite the story. docs/vocabulary.md has the queue of what to teach next.
  • Pictures: docs/illustration.md and tools/illustrate.mjs describe how the illustrations were made.
  • CLAUDE.md explains how everything fits together, for you or your agent.
  • Usage numbers: node tools/stats.mjs.

Code: MIT (LICENSE). Stories and pictures: Creative Commons Attribution 4.0 (content/LICENSE.md), so remix away and credit Yara Reads and the authors. Third-party material: NOTICE.md.

Privacy · Terms

联系我们 contact @ memedata.com