写完英文听写助手之后,我以为”老爸牌学习工具”系列可以告一段落了。结果儿子三年级开始,语文老师发了一张又一张的字词表——”会认”的、”会写”的,每个单元十几二十个生字,拼音、笔顺、组词……比英语单词还难搞。
于是,汉语听写助手来了。同一个配方,不同的科目。
缘起
小学语文的听写,跟英语听写有一个很大的不同:你需要念的是词语的中文,但考查的是字形。”灿烂”——儿子知道是什么意思,但”灿”字的火字旁写得对不对?”烂”字右边是不是”兰”?这些细节只有动笔才知道。
英语听写还能用发音提示(比如念”apple”),但汉语听写本质上是看拼音写汉字,或者看释义默写词语。这就要求工具不仅要”念题”,还得支持字词的类型分类和拼音辅助。
有了英文听写助手的底子,这次上手快了很多。核心逻辑复用,重点新增了几个汉语特有的功能。
它长什么样?
字词管理:Excel 一键导入 + OCR 识别
这是汉语听写助手最大的亮点。老师的字词表通常是 Word 或 PDF,我整理成 Excel 后一键上传——字词、拼音、类型(会认/会写)自动解析入库。
还支持图片 OCR 识别:拍一张课本生字表的照片,系统自动提取字词和拼音,省去手动打字的麻烦。当然,OCR 偶尔会把”士”认成”土”,做个校对就好——总比从头敲一遍快。
听写练习:两种模式,针对性训练
和英文版类似的流程:选书本 → 选单元 → 设数量 → 开始听写 → 自己批改 → 查看结果。
不同的是,汉语听写多了“正常听写”和”错题本听写”两种模式。正常模式覆盖全部字词,错题本模式专攻之前的薄弱点。每次听写都有计时,批改时逐个对比自己写的和正确答案,自己标记对错——这个设计从英文版延续下来,因为”自己批改”本身就是一次巩固。
会认 vs 会写:字词类型标记
小学语文的字词分为“会认”(read)和”会写”(write)两类。会认的字只要能读出来就行,会写的字必须能正确书写。系统支持按类型筛选和练习——期末复习时,专攻”会写”的那批字,效率高多了。
错题本:连续答对 3 次自动毕业
和英文版一脉相承的设计:每次听写答错的字词自动进入错题本,连续答对 3 次自动移除。不搞复杂的间隔复习算法,就用最朴素的标准——真正记住了才放你走。
管理员后台
老师或家长可以在后台查看所有学生的听写统计、字词量、正确率趋势,也可以管理用户账号。虽然目前只有一个用户(我儿子),但架构上已经支持多用户了。
和英文听写助手有什么不同?
- 字词类型:新增”会认/会写”分类,支持按类型筛选练习
- 拼音辅助:每个字词附带拼音,听写时可以显示拼音提示
- OCR 识别:拍照识别字词表,减少手动录入工作量
- Excel 解析增强:支持”字词、拼音、类型”三列表头自动匹配
技术栈
和英文版共用同一台腾讯云轻量应用服务器,技术选型基本一致:
| 技术 | 用途 |
|---|---|
| Node.js + Express | 后端 API |
| MariaDB | 数据存储 |
| 原生 JS + CSS | 前端(单文件 SPA,无框架) |
| Caddy | 反向代理 + 自动 HTTPS |
| PM2 | 进程守护 |
| 腾讯云 OCR | 图片文字识别 |
| xlsx | Excel 文件解析 |
同样没有 React/Vue,没有构建工具——就是最朴素的 HTML + CSS + JS + Express,一个周末搭完,又一个周末打磨。
写在最后
英文听写助手 + 汉语听写助手 + 错题本,三个小工具跑在同一台 2 核 2G 的服务器上,共用一套 Caddy + PM2 + MariaDB 基础设施。每个都是给儿子量身定做的,没想到写着写着就成了一个小生态。
做这些工具最大的收获不是代码本身,而是陪儿子学习的过程。每次他说”爸爸,我今天用你写的那个练了听写”,比我收到 star 还开心。
如果你也是家长,或者想给自家孩子做一个类似的东西,欢迎参考思路。代码暂不开源(写得比较随意😄),但技术栈和架构都在上面了。
P.S. 域名 chinese.sfumes.cloud 可以直接访问体验。

发表回复