跳转至

语言学习伙伴

项目背景与目标

语言学习核心在于"用",而传统学习重输入轻输出,学生缺乏真实对话练习环境。外教一对一成本高且时间难协调,导致口语提升缓慢。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 发散 系统提示约束 + 目标检查
学习者害羞 不敢开口 文字模式过渡 + 鼓励反馈

扩展方向

  • 写作批改:作文提交 + 逐句反馈
  • 影子跟读:跟读标准音频训练语调
  • 多人对话:小组角色扮演练习
  • 方言学习:粤语、四川话等方言教学