想法
家中有个树莓派一直在跑爬虫,最近淘宝买东西的时候顺手买了个 50 块的 3.5 寸屏幕插上去,然后发现屏幕无法关闭,于是便想拿它来做点什么,反正屏幕的耗电量才 0.5W 。
最近也一直在用薄荷阅读学英语,感觉背单词是学英语里最重要的一环。
于是思路就出来了:
- 把树莓派扔在家中一个会经常路过的地方,每次路过看一眼屏幕能背一下单词
- 还能多挂几个屏幕在家里,譬如用 Zero + 墨水屏,装个电池挂墙上能用很久,甚至还能用闲置的手机
- 多个设备共享阅读进度,只要做个 WebServer 就行了,客户端直接用浏览器就可以跨平台了,也可以额外做个客户端,客户端中导入生成好的单词卡片,不需要包含体积比较大的词库
单词从哪里来?
- 个人感觉,如非考试需要,各种专门的词库对我们都不是很适用,所以近几年才会有各种定制化词库的背单词应用。回到前文,背自己需要使用的单词是更有必要的。什么单词是自己需要使用的?“自己想要阅读的英文图书中包含的单词”是个不错的来源。
- 另一方面,TXT 格式的英文书籍,因为古腾堡计划的存在,很容易找,manybooks 等网站都有海量存货。
如何生成单词卡片数据?
- 有了书籍的 TXT 后,提取单词只是文本分割
- 如何获得每个单词的解释呢?有个很好的开源项目叫做 ECDICT,提供一个很庞大的英汉词典数据库
- 单词卡片按照出现顺序排列,用所在上下文的句子作为例句,顺便还能碎片化阅读书籍
- 在生成单词卡片的时候,可以按照单词是否在 CET4、CET6 等范围内去过滤一下,避免把已经烂熟的单词也加进去。
作品
有了思路之后,做起来还是比较容易的。花了两个晚上把可用的版本做了出来,repo 地址:
https://github.com/lxrmido/WordCards
树莓派运行效果:
界面截图:
然后就是再抽空把需要的其他东西做出来,以及优化了
总结及体会
- 做这个东西,其实最重要的一环就是词库,感谢 ECDICT 的作者 @skywind3000,使得这一环没有障碍
- 做界面用了 canvas,绘制自适应屏幕的文字时因为没想到英文单词的切断问题踩了些坑
- LCD 屏幕的光污染挺严重的,50 块钱的屏幕确实不能指望太多,所以打算看看有没有更好的方案,目前尝试了把闲置的旧手机贴墙上,效果还是不太理想
- 提取符合难度的单词依然很困难,有许多低难度的词汇其实不在 CET 当中,甚至不在柯林斯分级里,目前还是有很多不需要再记忆的单词会被提取出来
- 没有发音,我想要的发音方案是把整段上下文句子读出来,能顺便练练听力,没找到效果比较好的
- 最后就是关于交互的,因为现在用的是树莓派,所以总忍不住想加个几个实体按钮去操作