跳到正文
原文
Hacker News· zoozla·· 3 小时前精选AI 评分35

开发者为女儿搭建开源拼读阅读应用 Yara Reads

Show HN: Open-source early-reading reader with phonics help

AI 导读

Yara Reads 是一款开源儿童拼读阅读应用,单击任意单词即可逐音节拼读并朗读。故事通过 npm run check 按发音(而非拼写)逐词校验,确保只含孩子已学发音;家长可经 MCP 接入 Claude、ChatGPT 等 Agent 生成新故事并自检。

推荐理由

为刚学拼读的孩子设计,单词按发音拆解并能逐词校验;家长可接入 MCP Agent 在孩子已学发音范围内写新故事。

正文 · AI 翻译

Yara Reads

试读:yarareads.finereli.com —— 免费,无需注册。

面向刚学会自然拼读、需要真实阅读内容的孩子的阅读 App。故事中的每个单词都可以用他们已经掌握的发音拼读出来。遇到不会的词,点一下,字母音按钮就会出现在旁边。

我为女儿 Yara 做了这个应用。她六岁,喜欢亮晶晶、魔法和龙。她已经通关了 Teach Your Monster to Read,我却找不到适合她继续读的下一本书,既要有好故事,又全部用她能拼读出来的词写成。第一个故事由她哥哥 Tom 撰写,应用的结构也便于以后加入更多故事。

image

不同之处

  • 帮助就在词上。点任意单词:单个字母下方有小点,像 "sh"、"ee" 这类字母对下方有小条,拆分元音如 a_e 之间用弧线相连。一个喇叭按钮依次亮起每个音,然后读出整个单词。它不会替孩子整页朗读。
  • 检查器才是关键。故事会逐词对照孩子已学的发音来检查,依据是发音而非拼写(如果孩子还没学过拆分 a,那么 "cake" 就不通过)。npm run check 会在故事中出现孩子读不出的词时判为不通过。
  • 自带书库。接入你自己的智能体(Claude、ChatGPT,任何支持 MCP 的都可以),它就会用孩子已学的音拼写故事,或者录入你自己拥有的书。它会校验每个词、添加插图,并把结果展示给你。只有你的账号能看到。
  • 由你设定孩子已学的内容。可以开关发音和不规则词。含有未学发音的词会出现点状下划线,新发音以紫色显示。

自己运行

它是一个 Cloudflare Worker,包含静态资源,数据用 D1,图片用 R2。没有构建步骤。如果你是懂技术的爸爸(或妈妈),家中有正在学阅读的孩子,希望你把它拿来为己所用。

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

然后 npm run deploy(编辑 wrangler.jsonc 中的 routes 以使用你的域名;部署需要字典步骤,脚本会自动为你执行)。

注意事项:

  • 未登录也能使用。这就是完整的应用,发音和学习进度都保存在浏览器里。账号(以及智能体)使用 login.finereli.com,它只服务于我自己的应用。要自行管理账号,请换成你自己的登录方式:public/login.js 和 src/verify-login.js 是唯一涉及此事的文件。
  • 这些发音是我的声音,专门为字母块录制,并不包含在本仓库中。没有它们,字母块仍然会亮起但保持静音。用 tools/sounds-record.mjs 录制你自己的发音(见顶部注释)。单词由 Cloudflare Workers AI 朗读,因此部署需要开通该功能的账号。
  • 写一个故事:复制 content/stories/toby-1.json,编辑各页内容,运行 npm run check。它会告诉你孩子目前还不能读的每一个词。永远不要为了通过检查而放宽发音设置——改写故事本身。docs/vocabulary.md 列出了接下来要教的内容。
  • 插图:docs/illustration.md 和 tools/illustrate.mjs 介绍了这些插图的制作方式。
  • CLAUDE.md 解释了所有部分的协作方式,供你或你的智能体阅读。
  • 使用数据:node tools/stats.mjs。

许可证

代码:MIT(LICENSE)。故事和插图:知识共享署名 4.0(content/LICENSE.md),尽情改编,并署名 Yara Reads 及原作者。第三方资料:NOTICE.md。

隐私 · 条款

来源:Hacker News · github.com