TianTianSpeak 文档

文档/AI 协同

怎么使用 AI 制作 collections

题库只是 JSON,AI 很擅长写。你给素材,它排版成题库文件,你校验、导入、试读。全程不需要写代码。

四步做出一个题库#

  1. 准备素材

    课文、文章、古诗、词表、绘本文字,粘贴给 AI 就行。只用你有权使用的内容;给别人分发时,在 credit 里注明来源。

  2. 复制提示词,发给 AI

    把下面的提示词连同素材一起发。AI 会输出一个 JSON 文件。

  3. 校验

    把输出存成 xxx.json,用 Schema 检查(或直接让能运行代码的 AI 帮你查)。

  4. 导入试读

    App 的「题库管理」选这个文件导入,到「朗诵题库」里打开读一篇。报错就把错误原文发给 AI,让它改。

提示词:整理成题库#

这份提示词把格式要点都放在里面,所以对不能联网读网页的 AI 也有效。把最后的「素材」换成你的内容。

提示词
你是 TianTianSpeak 口语练习 App 的题库制作助手。请把我给的素材整理成一个题库 JSON 文件,只输出 JSON,不要解释,不要 Markdown 代码围栏。

格式规则:
1. 根对象字段:id(英文小写加连字符,如 "tang-poems",只含字母数字和 ._-,≤64 字符)、name(题库名)、description(一句简介)、language("zh" 或 "en")、category(一级分类)、tags(字符串数组,层级用 / 分隔,如 "主题/古诗")、items(数组,≥1 条)。
2. items 里每条一篇文章:id(在本题库内唯一,如 "01")、title(标题)、text(正文,必填,保留原文换行与标点,不要增删改字)。
3. 可选字段:pinyin(仅中文:每个汉字一个带调拼音,用空格分隔,个数必须与正文中的汉字个数完全相同,标点不算;拿不准就不要写)、translation(译文,中文文章放英文译文,英文文章放中文译文)、align(诗词用 "center")。
4. 不要写 audio(我没有音频地址),不要编造任何网址、来源或字段。
5. 不认识的字段一律不要加。

素材:
(在这里粘贴你的文章;告诉 AI:语言是中文还是英文、分成几篇、是否要拼音和译文)

示例输出(你应该拿到类似的东西):

tang-poems.json
{
  "id": "tang-poems",
  "name": "唐诗小集",
  "description": "两首适合低年级的唐诗",
  "language": "zh",
  "category": "古诗",
  "tags": ["主题/古诗"],
  "items": [
    {"id": "01", "title": "春晓", "align": "center",
     "text": "春眠不觉晓,处处闻啼鸟。\n夜来风雨声,花落知多少。"},
    {"id": "02", "title": "静夜思", "align": "center",
     "text": "床前明月光,疑是地上霜。\n举头望明月,低头思故乡。"}
  ]
}

进阶:带配图、小标题的文章#

绘本、分级读物需要图片和小标题,要用 article 文件。让 AI 写之前,先把 collection-article.schema.json 一并发给它,并加一句:

提示词(追加)
请按下面的 JSON Schema 输出一个 *.article.json(type 必须是 "article"),
正文放进 contents;图片只引用我给的文件名,写在 images 表里(src 用相对路径,alt 写描述)。
行内只能用 **粗体** 和 *斜体* 两种标记。

[在此粘贴 collection-article.schema.json 的内容]

如果文章不需要拼音和译文,也可以让 AI 直接写 Markdown:把上面第二行换成「正文写成 Markdown,放进 markdown 字段(标题用 #,段落之间空一行,图片单独一行 ![描述](文件名))」。导入时会自动转成内容块,规则见 用 Markdown 写正文。

文章文件做好后,在题库里用 {"article": "路径/xx.article.json"} 引用,多个文件可以打成 zip,见 打成一个 zip。

进阶:让 Claude Code、Codex 这类编程 AI 批量做#

素材有几十上百篇、放在一个文件夹里时,让能读写文件的 AI 直接干:

提示词(编程 AI)
读取 ./raw/ 下的所有 .txt(每个文件一篇文章,文件名是标题),
按 https://www.tiantianspeak.com/docs/schemas/collection-set.schema.json 的规范,
生成 ./out/my-bank.json。要求:每篇 id 用两位序号;language 为 "zh";
正文原样保留,不要改字;生成后用 jsonschema 校验,并把错误修到通过为止。

能联网的 AI 可以直接读这个 Schema 网址,也可以把 Schema 文件下载下来放在工作目录里。五个 Schema 都在 https://www.tiantianspeak.com/docs/schemas/ 下:collection-set、collection-article、collection-package、collections、catalog。

常见的坑#

拼音个数对不上,整条拼音被忽略

每个汉字一个拼音,标点不算,个数必须相同。AI 常在多音字、轻声、儿化音上出错,或者把「一」「不」的变调写成两种。办法:让 AI 逐句输出并自查个数;写完用脚本核对。拿不准的文章宁可不带拼音。

check_pinyin.py
import json, re, sys
for it in json.load(open(sys.argv[1]))["items"]:
    if "pinyin" in it:
        n = len(re.findall(r"[一-鿿]", it["text"]))
        m = len(it["pinyin"].split())
        if n != m:
            print(f'{it.get("id")} {it.get("title")}: 汉字 {n} 个,拼音 {m} 个')
AI 悄悄改了原文

古诗、课文最怕这个。提示词里已经写了「不要增删改字」,导入后仍要抽读几篇核对。也可以用 diff 对比素材和 JSON 里的 text。

id 变了,以前的练习记录丢了

「已练 N 次」「隐藏已读」靠 id 挂记录。更新题库时,题库 id 和每篇 id 都要保持不变;加文章只追加新 id。

AI 编了音频网址或字段

audio 只能是真实可访问的 mp3 / m4a / m3u8 网址。没有就别写,由 App 本机合成示范。不认识的字段会被忽略,但不要留着,容易让后来的人误会。

英文题库的 language

英文文章写 "language": "en",打分才会逐词进行;不写时 App 按正文推断,混合文章可能判错。

想把几个题库放进一个有分组的题库包,或者自己搭在线索引,见 题库包 和 索引。任务也可以让 AI 帮你写:用 AI 制作 tasks。