Record Learn 课程体系最终规划

发布于 2026/6/7

Record Learn 课程体系最终规划

版本:v2.0 | 日期:2026-06-12 | 替代 courses-plan.mdcourse-lrc-mp3.md

>

v2.0 更新:重新规划 4 册课程架构,新增 VOA 节目链接目录,修正 Book 3/4 内容混杂问题。

一、决策审查:VOA 取代新概念英语(NCE)是否合理?

1.1 NCE 不可用的根因

问题详细
版权归属NCE 版权归 Longman/Pearson 所有,课文原文展示、二次分发均属侵权
商业化阻断App Store / 小程序上架 / 订阅收费均会触发版权核查,不可通过审核
授权路径不存在Pearson 不对个人开发者 / 小团队授权,大厂授权周期 6–18 个月,费用不可控
内容陈旧NCE 场景以 1960–80 年代英国生活为背景,大量表达已不自然(如 trunk call、gramophone)

结论:NCE 不可用是事实而非选择。必须找替代方案。

1.2 VOA 作为替代的决策质量检查

维度VOA Learning English新概念英语
版权✅ 公共领域(美国联邦政府作品),可商用、可裁剪、可重发布❌ Pearson 版权所有
资源完整性✅ 每集自带 MP3 + 脚本 + 视频⚠️ 仅有课文文本,MP3 需单独获取(同样涉版权)
音频质量✅ 真人专业录音,各种口音✅ 专业录音(但授权问题)
CEFR 梯度✅ A1→C1 完整覆盖(Let's Learn English L1→American Stories)✅ A1→C1
语法系统性⚠️ 非语法教材设计,需人工遴选 + 重排✅ 精心设计的语法递进
口语真实性✅ 真实对话、新闻、故事⚠️ 部分课文为教材编造,不够自然
文化适配性⚠️ 美国文化语境为主⚠️ 英国文化语境为主
可用集数✅ 200+ 集可自由选择⚠️ 仅 4 册,不可增删

1.3 VOA 的最大短板及补偿策略

短板:VOA 不是语法教材,语法点分布不够系统性。

补偿策略:

  • 人肉遴选:从 52 集 L1 中精选 36 集,按 NCE 1 语法递进重新排序为 6 个单元
  • 知识点层:每课 grammar.points + knowledgePoints 补充系统性语法教学
  • Quiz 验证:每课 3–5 道客观题验证学习效果
  • AI 精讲:学习中实时生成语法解释(/api/ai/explain
  • 长期替代:Book 2–4 同理,L2 选集 + Everyday Grammar TV 填补语法空白

1.4 决策结论

✅ 通过 VOA 全资源线取代 NCE 4 册 = 合理且是最优选择

理由:
1. 版权无风险 — 零审查、零授权、零诉讼,可放心打包 H5 静态资源
2. 资源无死角 — 每课都有真人 mp3 → 直接对接项目 mp3+lrc 结构
3. 梯度可解释 — A1→C1,对标新概念 4 级定位清晰
4. 语法可补 — 通过人工 knowledgePoints + AI 精讲弥补非教材设计短板
5. 维护可持续 — VOA 持续更新,后续可追新内容

二、4 本书体系最终架构(v2.0 重规划)

2.0 设计原则

v1.0 的主要问题:

  • Book 3 内容混杂:将 People in America(人物传记)、Words and Their Stories(习语)、Education Tips(学习方法)三种完全不同类型的节目塞进同一册,缺乏统一的学习主线。
  • Book 4 跳跃过大:从杂乱的 B1-B2 内容直接跳到 American Stories 文学改写 + 新闻长文,过渡不够平滑。
  • 强行对标 NCE:VOA 不是语法教材,按 NCE 语法递进逻辑去排列 VOA 内容是削足适履。

v2.0 设计原则:

  • 每册有清晰的学习主题,而非按 NCE 语法体系强行映射
  • 发挥 VOA 原生优势:真实对话、地道习语、文化语境、新闻听力
  • 语法通过 Everyday Grammar TV 专题补充,而非期待对话课自带系统性语法
  • 统一每册 48 课,便于用户规划学习节奏
  • 实际可落地:优先使用仍在更新、有充足集数的节目

2.1 总体映射

本项目 BookCEFR学习主题主资源课数每课形态
rl-book-1A1–A2🗣️ 会话基础Let's Learn English Level 1(精选 48 集)48情景对话短片 + 词汇 + 理解
rl-book-2A2–B1📝 语法与表达LLE Level 2(30 集)+ Everyday Grammar TV(18 集)48情景剧 + 语法专题
rl-book-3B1–B2📖 词汇与文化Words and Their Stories + English in a Minute + News Words48习语故事 / 词汇短片 + 文化注解
rl-book-4B2–C1🎙️ 深度听力American Stories + 人物/科技/健康专题48短篇小说 / 传记 / 科普长文
rl-starter(Aesop 两课)保留为「经典故事」附录,不占用主线课号。

2.2 为什么这样设计?

Book 1 — 会话基础(A1–A2)
   ↓  学会开口说英语,掌握基本日常对话
Book 2 — 语法与表达(A2–B1)
   ↓  系统补齐语法,能用正确句子表达观点
Book 3 — 词汇与文化(B1–B2)
   ↓  大量输入地道习语、词汇搭配、文化背景
Book 4 — 深度听力(B2–C1)
   ↓  用真实语料(小说、传记、科普)挑战长篇听力

这条路径的核心逻辑是:先敢说 → 再说对 → 再说得地道 → 最后听懂一切。这比强行对标 NCE 的语法递进体系更适合 VOA 的内容特点。

2.3 rl-book-1:会话基础(48 课)

核心资源Let's Learn English Level 1(共 52 集,精选 48 集)
备选资源Let's Learn English with Anna(2022+ 新版,制作更精良,但集数较少)

单元课次主题核心能力
U1 初次见面001–008问候、介绍、告别、问路be 动词、人称代词、Where/What 问句
U2 个人与家庭009–016家庭、社区、爱好、数量there be、物主代词、like + V-ing
U3 日常生活017–024时间、工作、邀约、能力现在进行时、can/can't、at + 时间
U4 计划与过去025–032将来计划、过去经历、讲故事will/be going to、was/were、-ed 规则过去
U5 场景交际033–040购物、问路、礼貌、比较比较级、too/very、would you mind
U6 综合输出041–048建议、情态、综合复述should/must/have to、综合复习
注意:上表中的 L1 集号可能需根据实际遴选调整。旧文档中的 36 课课表(L1.E2–E52)可作为初筛参考。

关于 L1.E1:欢迎视频无对话文稿,不作为正式课。实际可用 51 集,选 48 集。

2.4 rl-book-2:语法与表达(48 课)

核心资源Let's Learn English Level 2(30 集)+ Everyday Grammar TV(18 集)

单元课次对话课语法专题核心语法
U1 工作与学习001–008L2.E1–5Grammar ×3时态复习、现在完成时
U2 旅行与交通009–016L2.E6–10Grammar ×3介词搭配、短语动词
U3 健康与饮食017–024L2.E11–15Grammar ×3数量词、比较级进阶
U4 人际与情感025–032L2.E16–20Grammar ×3条件句(if/when/unless)
U5 社会与文化033–040L2.E21–25Grammar ×3间接引语、情态动词进阶
U6 语法巩固041–048L2.E26–30Grammar ×3被动语态、关系从句、综合练习

每单元结构:5 集情景对话(每个约 5 分钟)+ 3 集语法专题(每个约 2–3 分钟)。

为什么 LLE Level 2 只有 30 集?
VOA LLE Level 2 共 30 集,不足 48 课。补 18 集 Everyday Grammar TV 专题,正好构成「对话 + 语法」搭配。这比 v1.0 只补 6 集语法更充分。

2.5 rl-book-3:词汇与文化(48 课)

核心资源

单元课次主轴内容
U1 日常习语001–012Words and Their Stories ×8 + English in a Minute ×4高频习语、比喻、谚语
U2 商业与职场013–024Words and Their Stories ×8 + English in a Minute ×4职场用语、商务习语
U3 新闻词汇025–036News Words ×8 + Words and Their Stories ×4时事词汇、新闻标题用语
U4 文化深读037–048Words and Their Stories ×4 + English in a Minute ×4 + News Words ×4文化典故、综合词汇复习

为什么这样设计?

  • v1.0 将 People in America(人物传记)放进 Book 3 不合适——传记属于长篇听力,应放到 Book 4。
  • Book 3 的定位是「词汇量爆发期」。B1-B2 阶段最需要的是大量输入地道表达,而非挑战长文。
  • Words and Their Stories 每集约 4-6 分钟,讲解一个习语的文化来源,天然适合做「1 个习语 = 1 课」的单元。
  • English in a Minute 每集仅 1 分钟,News Words 每集约 2 分钟,适合作为调剂/补充。

2.6 rl-book-4:深度听力(48 课)

核心资源

单元课次主轴内容
U1 短篇小说001–012American Stories ×12经典美国短篇故事(O. Henry、Mark Twain 等)
U2 人物传记013–024人物专题 ×8 + American Stories ×4美国总统、历史人物、艺术家
U3 科普世界025–036Science & Technology ×6 + Health & Lifestyle ×6科技新闻、健康科普
U4 故事续篇037–048American Stories ×8 + 综合专题 ×4更多文学故事 + 综合复习

为什么这样设计?

  • v1.0 把 People in America 放在 Book 3 不合理。人物传记是长篇叙事,需要 B2+ 听力水平。
  • American Stories 是 VOA 的王牌节目之一,每集 13-15 分钟、用 1500 词表改写美国文学经典。它天然适合做 Book 4 的主轴。
  • 科普专题(Science & Technology / Health & Lifestyle)对标 NCE 4 的说明文/论述文风格。
  • 注意:People in America 在 VOA 网站上的独立页面似乎在改版后不太容易找到。必要时用 America's Presidents 或 U.S. History 替代。

2.7 与 NCE 的定位对照

NCE 原版Record Learn(VOA 体系)
Book 1对话 → 语法 → 句型操练(144 课)会话短片 + 词汇理解(48 课)
Book 2短文 + 语法关键句型(96 课)情景剧 + 语法专题视频(48 课)
Book 3中长文章 + 写作技巧(60 课)习语故事 + 词汇积累(48 课)
Book 4长篇论述/文学(48 课)短篇小说 + 科普/传记(48 课)
语法教学内嵌于课文,系统递进Everyday Grammar TV 专题补充
版权❌ Pearson 私有✅ 公共领域
音频需单独购买每课自带官方 MP3
现代性1960-80 年代英国2016-至今美国

坦率地说:VOA 体系无法完美复刻 NCE 的语法递进精度——因为 VOA 本来就不是语法教材。但换一个角度,VOA 在听力输入量、口语真实性、文化沉浸感上远超 NCE。这是两种不同的学习哲学:NCE 是"精学语法 → 辅助阅读",VOA 体系是"大量输入 → 语法补漏"。


三、VOA 学习节目完整链接目录 🆕

3.1 视频节目(Video Programs)

节目名称用途Book链接
Let's Learn English - Level 1初级情景对话(52 集)Book 1<https://learningenglish.voanews.com/p/5644.html>
Let's Learn English with Anna新版初级对话(2022+)Book 1 备选<https://learningenglish.voanews.com/p/8326.html>
Let's Learn English - Level 2中级情景剧(30 集)Book 2<https://learningenglish.voanews.com/p/6765.html>
Everyday Grammar TV语法专题视频Book 2<https://learningenglish.voanews.com/z/4716>
English in a Minute1 分钟习语短片Book 3<https://learningenglish.voanews.com/z/3619>
English @ the Movies电影台词学英语补充<https://learningenglish.voanews.com/z/4691>
News Words新闻词汇短片Book 3<https://learningenglish.voanews.com/z/3620>
How to Pronounce发音教学补充(全级别)<https://learningenglish.voanews.com/z/6042>
Let's Teach English教师资源内部参考<https://learningenglish.voanews.com/p/6764.html>
News Literacy新闻素养补充<https://learningenglish.voanews.com/p/6840.html>

3.2 音频节目(Audio Programs)

节目名称用途Book链接
American Stories短篇小说(每集 ~13 分钟)Book 4<https://learningenglish.voanews.com/z/1581>
Words & Their Stories习语故事(每集 ~5 分钟)Book 3<https://learningenglish.voanews.com/z/987>
Arts & Culture文化艺术Book 4 备选<https://learningenglish.voanews.com/z/986>
Health & Lifestyle健康生活Book 4<https://learningenglish.voanews.com/z/955>
Science & Technology科学技术Book 4<https://learningenglish.voanews.com/z/1579>
America's Presidents美国总统传记Book 4 备选<https://learningenglish.voanews.com/p/6766.html>
U.S. History美国历史Book 4 备选<https://learningenglish.voanews.com/p/6353.html>
Education Tips学习技巧补充<https://learningenglish.voanews.com/z/7468>
Ask a Teacher语法/用法问答补充<https://learningenglish.voanews.com/z/5535>
Everyday Grammar(音频版)语法讲解补充<https://learningenglish.voanews.com/z/4456>
As It Is时事短讯补充<https://learningenglish.voanews.com/z/3521>
VOA Learning English Podcast每日播客补充<https://learningenglish.voanews.com/z/1689>

3.3 分级入口

级别链接
Beginning Level<https://learningenglish.voanews.com/p/5609.html>
Intermediate Level<https://learningenglish.voanews.com/p/5610.html>
Advanced Level<https://learningenglish.voanews.com/p/5611.html>

3.4 辅助资源

资源链接
VOA Learning English 首页<https://learningenglish.voanews.com/>
YouTube 频道<https://www.youtube.com/voalearningenglish>
Learning English Word Book(PDF 词表)<https://docs.voanews.eu/en-US-LEARN/2022/06/07/c4dbd6af-5f63-4f28-bc42-0bd175f4e4b4.pdf>
播客订阅<https://learningenglish.voanews.com/podcasts>
RSS Feeds<https://learningenglish.voanews.com/rssfeeds>
⚠️ 注意:VOA 网站在中国大陆可能被墙。脚本 voa-fetch.js 内置 STATIC_HOST_MAP 静态 IP + PowerShell WinHTTP 后备方案。

四、生产管线

3.1 机械化层(脚本自动化,零人工)

plan.json(一课一行)
    │
    ▼
voa-fetch.js          ─→  mp3/(下载音频)
                      ─→  transcript/(抽取结构化台词 JSON)
                      ─→  lrc/(按词数比例生成初版 LRC)
    │
    ▼ (可选优化)
align-lrc.js          ─→  lrc/(ffmpeg 静音检测精调,需安装 ffmpeg)
align-lrc-whisper.js  ─→  lrc/(Whisper 词级时间戳,需安装 whisper,最准)
    │
    ▼
gen-lesson-skeleton.js  ─→  lessons/book1/group1.js(自动生成骨架,句子文本已填好)

3.2 人工层(需手写,每课约 15-20 分钟)

lesson 骨架
    │
    ▼ 人工补充
├─ sentences[].cnText  ← 中文翻译
├─ translation         ← 课文中文概述
├─ knowledgePoints[]   ← 核心单词 / 短语 / 语法点
├─ grammar.points[]    ← 语法讲解 + 例句
├─ grammar.keySentences[] ← 关键句型
├─ quiz[]              ← 3-5 道理解题
├─ summaryQA[]         ← 2-5 道回答复述题
└─ grammarNote         ← 一句话语法说明

3.3 注册层(脚本辅助)

subjects.js update-locally  ← 自动更新 totalLessons
lessons/index.js            ← import book1/group1 + 拼合(人工维护)

五、一课完整制作清单(8 步)

操作耗时
1plans/rl-book-1.json 追加 lesson 行管理员1 分钟
2node voa-full-build.js plans/rl-book-1.json自动30 秒
3lessons/book1/group1.jscnText + knowledgePoints + quiz管理员/AI15 分钟
4核验 lrc 首句与音频对齐(拖进度条验证)管理员2 分钟
5需要时运行 align-lrc.jsalign-lrc-whisper.js 精调 LRC管理员1 分钟
6运行 node voa-full-build.js --update-subjects 更新 totalLessons自动1 秒
7pnpm dev → H5 页面冒烟自测(mp3 播放、LRC 高亮、翻译显示、quiz 作答)管理员3 分钟
8通过后发布

5.2 手工制作模式(全人工,无需脚本)

当你无法运行自动化脚本(如 VOA 被墙、ffmpeg/whisper 未安装),或只想逐课精细打磨时,可按以下流程手工制作一课。


#### 5.2.1 一课需要哪些文件?

文件路径(以 book1 为例)说明
MP3 音频frontend-record-learn/src/static/data/book1/mp3/{id}-{slug}.mp3课文音频,手动下载或用工具抓取
LRC 字幕frontend-record-learn/src/static/data/book1/lrc/{id}-{slug}.lrc句级时间戳,手工打轴或用工具生成
Transcript JSONfrontend-record-learn/src/static/data/book1/transcript/{id}-{slug}.json结构化台词元数据(可选,供参考/归档)
Lesson 数据frontend-record-learn/src/static/data/lessons/book1/group{N}.js前端使用的完整课程对象,含翻译、知识点、quiz 等

#### 5.2.2 手工制作步骤(以 rl-b1-001 为例)

##### 步骤 1:准备 MP3 音频

从 VOA 或其他来源下载音频文件,放到指定目录:

frontend-record-learn/src/static/data/book1/mp3/rl-b1-001-hello.mp3
  • 建议比特率 128kbps,单声道即可
  • 文件名格式:{lessonId}-{slug}.mp3
  • 如果使用 CDN/对象存储,需修改 audioSrc 为完整 URL

##### 步骤 2:制作 LRC 字幕文件

LRC 是纯文本文件,每行一个时间戳 + 一句台词。格式如下:

[ti:Lesson 2: Hello, I'm Anna!]
[ar:Voice of America Learning English]
[al:Let's Learn English]
[by:manual]
[00:01.10]Jonathan: Hey, Pete! Who's your friend?
[00:04.20]Pete: She is Anna. She is new to D.C.
[00:07.12]Jonathan: Where are you from?
[00:08.12]Anna: I am from a small town.

放到:

frontend-record-learn/src/static/data/book1/lrc/rl-b1-001-hello.lrc

打轴工具建议:

  • Aegisub(免费,macOS/Windows):导入 MP3 + 台词文本,手动拖拽打轴,导出 .srt 后转换为 .lrc
  • Whisper(自动化):whisper audio.mp3 --model small --word_timestamps True,然后从输出中提取时间戳
  • 在线工具:如 lrc-maker 等,一边听一边按快捷键标记时间

LRC 格式要点:

  • 时间戳格式:[mm:ss.cc](分钟:秒.百分秒)或 [mm:ss.xx]
  • 元数据标签可选:[ti:] 标题、[ar:] 艺术家/来源、[al:] 专辑
  • 每句一行,按时间升序排列
  • 文本必须与后续 lesson 数据中的 sentences[].text 完全一致(含 speaker 前缀)

##### 步骤 3:编写 Transcript JSON(可选)

此文件用于归档原始台词,供后续 AI 辅助生成参考。格式如下:

{
  "id": "rl-b1-001",
  "slug": "hello",
  "voaUrl": "https://learningenglish.voanews.com/a/lets-learn-english-lesson-2-hello/3113733.html",
  "srcMp3": "https://voa-audio.voanews.eu/vle/2016/02/10/xxx.mp3",
  "title": "Lesson 2: Hello, I'm Anna!",
  "durationSeconds": 48.0,
  "fetchedAt": "2026-06-07T00:00:00.000Z",
  "license": "public-domain",
  "attribution": "Voice of America Learning English",
  "lines": [
    { "speaker": "Jonathan", "text": "Hey, Pete! Who's your friend?" },
    { "speaker": "Pete", "text": "She is Anna. She is new to D.C." },
    { "speaker": "Jonathan", "text": "Where are you from?" }
  ]
}

放到:

frontend-record-learn/src/static/data/book1/transcript/rl-b1-001-hello.json

##### 步骤 4:编写 Lesson 数据对象(核心)

这是最核心的一步,需要手写完整的课程对象。在对应的 group 文件中添加一个 JavaScript 对象。

文件位置:

frontend-record-learn/src/static/data/lessons/book1/group1.js

完整示例(一课):

// group1.js 文件头部公共常量
const B = 'rl-book-1'
const S = 'english'

export const lessons = [
  {
    // ── 基础标识 ──
    id: 'rl-b1-001',                    // 唯一 ID,与 plan.json 一致
    bookId: B,                          // 对应 subjects.js 中 book.id
    subjectId: S,                       // 对应 subjects.js 中 subject.id
    stage: 1,                           // 1=Book1, 2=Book2, 3=Book3, 4=Book4
    order: 1,                           // 课程序号(全书递增)
    group: 'group1',                    // 分组标识

    // ── 展示信息 ──
    title: "Hello, I'm Anna!",          // 英文标题
    subtitle: '你好,我是安娜!',         // 中文副标题
    estimatedMinutes: 6,                // 预估学习时长(分钟)

    // ── 资源路径 ──
    audioSrc: '/static/data/book1/mp3/rl-b1-001-hello.mp3',
    lrcSrc: '/static/data/book1/lrc/rl-b1-001-hello.lrc',

    // ── 逐句文本 + 翻译(必须与 LRC 文本一致)──
    sentences: [
      { text: "Jonathan: Hey, Pete! Who's your friend?", cnText: '乔纳森:嘿,皮特!你的朋友是谁?' },
      { text: 'Pete: She is Anna. She is new to D.C.', cnText: '皮特:她是安娜。她是新来华盛顿特区的。' },
      { text: 'Jonathan: Where are you from?', cnText: '乔纳森:你来自哪里?' },
      // ... 每句都需要 text(英文,与 LRC 完全一致)和 cnText(中文翻译)
    ],

    // ── 课文概述翻译 ──
    translation: '安娜刚搬到华盛顿,在公寓楼下遇到皮特和乔纳森。三人互相介绍...',

    // ── 知识点(建议 ≥ 5 条)──
    knowledgePoints: [
      {
        id: 'kp_b1_001_apartment',       // 全局唯一 ID,建议格式:kp_b{册号}_{课号}_{单词}
        bookId: B,
        subjectId: S,
        type: 'word',                    // 'word' | 'phrase' | 'grammar'
        front: 'apartment',              // 单词/短语正面
        phonetic: '/əˈpɑːrtmənt/',       // 音标
        usPhonetic: '/əˈpɑːrtmənt/',    // 美式音标(可选)
        ukPhonetic: '/əˈpɑːtmənt/',     // 英式音标(可选)
        back: '公寓 (n.) 美式英语 / 英式英语常用 flat',
        examples: [
          { en: 'I am in apartment C2.', cn: '我住 C2 公寓。' },
          { en: 'She moved into a new apartment.', cn: '她搬进了新公寓。' }
        ],
        tags: ['rl-b1-001', 'noun', 'daily']
      }
      // ... 更多知识点
    ],

    // ── 语法说明 ──
    grammarNote: 'be 动词:I am / you are / he-she-it is。本课所有自我介绍都是这个结构。',

    grammar: {
      points: [
        {
          title: 'be 动词的人称变化',
          explanation: '英语中"是"随主语变化:I→am;you/we/they→are;he/she/it→is。',
          examples: [
            { en: 'I am Anna.', cn: '我是安娜。' },
            { en: 'She is new to D.C.', cn: '她是新来华盛顿的。' }
          ]
        }
      ],
      keySentences: [
        { en: 'I am from a small town.', cn: '我来自一个小镇。' }
      ]
    },

    // ── 课后测验(建议 3–5 题)──
    quiz: [
      {
        question: 'Where is Anna from?',
        options: ['A big city', 'A small town', 'Washington D.C.', 'New York'],
        answer: 1,                       // 正确答案索引(0-based,即 options[1])
        explanation: 'Anna 说 "I am from a small town." 所以她来自一个小镇。'
      }
    ],

    // ── 复述问答题(可选,2–5 题)──
    summaryQA: [
      {
        question: 'Who does Anna meet at the apartment building?',
        hint: 'She meets Pete and his friend...'
      }
    ]
  }
  // ... 更多课追加在后面
]

关键约束:

  • sentences[].text 必须与 LRC 文件中的台词文本逐字符一致
  • knowledgePoints[].id 必须全局唯一,建议格式 kp_b{册}_{课号}_{词}
  • quiz[].answeroptions 数组的索引(0-based),不是 A/B/C/D
  • grammar.points[].examplesknowledgePoints[].examples 格式相同:{ en, cn }
  • summaryQA 可选,留空数组 [] 亦可

##### 步骤 5:注册到 lessons/index.js

frontend-record-learn/src/static/data/lessons/index.js 中,确保你的 group 文件已被 import 并拼合:

import { lessons as b1g1 } from './book1/group1'
// 后续新增 group:
// import { lessons as b1g2 } from './book1/group2'
// import { lessons as b1g3 } from './book1/group3'

export const lessons = [...g1, ...g2, ...g3, ...g4, ...s1, ...b1g1 /*, ...b1g2, ...b1g3 */]

##### 步骤 6:更新 subjects.jstotalLessons

frontend-record-learn/src/static/data/subjects.js 中,找到对应 book,更新 totalLessons

{
  id: 'rl-book-1',
  totalLessons: 3,  // ← 每新增一课 +1;全部 36 课完成后改为 36
  // ...
}

#### 5.2.3 快速参考:字段一览

字段类型必填说明
idstring全局唯一,格式 rl-b{册}-{3位序号}
bookIdstring对应 subjects.js book.id
subjectIdstring对应 subjects.js subject.id
stagenumber1-4,对应 Book 1-4
ordernumber全书递增序号
groupstring分组名,如 'group1'
titlestring英文标题
subtitlestring中文副标题
estimatedMinutesnumber-预估学习时长
audioSrcstringMP3 路径或 URL
lrcSrcstringLRC 路径或 URL
sentencesarray[{ text, cnText }]
translationstring课文中文概述
knowledgePointsarray-知识点数组
grammarNotestring-一句话语法说明
grammar.pointsarray-语法详解
grammar.keySentencesarray-关键句型
quizarray-[{ question, options[], answer, explanation }]
summaryQAarray-[{ question, hint }]

#### 5.2.4 手工 vs 脚本对照

维度自动化脚本手工制作
MP3 下载voa-fetch.js 自动下载手动下载放到 mp3/ 目录
LRC 生成voa-fetch.js 按词数比例 + align-lrc 精调Aegisub/Whisper 手工打轴
Transcript自动抓取 VOA 页面解析手工编写 JSON 或跳过
Lesson 骨架gen-lesson-skeleton.js 自动生成手工编写完整对象
中文翻译人工补人工编写
Quiz/知识点人工补人工编写
适用场景批量 10+ 课逐课精磨 ≤ 5 课

六、资产目录约定

frontend-record-learn/src/static/data/
├── subjects.js                     # 学科 → Book 注册(totalLessons 需同步更新)
├── lessons/
│   ├── index.js                    # 总入口:import 各 group 并拼合
│   ├── book1/
│   │   ├── group1.js               # Book 1 第 1–12 课(人工编制)
│   │   ├── group2.js               # Book 1 第 13–24 课
│   │   └── group3.js               # Book 1 第 25–36 课
│   ├── book2/                      # Book 2(后续)
│   ├── nce2/                       # 旧 NCE2 数据(过渡期保留)
│   └── starter/                    # Aesop 寓言(保留)
├── book1/
│   ├── mp3/rl-b1-XXX-slug.mp3     # 音频文件
│   ├── transcript/rl-b1-XXX-slug.json  # 结构化台词
│   ├── lrc/rl-b1-XXX-slug.lrc     # 句级时间戳字幕
│   └── build-report.json          # 最后一次构建报告
├── book2/  ...   # 同结构
├── book3/  ...
└── book4/  ...

七、命名规范

  • book_id: rl-book-N(Record Learn Book N)
  • lesson_id: rl-b<册号>-<3 位序号>,例 rl-b1-001
  • slug: 小写连字符英文短名,例 hello-im-anna
  • 文件命名: {id}-{slug}.{ext},例 rl-b1-001-hello-im-anna.mp3
  • subjects.js: rl-book-1 展示名「Record Learn Book 1(新概念1 平替)」

八、质量验收标准(DoD)

每课上线前必须通过:

检查项标准
MP3 404
LRC 404
跨域失败
首句对齐音频开始 1.5 秒内首句 LRC 高亮出现
抽检精度任意 10 句,LRC 高亮与人声误差 ≤ 300ms
拖动恢复拖进度条后,高亮句 1 句内恢复同步
文本一致性sentences 文本 = transcript.lines 文本 = LRC 文本
翻译完整性每句 cnText 均已填写
知识点覆盖≥ 5 条 knowledgePoints
Quiz 质量≥ 3 题,每题 4 选项,答案正确,解释明晰

九、上线节奏(v2.0 更新)

批次内容课数预计
Batch Arl-book-1 U1–U3(001–024)24当前阶段
Batch Brl-book-1 U4–U6(025–048)24紧随
Batch Crl-book-2 U1–U3(001–024)24后续
Batch Drl-book-2 U4–U6(025–048)24后续
Batch Erl-book-3 U1–U2(001–024)24后续
Batch Frl-book-3 U3–U4(025–048)24后续
Batch Grl-book-4 U1–U2(001–024)24远期
Batch Hrl-book-4 U3–U4(025–048)24远期
总计:4 册 × 48 课 = 192 课。每批次 24 课,共 8 批次。

十、已知不一致与处理(v2.0 更新)

问题处理
VOA L1.E1 是 Welcome 视频,无对话文稿不作为正式课。Book 1 共 51 集可用,选 48 集
旧文档将 Book 1 称为 rl-starter已统一为 rl-book-1,rl-starter 仅指 Aesop 附录
已上线 Aesop 两课保留在 rl-starter → 作为「经典故事」附录,不占用主线课号
旧 NCE2 数据(96 课)过渡期保留,available: true 供现有用户继续使用;后续逐步迁移到 rl-book-2
VOA IP 被墙voa-fetch.js 内置 STATIC_HOST_MAP 静态 IP + PowerShell WinHTTP 后备
People in America 在 VOA 新版网站上独立页面不明显Book 4 人物单元用 America's Presidents 或 U.S. History 替代
v1.0 规划的 Book 3 混杂三种节目类型v2.0 统一为「词汇与文化」主题,人物传记移至 Book 4

十一、未来方向(v2.0 更新)

  • [ ] Book 2–4 的 plan.json:照 Book 1 模板,为每册编写 plans/rl-book-N.json
  • [ ] Book 1 遴选最终定稿:从 51 集 LLE Level 1 中选定 48 集,确定每集对应的单元和课号
  • [ ] transcript → lesson 骨架生成器gen-lesson-skeleton.js):从 transcript JSON 直接输出已填好 sentences、source 的 lesson 模板
  • [ ] AI 辅助补 cnText / quiz:把 transcript JSON 喂给 LLM,输出中文翻译 + 5 道客观题 + 3 个知识点,人工校对后入库
  • [ ] 管理后台 GUI:表单对应 plan JSON 字段,提交后服务端跑脚本推产物到 git
  • [ ] 发音模块:将 How to Pronounce 系列作为全级别贯穿的发音练习补充
  • [ ] 自动化质量检查脚本:跑每课 MP3/LRC 可用性、对齐精度、数据完整性
  • [ ] Book 3/4 内容定期更新:Words and Their Stories、Science & Technology 等节目持续更新,可定期追新内容入课
Record Learn 课程体系最终规划 | RecordLearn