き ききはじめ日本語ききはじめ

标日中级上

标日中级上 → Anki 牌组生成规范

RULE

  • 4对照表
  • 12小节

本文件是生成规范,00_PLAN.md 是方案蓝图,两者配套。所有脚本/数据/产物必须遵守本 RULE。 定稿:2026-09-07


0. 铁律(不可违反)

  1. PDF 是唯一权威源:只从 三圆词汇表.pdf 生成,绝不从 md 笔记生成(md 也是从 PDF 来的)。
  2. 每个字段带 src 标记:src ∈ {pdf, ai, rule, tts},溯源可查。
  3. CardId 稳定不变:是反馈主键,重生成时绝不变化。
  4. 凭证不进任何文档/脚本/git:TTS API Key 等只放 config.local.json,加入 .gitignore。

1. 数据流

Mermaid 图站内不渲染
flowchart LR
    A["PDF 源<br/>(权威)"] -->|"pypdf 提取"| B["词汇数据.json<br/>(主数据·含 CardId/src/page)"] -->|"genanki"| C["标日中级上_词汇.apkg<br/>(产物)"]
    B -->|"TTS"| D["音频/*.mp3"]
    B -->|"导出"| E["卡片索引.tsv"]
    C --> F["Anki 导入"]
    D --> C

2. CardId 规则

  • 格式:L{课号2位}-{圆数}-{序号3位}
  • 课号:01~16(两位补零)
  • 圆数:A1 / A2 / A3(对应 一圆/二圆/三圆)
  • 序号:该词在本课本圆数内的出现顺序(从 1 起,三位补零)
  • 例:L01-A3-012 = 第 1 课三圆第 12 词
  • 稳定性:序号基于 PDF 内出现顺序,只要 PDF 不变,重生成 ID 不变

3. 字段定义(完整清单)

字段内容来源 src必填说明
Lesson课号 01~16pdf✅
TierA1/A2/A3pdf✅圆数
CardIdL01-A3-012生成✅主键/反馈 ID
Word見出し語(汉字优先,无汉字用假名)pdf✅
Kana读音(假名)pdf✅
Pitch声调(⓪~⑨)pdf✅◯ 归一化为 ⓪
Pos词性(标日体系)pdf✅见 §4
Def释义(简体中文)pdf + ai✅A1 无释义时 AI 补
Example例句原文(多句用 ; 合并)pdf + ai⚠️A1 无例句时 AI 补
ExampleFurigana例句振假名(漢字[かな])rule⚠️见 §5
ExampleDef例句中文翻译ai⚠️每条例句一条
Note关联词/反义词(関/対)pdf⚠️只保留日语部分
Audio单词音频文件名 {CardId}.mp3tts⚠️见 §6
ExampleAudio例句音频文件名 {CardId}_ex.mp3tts⚠️见 §6
src溯源标记(dict:字段→来源)生成✅见 §7
pagePDF 页码(该词所在页)生成✅溯源坐标

4. 词性体系(标日)

标日词性说明github 对应
动1五段动词[動1](1=五段)
动2一段动词[動2](2=一段)
动3カ変・サ変动词[動3](3=カ変・サ変)
形1一类形容词(い形容词)[形]
形2二类形容词(な形容词)[形]
名名词[名]
副副词[副]
连体连体词[連体]
连接续词[接]
专专有名词[名]
接辞接头/接尾词[接]
代代词[代]
惯用惯用表达[補]
接续接续助词等[補]
  • 无词性标注的词条:用启发式填充(def 含 ~ → 接辞;短惯用 → 惯用;代词 → 代),仍无法判定标 未标注,进抽查清单。

5. 例句振假名注音规则

  • 注音范围:只对「常用漢字表」范围外的汉字注音;表内汉字(2136 字)不注。
  • 判定标准:日本文化厅常用漢字表2010 改定版。
  • 技术实现:sudachi(或 fugashi)形态素分析 → 取每词读音 → 对「表外汉字」生成注音。
  • Anki 格式:字段内写 漢字[かな],Anki 原生渲染振假名(无需 HTML ruby)。
  • 片假名词:不注音。
  • 例句翻译:每条例句配一条中文翻译,写入 ExampleDef。

6. 音频规则

  • 命名:单词 {CardId}.mp3,例句 {CardId}_ex.mp3。
  • 存放:标日中级上/Anki牌组/音频/ 目录。
  • 引擎(已定 ✅):Azure TTS,voice=ja-JP-NanamiNeural,endpoint=https://eastasia.tts.speech.microsoft.com/cognitiveservices/v1,格式 audio-24khz-48kbitrate-mono-mp3(与 github 音频策略一致:本地 mp3 打包进 apkg)。
  • 合成文本:单词音频合成 Kana(假名读音) 而非汉字形式,保证发音准;例句音频合成 Example 整句,;/; 分隔的多例句替换为 。 读成多句。
  • 凭证:只读 config.local.json,绝不硬编码进脚本。
  • 重生成:音频文件名不变,换引擎只需重跑 P4,卡片无需重导。
  • 断点续传:已存在且 >100 字节的文件跳过(幂等)。
  • 并发/重试:6 线程 + 429/5xx 指数退避。

7. 溯源 src 标记规则

  • 每条词记录一个 src dict,例:

``json {"Word":"pdf","Kana":"pdf","Def":"ai","Example":"pdf","ExampleDef":"ai","ExampleFurigana":"rule","Audio":"tts"} ``

  • 只有 PDF 直接抽出的字段标 pdf;AI 补的标 ai;注音标 rule;音频标 tts。
  • 卡片表面不显示 src,溯源信息只在 JSON + 卡片索引.tsv。

8. 反馈机制规则

  • 卡片背面底部显示 📋 {CardId},用户直接复制。
  • 反馈格式:<ID> <问题类型> <具体内容>
  • 问题类型 ∈ {释义, 例句, 翻译, 词性, 声调, 关联词, 注音, 音频, 其他}
  • 收到反馈 → 读 JSON 定位 → 改该条 → 重生成 .apkg(同 ID,Anki 自动更新)。

9. 分阶段执行规则(Phase gate)

Phase内容通过标准
P1PDF → JSON(含 CardId/src/page)1612 条,抽查 3 课无误
P2AI 补齐释义/例句/翻译A1 词全部补齐,抽查
P3例句注音表外汉字全部注音,抽查
P4音频合成音频文件数 = 单词数 + 例句数
P5生成 apkg + 抽查校对词性/释义异常项清单清零
P6README + 交付反馈约定可跑通
  • 每完成一个 Phase,停下来给用户看产出,确认后再进下一个。

10. github 参考卡片设计(对齐基准,2026-09-07 核对)

已逐行读 deck-source/templates/ 4 模板 + CSS(本地 reference/)。核心结论:我方字段已覆盖其核心层,不必照搬重交互。

维度github 做法我方对齐
正面词+注音 ruby、音调、单词音频、例句列表Word/Kana/Pitch/Audio
背面全假名+音调、词性徽章、简繁释义、补充、例句注音/翻译/音频Kana/Pitch/Pos/Def/Note/Example…/双音频
音频本地 mp3 [sound:] 打进去(词真人 / 例句 VOICEPEAK)Azure TTS 本地 mp3(同思路)
圆数标记标签 N3高频/カタカナ語/オノマトペ/②/[他動1]Tier 徽章(A3红/A2橙/A1灰)+ 词性
反馈JS 跳 GitHub IssuesCardId 直接复制(更轻量)
注音只标常用漢字表外难字按用户要求全文注音(P3)
重交互简繁切换/词典跳转/关联高亮/版本检测第一版不做,聚焦核心学习层

11. 抽查校验清单

  • ☐ 词性异常项(如 なみだ(涙)①【①】 应为 【名】)
  • ☐ 多词联合行(国際連合/国連)是否拆成 2 卡
  • ☐ 乱码中文(GARBLED_RE)是否截断干净
  • ☐ 例句续行是否被误判为独立词条
  • ☐ 圆数过渡切分是否准确(对比笔记 03_词汇.md 圆数分布)
  • ☐ 注音只落在「常用漢字表外」汉字
  • ☐ 音频文件名与 CardId 一一对应