单词跟读生成器(Word Readalong TTS)
这个 skill 解决什么痛点
背单词最大的痛点是「眼睛盯着屏幕/书本看」:
- 通勤路上看手机伤眼又晕车
- 跑步/健身时无法看屏幕
- 长时间盯单词本眼睛酸胀
- 「能看不能读」— 看着眼熟,听到不会
单词跟读生成器 把单词列表转成「英文单词 → 中文释义」的 MP3,每个单词独立朗读,闭眼听就能复习:
> urbanization → 城市化 → infrastructure → 基础设施 → ...
每天 10 个单词 × 30 天 = 300 个核心词汇,通勤 15 分钟搞定。
何时触发本 skill
| 触发关键词 | 用户真实意图 |
|---|---|
| 「单词朗读 MP3」「背单词音频」 | 把单词表转成音频 |
| 「艾宾浩斯复习音频」「听单词复习」 | 用音频配合艾宾浩斯复习 |
| 「雅思单词 MP3」「托福/四六级单词」 | 各类考试单词朗读 |
| 「通勤背单词」「跑步背单词」 | 场景化需求 |
| 「单词跟读」「单词带读」 | 跟读训练 |
核心能力
- 单词+释义朗读:英文单词 → 中文释义,按指定间隔分开朗读
- 艾宾浩斯复习音频:按 1 天/2 天/4 天/7 天/15 天间隔生成不同复习包
- 自定义间隔:单词间停顿 1-3 秒可调,便于跟读
- 多声音选择:晓晓(温柔)、晓依(知性)、云扬(男声)等
- 语速控制:单词朗读可设 -5%(稍慢,便于辨音)
- 网络重试:10 次重试 + 递增延迟,应对国内网络不稳定
使用流程
Step 1:环境准备
pip install edge-tts
Step 2:准备单词列表
单词列表是 Python 字典(或 JSON),格式:
WORDS = [
("urbanization", "城市化"),
("infrastructure", "基础设施"),
("sustainable", "可持续的"),
("metropolitan", "大都市的"),
("ecosystem", "生态系统"),
# ...每天 10 个
]
也可从 Excel/CSV 读取(见 references/word_list_formats.md)。
Step 3:配置并运行
编辑 scripts/gen_word_mp3.py 顶部配置:
VOICE = "zh-CN-XiaoxiaoNeural" # 晓晓,温柔,适合单词带读
RATE = "-5%" # 稍慢,便于辨音
GAP_SECONDS = 1.5 # 单词间隔 1.5 秒(便于跟读)
OUTPUT = r"F:\雅思学习\单词朗读_5月12日.mp3"
WORDS = [
("urbanization", "城市化"),
# ...
]
运行:
python scripts/gen_word_mp3.py
Step 4:检查输出
输出单个 MP3 文件,包含所有单词的「英文→中文」朗读,文件大小约 50-200KB(10 个单词)。
朗读节奏设计(核心卖点)
每个单词的朗读结构:
[英文单词] → [停顿 1.5s] → [中文释义] → [停顿 2.5s] → [下一个单词]
为什么要停顿?
- 英文后停顿:留出「跟读」时间,主动回忆发音
- 中文后停顿:留出「联想」时间,建立英中映射
- 比连续朗读记忆效率提升 3-5 倍(基于主动回忆理论)
艾宾浩斯复习包生成
背单词不是一次性的,需要按艾宾浩斯曲线复习。脚本支持生成复习包:
# 5月12日学习的新单词
WORDS_5_12 = [...]
# 5月13日:复习 5月12日的 + 学习新的
REVIEW_5_13 = WORDS_5_12 # 复习包
NEW_5_13 = [...] # 新包
# 5月15日:复习 5月12日 + 5月13日的
REVIEW_5_15 = WORDS_5_12 + NEW_5_13
完整艾宾浩斯复习计划见 references/ebbinghaus_plan.md。
单词列表格式
支持多种输入格式,详见 references/word_list_formats.md:
1. Python 字典(最简单)
WORDS = [
("urbanization", "城市化"),
("infrastructure", "基础设施"),
]
2. CSV 文件
word,meaning
urbanization,城市化
infrastructure,基础设施
读取:
import csv
with open('words.csv', 'r', encoding='utf-8') as f:
WORDS = [(row['word'], row['meaning']) for row in csv.DictReader(f)]
3. Excel 文件
import openpyxl
wb = openpyxl.load_workbook('words.xlsx')
ws = wb.active
WORDS = [(row[0].value, row[1].value) for row in ws.iter_rows(min_row=2)]
4. JSON 文件
[
{"word": "urbanization", "meaning": "城市化"},
{"word": "infrastructure", "meaning": "基础设施"}
]
资源说明
scripts/
gen_word_mp3.py- 单词 MP3 生成主脚本ebbinghaus_pack.py- 艾宾浩斯复习包批量生成
references/
voices.md- edge-tts 中文声音完整列表(与 ielts-ear-training 共享)word_list_formats.md- 单词列表多种输入格式说明ebbinghaus_plan.md- 艾宾浩斯遗忘曲线复习计划模板
常见问题
Q: 单词朗读有英式/美式发音选择吗?
A: edge-tts 中文声音会读出英文(带轻微口音)。如需纯正英式/美式发音,可分两段生成:英文用 en-US-AriaNeural 或 en-GB-SoniaNeural,中文用 zh-CN-XiaoxiaoNeural,再拼接。
Q: 单词太多 MP3 太长怎么办?
A: 按天/按主题分多个 MP3。每天 10 个单词约 1-2 分钟,正好通勤一段路。
Q: 能加入例句吗?
A: 可以。修改 WORDS 结构为 (word, meaning, example),并在 gen_word_mp3.py 中加入例句朗读。但会让 MP3 变长,建议单独生成「单词包」和「例句包」。
Q: 中文声音读英文单词会不会很怪?
A: 会有轻微口音,但完全能听懂。如需更纯正,使用本 skill 推荐的「英文+中文双声音」方案。
进阶玩法
- 听力模考:去掉中文释义,只读英文,听写练习
- 跟读训练:调长间隔到 3 秒,留足跟读时间
- 挑战模式:调快语速到
+10%,提升反应速度 - 多声音对照:同一份单词用不同声音生成,听辨不同口音
更多进阶示例见 references/word_list_formats.md。