我哥和嫂子是很好的父母,但讲睡前故事这件事,他们自己都承认不行。孩子四岁,刚上学,每晚都要一个新故事。到了第三晚,故事又变成"从前有一只……狗?"的时候,那个卧室里所有人都知道,这事撑不下去了。
于是我给他们做了 Nightjar。
![]()
它是一个睡前故事机,跑在他们自己的笔记本电脑上。最后这半句,是我在别处找不到的东西。动手之前我查过:GitHub 上有好几个睡前故事生成器,有一两个甚至能克隆父母的声音。但没有一个会问:这个故事,讲成功了吗?
孩子点一张图,故事就开始了
孩子点一张图片,或者直接说出今晚想听什么。家里那台笔记本上的开放模型把故事写出来,可以短可以长。模型外面有一道护栏,在任何人听到之前逐字检查一遍。然后一个离线声音把故事读出来,配着为这个故事专门生成的轻柔摇篮曲,读到哪里,哪个词就亮起来。一章讲完,一句"The end. Goodnight."收尾。
其他故事生成器跳过的那一步在这里:孩子睡着之后,大人点一下。一个表格模型根据这几分钟的情况,决定明天的故事该多长、节奏多快、多安静。
浏览器版能试,真东西在笔记本上
关于网页版得先说清楚:它会下载 Gemma 3 270M,没有 WebGPU 的话是 550 MB,在一台没有 GPU 的笔记本上,一个故事要跑好几分钟。它放在那里,只是让你能试一下。
真正的东西是笔记本上的那个盒子:nightjar serve 把同一个页面放到 127.0.0.1 上,在那里,一个短故事从写到配音大约三分钟,长故事大约四分半。这两个数字是我在 Chrome 里对着真实模型掐的表,不是估的。
整个流程可以拆成几件事:
- 孩子用图片或一句话点题
- 笔记本上的开放模型负责写,长短可选
- 模型外的护栏逐字检查,之后才有人能听到
- 离线声音朗读,配专属摇篮曲,逐词高亮
- 孩子睡着后大人点一下,表格模型决定明天的长度、节奏和安静程度
为什么非要跑在笔记本上
我哥和嫂子不是技术用户,他们只是每晚都要面对一个四岁孩子的人。把模型放在他们家里那台笔记本上,意味着这个故事从生成到朗读,都不需要把孩子的睡前时刻传到别的地方去。护栏在模型外面,读之前先过一遍;声音是离线的;摇篮曲是为这一个故事现做的。
这些选择加在一起,指向的其实是同一件事:让一个每晚都会发生的场景,能自己转起来,不用大人临时编,也不用大人临时救场。
至于效果,那个表格模型会替他们记住——今晚这个故事,孩子是几分钟睡着的。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.