用 Gemini Notebook(原 NotebookLM)把一门课的讲义、课件、录音变成一套期末复习包:带引用的学习指南、思维导图、闪卡、测验,再生成一段中文 Audio Overview 通勤时听。教材太大传不上去时,用一个小脚本按页切分。
先看清成品
成品是一个“课程复习”笔记本,包含学习指南、思维导图、闪卡、测验和音频概览。本文附带的
split_pdf.py已用 pypdf 6.21.1 实际测试,3 个测试全部通过:中英文词数统计正确,10 页的测试 PDF 按每份 100 词切成 5 份、页数不丢失,没超限的文件提示直接上传。本文环境没有登录 Google 账号,界面操作没有实际执行,步骤和菜单名称按官方帮助中心编写。
说明:NotebookLM 已更名为 Gemini Notebook,帮助中心和界面都使用新名字,网址为 notebook.google.com。本文按新界面名称编写。
注意:Gemini Notebook 只在官方支持的国家和地区提供,请在可用地区合规使用,不要绕过地区限制。只上传你有权使用的资料(官方帮助中心也这样提示),不要上传盗版教材或别人的付费课程。生成的内容可能出错,答案要点开引用核对原文。
做完之后你会得到什么?
| 成果 | 说明 |
|---|---|
| 课程笔记本 | 讲义、PPT、录音集中在一起 |
| 学习指南 | Studio 里的报告类型之一,可导出到 Google 文档 |
| 思维导图 | 看清章节之间的关系 |
| 闪卡和测验 | 支持简答、多选、填空等题型 |
| Audio Overview | 中文播客式讲解,可选深度、简要、点评、辩论 |
| 切分脚本 | 大 PDF 切成符合上限的几份 |
需要准备哪些环境?
| 项目 | 要求 | 说明 |
|---|---|---|
| Google 账号 | 年满当地规定年龄 | 免费即可 |
| 课程资料 | PDF、PPTX、DOCX、MP3、网址、公开 YouTube 视频等 | 官方帮助中心列出的类型 |
| Python | 可选,3.10+ | 只有需要切分大 PDF 时才用 |
免费版的主要上限:
| 项目(免费 Standard) | 官方升级页面列出的上限(会调整) |
|---|---|
| 笔记本 | 100 个 |
| 每个笔记本的来源 | 50 个 |
| 每个来源 | 50 万词或 200 MB |
| 对话 | 每天 50 次 |
| Audio / Video Overview | 每天各 3 个 |
| 报告、闪卡、测验、思维导图 | 每天各 10 个 |
| Deep Research | 每月 10 次 |
第一步:怎样建笔记本并上传资料?
- 打开 notebook.google.com,选 Create new notebook。
- 在弹窗中选 Upload a source,上传讲义、课件、课堂录音。
- 一个笔记本只放一门课。官方说明每个笔记本相互独立,不能跨笔记本提问。
| 资料 | 建议 |
|---|---|
| 扫描版 PDF | 文字识别效果可能不好,尽量用文字版 |
| PPT | 直接传 pptx |
| 课堂录音 | mp3、wav 都支持,需要老师同意录音 |
| 很大的教材 | 超过上限时先用下面的脚本切分 |
切分大 PDF(可选)
"""把超出 Gemini Notebook 单个来源上限的大 PDF 按页切分。
官方帮助中心:每个来源最多 50 万词或 200 MB。这里默认留余量:每份不超过 40 万词、150 MB。
用法:python split_pdf.py 教材.pdf [--max-words 400000] [--max-mb 150]
"""
import argparse
import io
import re
from pathlib import Path
from pypdf import PdfReader, PdfWriter
def count_words(text: str) -> int:
# 中文按字计,英文按单词计
cjk = len(re.findall(r"[\u4e00-\u9fff]", text))
latin = len(re.findall(r"[A-Za-z0-9]+(?:['-][A-Za-z0-9]+)*", text))
return cjk + latin
def size_of(writer: PdfWriter) -> int:
buf = io.BytesIO()
writer.write(buf)
return buf.tell()
def split(path: Path, max_words: int, max_mb: float):
reader = PdfReader(str(path))
parts, start, words = [], 0, 0
writer = PdfWriter()
for i, page in enumerate(reader.pages):
w = count_words(page.extract_text() or "")
if writer.pages and (words + w > max_words or size_of(writer) > max_mb * 1024 * 1024):
parts.append((start, i - 1, words, writer))
writer, start, words = PdfWriter(), i, 0
writer.add_page(page)
words += w
if writer.pages:
parts.append((start, len(reader.pages) - 1, words, writer))
outs = []
for n, (a, b, w, wr) in enumerate(parts, 1):
out = path.with_name(f"{path.stem}-第{n}部分-p{a + 1}-{b + 1}.pdf")
with open(out, "wb") as f:
wr.write(f)
outs.append(out)
print(f"{out.name}:第 {a + 1}-{b + 1} 页,约 {w} 词,{out.stat().st_size / 1024 / 1024:.1f} MB")
if len(parts) == 1:
print("这个文件没有超出上限,可以直接上传。")
return outs
if __name__ == "__main__":
ap = argparse.ArgumentParser()
ap.add_argument("pdf")
ap.add_argument("--max-words", type=int, default=400_000)
ap.add_argument("--max-mb", type=float, default=150)
a = ap.parse_args()
split(Path(a.pdf), a.max_words, a.max_mb)
pip install pypdf
python split_pdf.py 教材.pdf
本文测试中的输出格式:
book-第1部分-p1-2.pdf:第 1-2 页,约 80 词,0.0 MB
...
注意:官方“50 万词”对中文如何计算没有详细说明,脚本按“一个汉字算一个词”估算并留了余量。上传后如果仍提示超限,把
--max-words调小。
第二步:怎样生成复习材料?
1. 先在对话里摸底
在 Chat 面板输入:
请按章节列出这门课的核心概念,每个概念一句话解释,并标注出自哪份资料。
回答里的数字是引用,鼠标悬停能看到原文,点击跳到原文位置。
2. 设置学习风格
Chat 面板选 Configure Chat,风格选 Learning Guide(适合学习新概念)。官方升级页面说明自定义对话对所有用户开放。
3. 在 Studio 面板生成
| 输出 | 操作 | 用法 |
|---|---|---|
| 学习指南 | Reports → study guide | 三点菜单 Export to Docs 导出 |
| 思维导图 | Mind Map | 点节点可展开追问 |
| 闪卡 | Flashcards | 可以添加或修改卡片 |
| 测验 | Quiz | 做完可以在对话里问“我哪里薄弱” |
| 音频概览 | Audio Overview | 见下一步 |
4. 生成中文音频概览
在 Audio Overview 的设置里:
| 选项 | 建议 |
|---|---|
| 格式 | Deep Dive 深度讲解;时间紧选 The Brief(不到两分钟) |
| 语言 | 选中文 |
| 提示词 | 见下方 |
听众是明天要考试的大二学生。重点讲第 3、4 章容易混淆的概念,每讲完一个概念举一个生活中的例子。
生成在后台进行,可以同时做别的。官方帮助中心说明长度选项(Shorter/Longer)目前只支持英文。
第三步:怎样检查复习材料的质量?
| 检查项 | 做法 |
|---|---|
| 学习指南 | 抽 5 个要点点开引用,对照原文 |
| 测验答案 | 有疑问的题回到讲义确认 |
| 音频概览 | 官方说明主持人是 AI 生成,可能出错 |
| 覆盖面 | 对照课程大纲,看有没有漏章节 |
出问题时该怎么调?
1. 回答“无法回答这个问题”
官方说明对话只基于来源回答,资料里没有的内容会拒答。补充资料或换个问法。
2. 只想针对某一章提问
在 Sources 面板只勾选那一章的资料,再提问。
3. 音频概览内容太泛
在提示词里写清楚听众是谁、重点讲哪部分、要什么风格。
常见问题怎么处理?
| 现象 | 原因 | 解决方法 |
|---|---|---|
| 上传失败 | 超过 200 MB 或 50 万词 | 用 split_pdf.py 切分 |
| 今天不能再生成音频 | 免费版每天 3 个 | 第二天再试或升级 |
| 扫描版识别乱码 | 图片质量差 | 先做文字识别或找文字版 |
| 打不开网站 | 所在地区不支持 | 只能在可用地区使用 |
| 测验太简单 | 默认难度 | 修改题目或在设置里说明难度 |
项目资源
建议先只上传一章的讲义,把学习指南、闪卡、测验、音频概览各生成一次,判断哪些对你最有用。
然后再上传整门课的资料,按“对话摸底 → 学习指南 → 测验查漏 → 音频复习”的顺序准备考试。