新闻详情

新闻详情

首页 / 资讯中心 / 详情

Echo Loop 间隔复习调度实现全解析:从6小时到28天,以及FSRS记忆调度基础设施

发布时间:2026/9/25 18:55:09来源:尧图网络
Echo Loop 间隔复习调度实现全解析:从6小时到28天,以及FSRS记忆调度基础设施
Echo Loop 间隔复习调度实现全解析从6小时到28天以及FSRS记忆调度基础设施【免费下载链接】Echo-LoopEcho Loop 是一款科学、高效的 AI 英语听说训练 App通过精听、跟读、盲听、复述和间隔复习自动驱动学习者把每一段音频真正练懂、练熟、练到会说。项目地址: https://gitcode.com/echo-loop/Echo-LoopEcho Loop 是一款 AI 英语听说训练 App它的核心能力之一就是间隔复习调度一段音频首学完成后系统会自动安排 7 轮复习从 6 小时后一直排到 28 天后与此同时项目还新建了一套基于FSRS 记忆算法的通用记忆调度基础设施为收藏句子、词汇、意群等内容的科学复习打下地基。本文带你从用户视角和源码视角把这两套记忆引擎一次性讲清楚。一、用户视角复习节奏从 6 小时到 28 天1. 七轮复习排期表为什么是6小时→28天Echo Loop 对每段音频的复习节奏是刻意贴合记忆曲线设计的先密后疏节奏。阶段定义位于 lib/database/enums.dart 的LearningStage枚举其中intervalHours表示距上一轮完成后的等待时长轮次阶段距上一轮等待距首次学习的累计时间1review06 小时6 小时2review118 小时1 天3review224 小时2 天4review448 小时4 天5review772 小时7 天6review14168 小时14 天7review28336 小时28 天对应的取值逻辑见 lib/database/enums.dart#L166-L176。可以看到阶段名review1/review2/review4/review7/review14/review28正是首学后第几天的累计里程碑——先密集巩固再逐步拉长间隔直到 28 天完成最后一轮。2. 下次复习时间是怎么算出来的复习调度不需要复杂算法核心就是一个加法nextReviewAt 上一轮完成时间lastStageCompletedAt 当前阶段间隔intervalHours计算逻辑在 lib/models/learning_progress.dart#L202-L214。围绕这个时间点还有三个贴心的细节设计宽限窗口到点后不是错过就逾期。review0 到点后6 小时内、其余各轮到点后24 小时内补做都不算逾期见 learning_progress.dart#L220-L226。手动解锁等不及点击立即解锁即可提前开始当前轮且不会篡改历史完成时间后续轮次仍按实际完成时间顺延。⏸️暂停学习某段音频可以暂停出复习调度进度完整保留随时原地恢复。3. 每一轮复习做什么复习不是简单重听。每一轮复习阶段都会按学习计划派生若干子步骤主要包括难句补练把精听/盲听中卡壳的句子重新练会、盲听不看文本听全文、段落复述用自己的话复述段落。各轮次的子步骤组合由 lib/models/learning_plan.dart 中的LearningPlan.standard统一管理并采用计划版本快照机制——新版 App 调整了复习子步骤顺序比如 v2 把盲听后置、允许跳过存量音频仍保留创建时的旧计划互不干扰。二、源码视角FSRS 记忆调度基础设施全景固定七轮复习解决的是音频学习计划的调度。但收藏的句子、词汇、意群它们的遗忘速度因人而异固定的第 N 天复习并不够聪明。为此Echo Loop 新建了一套与业务解耦的通用记忆调度基础设施位于 lib/features/memory_scheduler/默认接入业界公认的 FSRS 记忆算法。完整的规划文档见 docs/memory-scheduler-infrastructure-plan.md。1. 分层架构第三方库只许待在一个房间里未来业务句子/词汇/意群/音频计划 ↓ MemoryScheduler应用门面接口 ↓ ↓ 调度 Repository 模型注册表 ↓ ↓ Drift DAO MemoryModelAdapter接口 ↓ FsrsMemoryModelAdapter ↓ package:fsrsdomain/纯 Dart 值对象与接口不依赖 Flutter、数据库和 FSRSapplication/编排用例与事务入口是 memory_scheduler.dartdata/Drift DAO 与数据映射adapters/fsrs/全项目唯一允许导入package:fsrs的位置核心是 fsrs_memory_model_adapter.dart。上层业务永远只见应用自有类型MemorySchedule、MemoryRating等UI 与数据库里不会出现任何 FSRS 第三方类型。2. 四个关键设计决策决策做法好处逐项绑定 Profile每条调度记录固定profileId profileVersion升级算法不重排存量数据独立调度表新建memory_schedulesmemory_review_events两张表句子/词汇/意群/音频共用一套 schema快照 事件历史当前状态快照用于日常查询评分事件只追加既快又可审计、可重放Adapter 隔离FSRS 库严格封装在 adapter 内部未来换算法调用方零改动3. FSRS 参数如何被冻结为了避免依赖升级悄悄改变行为基础设施把fsrs包精确锁定在 2.0.1并把默认 Profilefsrs.default1的全部参数逐项写死在 config/memory_profiles.dart 21 个模型权重与 FSRS 5 版默认值一致期望保持率 90%评分 Good 时下一次复习前记住这条内容的预期概率⏱️ 学习步骤 1 分钟 / 10 分钟重学步骤 10 分钟最大间隔 36500 天 开启 fuzzing到期时间加一点随机扰动打散复习峰值4. 四种评分与间隔预览复习时用户给内容打一个分数——忘记 / 困难 / 好 / 简单对应 FSRS 的 Again/Hard/Good/Easy。界面在展示按钮前会一次性调用previewRatings()拿到四种评分各自的下次到期时间用户可以直观看到选简单能拖多少天选忘记要多久后重学。预览是纯只读计算不写数据库。5. 数据可靠性事务、幂等与并发移动端场景下网络抖动、重复点击、多入口并发都是真实风险。评分提交review()的流程设计得相当严谨短读事务内按operationId做幂等检查——同一次评分动作重试会复用原键不会重复计分算法计算在写事务之外完成纯函数写事务内用revision乐观锁条件更新再在同一事务内插入带dueBefore/dueAfter的审计事件任一步失败整体回滚。对应的数据库结构经过 schema v47 → v48 迁移迁移行为由 test/database/v47_to_v48_migration_test.dart 等测试守护。三、两套调度的关系各司其职固定七轮复习FSRS 记忆调度基础设施服务对象音频学习整体句子 / 词汇 / 意群等记忆项节奏6小时→1天→2天→4天→7天→14天→28天按个人表现动态计算间隔输入阶段完成时间忘记/困难/好/简单 四档评分现状已全量上线基础设施已建成逐步接入业务一句话总结固定七轮保证每段音频都能被完整练熟FSRS 基础设施保证每条记忆都在最容易遗忘的时刻被复习。前者是学习节奏后者是记忆科学二者共同构成 Echo Loop 的复习引擎。想体验这套间隔复习流程或参与讨论实现细节欢迎加入 Echo Loop 的学习社区【免费下载链接】Echo-LoopEcho Loop 是一款科学、高效的 AI 英语听说训练 App通过精听、跟读、盲听、复述和间隔复习自动驱动学习者把每一段音频真正练懂、练熟、练到会说。项目地址: https://gitcode.com/echo-loop/Echo-Loop创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

See-through是Image-to-Live2D吗?官方团队的回答与未来路线图展望 2026/9/25 19:26:15

See-through是Image-to-Live2D吗?官方团队的回答与未来路线图展望

See-through是Image-to-Live2D吗?官方团队的回答与未来路线图展望 【免费下载链接】see-through "Single-image Layer Decomposition for Anime Characters" (SIGGRAPH 2026 Conference Paper) 项目地址: https://gitcode.com/gh_mirrors/se/see-throug…

阅读更多 →
Atlas 300V部署YOLOv5s全流程:从模型转换到多路视频推理 2026/9/25 19:26:03

Atlas 300V部署YOLOv5s全流程:从模型转换到多路视频推理

后台总有朋友在问,标题里的 atlas 到底是什么,网上能搜到一堆叫 atlas 的项目,但只要把“atlas部署yolo”和“atlas 300v 24g 是运算加速卡吗”这两个关键词放在一起,就知道说的是昇腾 Atlas 系列里的 AI 推理加速卡。我最近把 YO…

阅读更多 →
一分钟信创网盘自主搭建(下) 2026/9/25 19:25:50

一分钟信创网盘自主搭建(下)

背景 上期文章咱们讲述了如何把本地文件通过DESK倚天剑的WebDAV网盘功能对外分享。今天咱们来点更高级的,把远程文件通过DESK倚天剑的网盘技术对外分享。强烈建议大家先看一下上期文章,直接看本期文章很容易看糊涂了。 DESK倚天剑的WebDAV网盘 DESK倚…

阅读更多 →
私有部署双链笔记:Docker部署与个人博客搭建实战 2026/9/25 19:25:43

私有部署双链笔记:Docker部署与个人博客搭建实战

简介:这是一款支持私有部署的云端存储双链笔记软件,面向重视数据安全与知识管理的个人用户及开发者,同时集成个人博客功能,可在 Windows、Mac、网页客户端与移动端之间无缝切换。资源包共 1023 个文件,约 23.74MB&…

阅读更多 →
Win11窗口级输入法隔离:程序员高效编码必备设置 2026/9/25 19:25:30

Win11窗口级输入法隔离:程序员高效编码必备设置

1. 项目概述:为什么程序员真的需要“窗口级输入法隔离”你有没有过这种体验:在 VS Code 里敲着 Python 代码,手一滑按了 CtrlSpace,结果弹出的是中文候选框,光标卡在函数名中间;切到 Chrome 写技术文档时&a…

阅读更多 →
SIMPLEX洗脑电音实战:构建批量音频循环与API处理链 2026/9/25 19:25:30

SIMPLEX洗脑电音实战:构建批量音频循环与API处理链

这次我们来看一个音频处理向的题目:SIMPLEX 洗脑电音。简单说,SIMPLEX 式的做法就是把任意一段音频素材快速改造成"循环、重复、强记忆点"的电音片段,让听感在十几秒内被一个 Hook 牢牢粘住。短视频 BGM、广告配乐、游戏提示音、直…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉