语言学习伙伴¶
项目背景与目标¶
语言学习核心在于"用",而传统学习重输入轻输出,学生缺乏真实对话练习环境。外教一对一成本高且时间难协调,导致口语提升缓慢。AI 语言学习伙伴通过多轮对话练习、发音纠正、即时翻译、进度追踪,为学习者提供 7×24 小时可用、低焦虑的口语练习环境。
本项目目标是构建一个 AI 语言学习 Agent,支持英语/日语/多语种学习,核心能力包括情景对话练习、发音评分与纠正、语法纠错、词汇扩展、学习进度追踪。
需求分析¶
核心能力: 1. 情景对话:模拟点餐、面试、旅行、商务等多场景角色扮演 2. 发音评估:音素级发音评分与纠正建议 3. 语法纠错:实时纠正语法错误并解释 4. 词汇教学:根据对话上下文扩展词汇 5. 难度适配:根据学习者水平调整对话难度 6. 进度追踪:词汇量、流利度、准确度趋势
学习者分群:初学者(A1-A2)、中级(B1-B2)、高级(C1-C2)。
技术选型说明¶
| 模块 | 技术方案 | 选型理由 |
|---|---|---|
| 语音识别 | Whisper | 多语言高精度 ASR |
| 发音评估 | 声学模型对比 | 音素级评分 |
| Agent 框架 | LangGraph | 对话状态管理 |
| LLM | GPT-4o / Qwen | 多语种对话与教学 |
| TTS | Azure TTS / Edge TTS | 标准发音示范 |
| 词汇库 | CEFR 词汇表 | 难度分级 |
| 后端 | FastAPI + WebSocket | 实时语音流 |
| 数据库 | PostgreSQL | 学习记录 |
架构设计¶
flowchart TD
U[学习者语音] --> ASR[语音识别]
ASR --> TEXT[文本]
TEXT --> AGENT[对话 Agent]
AGENT --> PRON[发音评估]
AGENT --> GRAM[语法检查]
AGENT --> DIAL[对话生成]
DIAL --> LLM[LLM 多语种]
PRON --> SCORE[发音评分]
GRAM --> CORR[纠错反馈]
DIAL --> TTS[语音合成]
TTS --> REPLY[语音回复]
AGENT --> TRACK[进度追踪]
TRACK --> DB[(学习记录)]
AGENT --> DIFF[难度适配]
DIFF --> PROFILE[学习者画像]
关键模块实现思路¶
模块1:情景对话角色扮演¶
预设情景库:点餐、住酒店、机场、面试、商务会议、看病等。每个情景定义角色设定、目标、关键句型、评估要点。LLM 扮演对话角色(如服务员),引导学习者完成情景任务。
SCENARIO = {
"name": "餐厅点餐",
"role": "服务员",
"objectives": ["问候", "推荐菜品", "处理特殊要求", "结账"],
"key_phrases": ["Are you ready to order?", "Today's special is..."],
"difficulty": "A2"
}
对话中 LLM 自然引导话题,完成目标后给予反馈:哪些目标达成、哪些句型用得好、可改进点。
模块2:发音评估与纠正¶
发音评估采用音素级对比:学习者语音经 ASR 转文本后对齐到标准发音,提取声学特征(MFCC)对比,计算每个音素的发音得分。低分音素标记并给纠正建议(如舌位、口型提示)。
def assess_pronunciation(audio, reference_text):
user_phonemes = asr_phoneme_align(audio) # 音素对齐
ref_phonemes = g2p(reference_text) # 文本转音素
scores = compare_phonemes(user_phonemes, ref_phonemes)
weak = [p for p, s in scores if s < 0.6]
return {"overall": mean(scores), "weak_phonemes": weak,
"suggestions": generate_tips(weak)}
流利度通过语速、停顿频率、填充词(um/uh)数量评估。
模块3:语法纠错与教学¶
实时检测学习者句子语法错误,分类标注(时态、单复数、介词、语序)。纠错策略分两级:影响理解的严重错误即时打断纠正;轻微错误对话结束后汇总。每次纠错附简短解释,帮助理解规则。
def correct_grammar(text, level):
errors = grammar_checker(text)
corrections = []
for err in errors:
if err.severity == "high" or level <= "A2":
corrections.append({"original": err.span, "correct": err.fix,
"rule": err.explain})
return corrections
避免过度纠错打击信心,中级以上学习者聚焦高频错误。
模块4:难度适配与词汇扩展¶
对话难度动态适配:根据学习者水平调整词汇复杂度(CEFR 分级)、语速、句长。学习者表现好(流利、准确)逐步提升难度;频繁卡顿则降级并给更多提示。
词汇扩展在对话中自然进行:学习者表达不出时,LLM 提示目标词汇;对话后总结本场景新学的词汇与句型,加入词汇本供复习。
def adapt_difficulty(history, performance):
if performance.accuracy > 0.85 and performance.fluency > 0.7:
return increase_level(current_level) # 升级
if performance.accuracy < 0.5:
return decrease_level(current_level) # 降级
return current_level
模块5:进度追踪与复习¶
追踪指标:词汇量(累计学习/掌握)、流利度趋势、准确度趋势、对话完成数、学习时长。基于艾宾浩斯遗忘曲线安排词汇复习:学后 1 天、3 天、7 天、15 天复习,强化长期记忆。
核心流程详解¶
对话练习流程: 1. 学习者选择情景与难度 2. Agent 扮演角色发起对话(语音/文字) 3. 学习者回应 → ASR 识别 4. 并行处理:发音评估 + 语法检查 + 对话生成 5. 回复学习者:语音 + 文字 + 实时反馈 6. 情景目标完成 → 生成对话报告 7. 报告:目标达成、新词汇、发音薄弱点、改进建议
自由对话流程: 1. 学习者选择自由聊天话题 2. Agent 引导开放对话,难度自适应 3. 实时纠错与词汇扩展 4. 定期生成学习进度报告
部署与优化建议¶
- 低延迟:语音对话端到端延迟 < 2s,流式 ASR + 流式 TTS
- 离线模式:文本对话支持弱网环境,语音功能按需
- 多口音:TTS 支持美式/英式/澳式口音选择
- 文化教学:对话中穿插文化背景知识
- 游戏化:连续打卡、对话挑战、排行榜提升粘性
常见问题与解决方案¶
| 问题 | 原因 | 解决方案 |
|---|---|---|
| ASR 识别口音差 | 非标准发音 | 多口音训练 + 容错匹配 |
| 发音评分不准 | 噪声干扰 | VAD 降噪 + 置信度过滤 |
| 对话偏离情景 | LLM 发散 | 系统提示约束 + 目标检查 |
| 学习者害羞 | 不敢开口 | 文字模式过渡 + 鼓励反馈 |
扩展方向¶
- 写作批改:作文提交 + 逐句反馈
- 影子跟读:跟读标准音频训练语调
- 多人对话:小组角色扮演练习
- 方言学习:粤语、四川话等方言教学