让 AI 听孩子讲故事
项目纪实 · THE MAKING
The Making of Tell Me a Story
在一次以儿童为主题的黑客松中,一个从线下讨论里形成的想法,被做成了能够听故事、生成绘本和装扮的 AI 原型,最终得票进入 Top 5。比完成一个网站更曲折的,是确定 AI 应当做多少,以及怎样把孩子留在创作的中心。
2026 年 10 月 12 日 · 依据项目记录整理
图 1|制作过程中留存的故事小岛界面。访客人偶身上的配饰关联绘本,孩子可以先浏览作品,再开始自己的讲述。本文界面均为项目留存截图,所示角色与内容不代表真实儿童账户。
一条蓝色纸船,卡住了《星语精灵》的绘本生成。
故事要求它翻过来。船翻覆、湿透,角色用树枝把它引向岸边,最后抱着湿船回家。这个过程并不复杂,绘图模型却一次次画出一条正放的船。画面里有柔软的兔子、浅水和小屋,颜色温和,形象完整,唯独故事中发生过的那件事没有发生。
在留存的质量记录里,主绘图模型连续六次画错了这个状态,横跨首次运行和一次显式重试。之后的一次重试切换了备用模型,才得到通过审核的画面。
船的方向,关系到这个产品最初的约定:孩子讲出的情节,不能在生成过程中悄悄消失。
2026 年 10 月 11 日,《星语精灵》参加了以 AI for Kids 为主题的 Ship it Sunday #014 黑客松。它的英文名是 Tell Me a Story。孩子向屏幕里的人偶讲述,系统把原话整理成绘本,再从故事中提取元素,做成可以穿戴的衣服和配饰。作品能够被收藏,也能经确认后进入小岛,供其他人浏览。
这个想法在当天上午的线下交流中逐渐形成。9 时至 10 时 23 分,项目制作者与其他参赛者讨论;10 时 23 分,他把想法写成提示词发给 ChatGPT,随后进入密集的规则澄清、原型制作和迭代。项目最终得票进入 Top 5。
得票是这次交付的结果。怎样走到这个结果,工作记录呈现出一条并不平直的路线:先研究儿童如何与 AI 交互,再同时探索几个方向;产品成形后,继续修改谁先说话、谁能改故事、奖励怎样给,以及一个人偶究竟需要二维还是三维。
在这条路线里,制作者反复设定边界,AI 助手不断生成方案、界面、代码和素材。文章依据这些留存记录,以及制作者对线下讨论和最终成绩的补充,回到产品形成的过程。
一 成年人习惯的界面,孩子也会习惯吗
最早的选题讨论发生在比赛前两天。
10 月 9 日下午,制作者向 AI 提出一个开放请求:围绕 AI for Kids 做调研,列出灵感、值得解决的问题,以及可以做出来的东西。活动介绍把问题概括为一句话:“如果 AI 是为孩子设计的,它可以是什么样?”
第一轮讨论收敛到两个方向。一个是 Teach instead of learn,让孩子通过教 AI 一遍来掌握知识;另一个围绕创造力,思考面向孩子的 AI 课程或创作工具。两者都试图增加孩子的主动参与,但制作者很快把问题推向了操作本身。
成年用户熟悉聊天框,知道输入一段话后按发送,知道结果不对时换一种说法。制作者在讨论中提出,这些看起来普通的动作,建立在成年人长期使用互联网产品的经验上。儿童未必拥有同样的认知储备。
“我们如何从一个小朋友的角度,直接重新思索人与 AI 的交互逻辑到底是什么样子的?”他在当天傍晚的消息中问。
几分钟后,童话绘本进入讨论。如果要邀请孩子点击一个对象,或者开始讲故事,屏幕应该怎样回应?除了出现一个对话框,能否通过故事中的对象、动作和变化,让孩子知道系统听到了什么?
交接稿曾用一幅假想场景说明这个问题:纸片小人站在河边,孩子指着树,让它弯下来,变成过河的路。系统要先让孩子看清它理解的是哪棵树,再呈现变化。如果孩子指错了,或者决定不过河了,也应有办法改变结果。
这不是一次真实儿童观察,而是设计者提出的推演。它把反馈拆成了三个层次:收到动作、理解意图、产生后果。对象闪一下,或许能说明系统收到了操作,却不能自动说明系统理解正确,更不能说明孩子知道自己怎样改变了结果。
进入 10 月 10 日,项目暂定面向十二岁以下儿童,设备仍未确定。制作者先要求比较机制,随后明确暂停原型推进,转向学术与战略研究。
机制稿保留了三种路径:指着对象提出改变,用材料的空间关系摆出想法,或者通过动作轨迹和顺序演示意图。分镜板可以切换接收、误解、纠正和结束等状态,供成人比较。这些响应来自固定脚本,尚不能回答真实模型是否理解,更不能代替儿童测试。
研究也没有给出“去掉聊天框就更适合儿童”的结论。语音降低了打字要求,但孩子仍要知道什么时候说、系统听到了什么、听错以后怎么办。图标可以减少阅读量,也可能藏起操作含义。生成结果更精美,并不等于孩子在其中作出了更多决定。
这组区分后来贯穿了制作过程。项目逐渐关注的,是孩子能否在作品里找到自己的贡献,能否拒绝建议,能否指出一幅画不对。非聊天式交互是探索的起点,孩子对内容和节奏的控制成为更具体的设计目标。
二 想法在几条路线之间形成
《星语精灵》并非从第一份选题清单里直接跳出来的答案。
在它形成前后,项目同时探索过睡前童书、音乐启蒙、教中学、社会情境学习和户外游戏。不同分支的研究与制作相互交叠,没有留下一张按顺序淘汰候选项的决策表。
10 月 10 日深夜提出的 Moonlit Stories,沿着家庭睡前阅读展开。家长选择希望孩子接触的知识概念,系统准备故事,孩子再从中挑选。制作者希望生成结果成为童书式的交互动态漫画,甚至接近一段短小动画,而非停留在文字。
这条路线后来反复修改生成时机和叙事范围。故事应该在家长提交后准备好,孩子打开时就能阅读;实时延伸的分支需要收束,否则故事难以结束。最终采用的是预生成的有限故事树。对动态画面的要求也越来越具体:环境在动还不够,角色本身要有动作。
Little Motif 则从孩子的哼唱出发,希望把一段旋律转成音乐和随声音变化的画面,再引向真实的古典音乐片段。它经历了从技术工作台到儿童界面的调整,也从简单配器和多个音轨,转向一次生成完整混音。
但一个已知音阶揭示了它尚未解决的问题。测试材料先上行、后下行,听觉模型却把它标为下行,还改变了乐句划分。音频已经生成,播放链路可以工作,哼唱形状是否被保留却没有通过质量门槛。
Teach to Learn 把儿童放在解释知识的位置,Socializer 讨论社会情境中的选择、后果和换位理解,“一起出去玩吧”研究如何促进儿童户外活动。这些分支形成了不同程度的研究和原型,不能因为最终没有成为路演主线,就被改写为未曾发生的工作。
10 月 11 日上午,制作者与其他参赛者的线下讨论补上了数字记录之外的一段。根据他事后的补充,讨论从 9 时持续到 10 时 23 分,Tell Me a Story 的想法在这段交流中形成。具体是谁提出了哪一个细节,现有材料没有逐句记录。
10 时 23 分发出的提示词,已经包含一个相对完整的构想:一个像洋娃娃一样的 AI 陪伴角色,听孩子讲虚构故事或自己的经历;每次讲述整理成绘本供回顾;随着故事增加,角色获得新的装扮。世界观创建与装扮最初被列为两项外围机制。
此后,工作转为制作者与 AI 助手之间的逐项问答。首轮原型暂按六至八岁设计,演示主要面向成人。讨论很快从“可以做哪些功能”,进入“这些功能会让孩子处于什么位置”。
三 “你怎么确认孩子认可这是我的故事”
这个故事产品首先需要决定,什么时候轮到 AI 开口。
如果孩子说得很少,系统还要不要生成?制作者选择仍然生成,并把内容不足看作引导方式需要改善的信号。一次互动有没有发生、孩子贡献了什么、孩子是否认可最后的作品,开始被分开讨论。
“问题是,你怎么确认孩子认可这是我的故事呢?”制作者问。
由此,阅读页面必须容纳反对。孩子看见图片后,可以说“我觉得这是不对的”,再提出修改。生成结束不意味着孩子的决定权也随之结束。
上午 10 时 36 分,制作者明确要求绘本忠实于孩子的原表述,不随意编剧情。紧接着,他把权限划得更细:环境设定可以由 AI 提供,关键情节不能直接由 AI 决定。
这项约束也限定了人偶的角色。它可以通过灵感提供一个入口,却不能在孩子讲述过程中不断提问。首版最终确定为:孩子明确讲完后,系统提供一轮可以跳过的主动引导;补充或跳过之后进入绘本预览,再由孩子发起修改。
由谁决定讲完,是一个容易藏在技术实现里的问题。系统如果把沉默视为结束,一次停顿就可能触发追问;如果模型不断续写,孩子则容易变成下一段内容的选择者。原型把这个决定留给了孩子,后来用明确的“讲好了”按钮承接。
在这里,陪伴没有被设计为持续不断的对话。制作者在记录中提出,持续性可以来自不断增加的绘本和自定义装扮。人偶等待,作品积累,孩子有机会回来回顾和修改。
上午的规则还没有解决全部困难。到了傍晚,生成的书有时只是一个场景,情节不够连贯,制作者又允许 AI 在保留原始情节的基础上扩充背景。最初的忠实要求并未被取消,它被重新解释为:孩子已经作出的选择必须保留,组织故事所需的过渡可以由系统补足。
这一变化使产品不必在逐字照搬与任意代写之间选一个极端。但它也增加了实现负担:系统必须分得清,哪些来自孩子,哪些是自己加进去的。
四 让孩子愿意再来,奖励该怎样给
能够讲故事,并不等于孩子会主动来讲。
下午 1 时 23 分,制作者指出现有路径里的一个前提:产品似乎只在孩子已经想讲故事时有用,可孩子为什么会产生这个念头?
小岛由此进入设计。孩子可以先看到别人的人偶和装扮,从一件吸引自己的配饰打开它背后的故事。制作者举例:“你这双月亮小鞋的故事是什么呀?”一双鞋同时成了外观、作品线索和阅读入口。
故事与装扮的绑定,改变了原来书架和衣橱分开的安排。两套收藏开始合并:衣服保存着故事,故事又能被穿在人偶身上。每个浏览器空间拥有自己的小岛,一部分访客可以固定,其余按天更新。
这套社区没有实时聊天。浏览别人的人偶、配饰和公开绘本,成为主要交流方式。系统预制故事承担首次进入时的内容供给,以“小岛故事”的小字标注来源;即时聊天、岛屿装修和多世界观编辑没有进入本期范围。
作品公开也让私有讲述与展示内容必须分开。原始表达保存在私有记录中,绘本则生成一个匿名化、童话化版本。孩子需要确认是否公开,也可以自己收藏。公开与隐藏获得同样的奖励。
奖励经历了数轮修改。早期方案讨论过累计进度、逐步提高的要求,以及不同稀有度。制作者随后发现,进度一旦呈现出来,孩子很容易从中推知这次故事是否“讲得好”。奖励与评价因此难以分开。
下午 2 时 02 分,规则被重新拆成两层。只要讲故事,就生成基础服装,基础服装不设稀有度;额外的头饰、项链或腕饰,作为更丰富表达细节触发的 bonus。它们占据独立位置,不替换孩子已经得到的衣服。
实现中进一步要求,额外奖励依据的细节必须来自孩子自己的原话。AI 提供的灵感或后来扩写的内容,不能算成孩子的贡献。保存后的奖励也不会因为重复点击、重试或修正而再次发放。
这种设计试图保留一次讲述之后的确定回报,同时让颜色、数量、形状和比喻等细节获得回应。但它是否真能鼓励表达,还是会让孩子只盯着更稀有的配饰,项目尚未用儿童研究给出答案。奖励分档是原型规则,不能直接成为表达能力量表。
图 2|后期服装选择流程的本地演示截图。制作者取消了额外口述修改环节,改为直接展示三款选择。图中数据用于检查界面交互,不是一次现场儿童生成。
到了傍晚,服装选择又被简化。早先可以口述修改两次的流程,改成直接看三款、试穿、选一件。规则的增加与删除同步发生,产品没有沿着功能越多越好的方向一直扩张。
五 一间房间,以及半小时的三维试验
在真正像一个产品之前,《星语精灵》先经历了对界面的否定。
制作者认为早期页面偏实用,没有充分考虑孩子打开应用后应当看到什么。他要求做一版高保真、可供讨论的双端 HTML 原型,暂时不接入实际生成。
AI 助手制作了“故事小屋”。房间背景、人偶、按钮和浮层被分开组织:背景中央留给角色,上方留给提示,书架和衣橱叠上可点击的入口。静态人偶通过网页里的小幅旋转、缩放和位移,呈现待机、倾听与回应。早期换装实际是替换另一张透明人偶图,并非一套完整的骨骼与服饰绑定系统。
图 3|早期“故事小屋”原型。房间、书架与衣橱承担功能入口,人偶图片由网页动画驱动。这一版使用预设故事和状态,供讨论视觉与流程,尚未接入实际录音和生成。
这版原型的价值在于,讨论可以从文字转向一次实际操作。孩子从哪里开始讲,补充信息在哪里出现,绘本怎样打开,衣服怎样穿上,都可以在屏幕上被指出来。它不证明真实模型已经听懂,也不证明儿童能够独立使用。
下午 3 时 42 分,制作者要求减少文字,优先用符合直觉的图形。八分钟后,他又反馈:“我是说文字太多了,现在文字又太少了,起不到引导作用。”
这次来回没有产生一条“儿童界面必须无文字”的结论。最终采用的是图形入口配短提示:导航可以由图标承担,需要解释下一步时仍保留文字。用户进入人偶页就能讲述,不再需要绕进独立的二级入口。
随后,视觉方向发生了一次短促的转弯。下午 4 时 17 分,制作者提出把人偶、配饰和小岛换成三维模型与动画,改善装扮的吸引力。4 时 49 分,他要求回退二维,同时保留半透明灵感气泡与直接触摸角色打招呼的交互。
图 4|当天短暂尝试的三维人偶页面。该路线随后退役,源码另存;最终主产品回到二维。记录未明确给出足以认定性能或成本为回退原因的证据。
三维试验留下的,是一个清楚的版本边界。不能因为它曾经运行,就把它列为最终产品能力;也不必把撤回解释成某个未被记录的技术失败。制作者保留了自己认可的交互,继续在二维人偶上增加呼吸、眨眼和点击回应。
新手路径也被重新安排。第一次进入先看地图,再点示例人偶身上的稀有配饰,打开绘本。读完之后出现“喜欢吗?讲讲你自己的”,然后才进入起名、选择初始服装和自己的角色房间。初始衣服被保存,但不算讲故事获得的奖励。
下午 5 时 33 分,制作者进一步要求,生成前的补充与等待都留在角色房间,不再硬切到新页面。绘本完成后翻开第一页,读完合书,再回到房间试穿。
这些调整把分散的功能接成一个连续场景。后台可以经历许多状态,孩子面前的角色却不必因此不断消失。房间承担倾听、等待和回应,绘本只在准备好后打开。
六 画得出来,与画对了之间
视觉原型之外,真实服务已经承担起转写、生成、存储和恢复。
项目用网页前端组织界面,通过 Cloudflare 上的服务调用文字、插画、语音识别和朗读模型。数据库保存故事与任务,媒体存储保存图片和声音,队列处理生成。密钥留在服务端,生成任务拥有固定编号,刷新后继续跟进同一份任务;失败时保留输入和已完成步骤,允许从原入口重试。
这些机制处理的是创作中不显眼却具体的风险:网络中断会不会让原话丢失,重复保存会不会多发奖励,公开的人偶编号能不能被用来读取私有故事。验收记录包含实际模型调用、访问隔离检查,也包含预录音频模拟麦克风后进入真实录制、上传和识别的链路。
但服务能够跑完,并不能保证书已经做好。
傍晚 6 时 16 分,制作者指出,部分生成结果不连贯,有的甚至只是一个场景,图片逻辑也有问题。他要求至少三页,具备起承转合,并允许在保留孩子原始情节的基础上扩充背景。
另一条分支 Moonlit Stories 的经验在此进入主产品。它对角色目标、行动、后果和逐页分镜的组织方法被借用,教学目标与有限分支树则没有一并搬过来。
新规范要求先规划故事,再生成每页图片。角色外观和重要道具需要连续,每页记录当时在场的人物、地点和物件状态;尚未登场的物件,不能因为后文会出现,就提前进入画面。孩子明确讲出的事件、顺序、关系、感受和结局属于固定事实,系统补充的背景与过渡另行记录。
蓝纸船的测试把这套规则推到了图片上。正文需要翻船,模型却持续给出正放的船。若顺着图把文字改掉,生成流程或许更容易结束,孩子的原意却会被反向改写。
图 5|早期固定情节样例的第二页。画面没有准确呈现要求的翻覆状态,被保留为失败分析材料。图片精美与情节忠实在这里是两项不同的检查。
图 6|后续样例的第二页,蓝纸船呈现翻覆状态。质量记录显示,该页在显式重试中启用了备用绘图模型;单个样例通过,并不代表所有故事都能保持同样质量。
后续检查因此要求审核模型先描述实际看见的人物、道具、动作和空间位置,再与分镜核对。重画时把姿势、遮挡和接触关系写得更具体;如果连续失败,则在有限重试范围内切换备用模型。审核仍须对照原先通过的情节,不能修改故事来迁就错误图片。
最终四页样例基本保留了同一只穿绿背带服的兔子,也保留了纸船翻覆、湿透和被带回的顺序。人工逐页观察仍记录了残余问题:第三页的船离岸尚有距离,末页湿纸的外形偏硬挺。图片通过审核,并未消除继续核对的必要。
另一处问题来自一条貌似体贴的提示。晚上 7 时 17 分,制作者把页面文字贴回对话:“今天的制作材料用完啦。你的故事已保留,明天再继续。”
所谓“材料”,实际是旧版硬编码的全站供应商调用上限:300 次。文字、图片、审核、重试和语音都消耗同一个计数,研发测试也在其中。它与一个孩子讲了多少故事没有直接对应关系。
修复把上限改为可配置项,当前原型关闭这项全站限制,保留使用计数和任务内有限重试。随后一次独立真实调用使计数达到 301,证实越过旧门槛。原先被挡住的故事仍保留原稿与进度,等待用户从原入口重试,没有被直接标为已完成。
这条提示与画错的船,暴露了同一种需要追问的地方:屏幕上显示了什么,与系统实际做成了什么,可能并不一致。
家长查看页提供了另一个核对入口。它把原始讲述、主动补充与最终绘本放在一起,显示实际记录到的创作和阅读活动,从孩子自己的原话里摘出表达亮点。AI 补写的内容不计为孩子的亮点。
图 7|家长查看页的合成数据演示,左侧保留原稿与补充,右侧展示绘本。图中并非真实儿童资料;当时的页面也尚未建立独立家长身份认证。
家长可以对读过的公开故事举报或在当前空间屏蔽,但这些功能也有明确边界:举报只是收到一条记录,不等于全站下架;页面沿用同一浏览器空间,不构成成熟的家长权限系统。
七 Top 5 之后,哪些问题仍然没有答案
产品的收尾与路演制作同时发生。
10 月 11 日傍晚,制作者重写路演大纲,将家长与孩子的问题分开表述:家长一侧,“AI 说得太多,孩子说得太少”;孩子一侧,“我有故事,不知道讲给谁听”。这两句话是项目选择的定位,工作记录没有一组访谈或问卷足以把它们写成已经证实的普遍需求。
18 时 52 分,产品中文名由“给我讲个故事”改为“星语精灵”,英文名保持不变。此前保存的部分文件仍使用旧名,留下了更名发生在制作后段的痕迹。
路演本身也经过删改。制作者要求用整体体验解释产品,把“被倾听、被关注、被看见”放到引文或副标题的位置,主体直接呈现人偶、讲述、绘本、装扮和小岛的关系。单独的功能页与定价页被删除,随后加入“今日即可体验 Ship Today”。最后形成九页主讲、两页问答,以及讲稿、演示说明和独立网页。
图 8|最终路演材料中的“今日即可体验”页。九页主讲之外另有两页问答;订阅价格曾出现在方案讨论中,但最终独立定价页被删除,付费业务并未因此被视为已经落地。
两支视频分别承担解释产品与展示操作的任务。产品介绍片使用已有美术与界面重新编排动画,配上阿里云 TTS 中文旁白、字幕和配乐。原速 52 秒,经过多次节奏调整,网页使用的是约 43.3 秒的一点二倍速版本。另一支约 121 秒的操作演示,通过网页录制和 HTML 动效剪辑展示功能。
操作片里的核心转写、生成与奖励采用合成演示数据,举报和屏蔽在隔离本地账户中完成。真实生成能力另有调用和验收材料支持。两支视频都保存了制作源文件和检查记录,随后各自进入独立播放页面。选手群介绍文案和人偶举牌图也在这一阶段完成。
根据制作者补充,《星语精灵》最终取得得票 Top 5 的成绩。
但投票反馈与儿童使用效果仍是不同层次的结果。现有材料没有给出真实儿童的长期使用、留存或能力变化,也没有证明家长愿意为它付费。它证明的是,一个围绕儿童表达提出的方案,在比赛期间形成了可运行原型、完整展示材料,并获得进入得票前五的反馈。
还有一些问题,需要在下一次打开页面时继续观察。孩子能否不用成人解释就找到麦克风?系统听错后,孩子能否理解怎样纠正?匿名化处理是否足够可靠?孩子第二天回来,是想再讲一段经历,还是只想拿一件更漂亮的装扮?
这些问题无法仅靠更精致的插画回答。项目最初追问的是,儿童能否以自己的方式控制 AI;最后留下的界面,仍然有文字,仍然有按钮,也仍然依赖成年人尚未完成的验证。
蓝纸船最终翻过来了。那本测试绘本的结尾保留着湿船与一点遗憾,没有因为模型更擅长画一个完好的物件,就改写成另一种结局。
在角色房间里,孩子可以按住麦克风讲一段,松开,再补充。人偶等待,直到“讲好了”被明确按下,下一步才开始。
经历研究、线下讨论、制作、返工和交付,这个项目把“让 AI 倾听”的主张,落实在了这些细节里。它们能否被真实的孩子理解和使用,将决定《星语精灵》在一次比赛之后还能走多远。
资料说明:本文依据 2026 年 10 月 12 日归档的工作记录、原始指令、项目文件和验收材料整理,时间均为北京时间。10 月 11 日 9:00—10:23 的线下交流与最终得票 Top 5,由项目制作者在本轮写作中补充。本文未补写现场对话,也未将成人演示或比赛得票解释为儿童使用效果。
图片说明:八幅图片均来自项目留存材料,原样使用;各图分别标明原型、退役试验、真实生成样例或合成数据演示。界面状态对应当时版本。
关于作者 · ABOUT THE AUTHOR
何志恒
项目发起者、资料提供者。首尔大学计算机工程背景,曾在米哈游从事预研项目运营。本文基于其项目记录和事实补充,由 AI 辅助整理成稿。