Skip to content

2001wjh/ChatMaster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatMaster - 智能英语外教系统

项目简介

ChatMaster 是一个基于场景的多轮语音对话系统。本项目旨在帮助用户无痛练习日常英语口语和对话技能,从简单到困难循序渐进提升能力。

核心功能

  • 文字对话模式:提供流畅的文本对话体验
  • 口语交流模式:支持语音输入输出,模拟真实对话场景
  • 基于场景的口语练习:提供10个默认场景,也支持上传自定义场景
  • 多轮对话管理:维持对话上下文,提供连贯的交互体验
  • 自定义难度等级:根据用户水平调整对话复杂度
  • 问题推荐系统:基于当前对话内容智能推荐相关问题
  • 高级RAG检索:结合向量和关键词混合检索技术,提供更准确的知识匹配
  • 智能文档解析:支持多种格式文档的解析和场景提取

技术架构

前端界面

  • Streamlit框架构建的交互式Web应用
  • 支持文字和语音两种交互模式
  • 场景选择与自定义上传功能
  • 对话历史管理和会话保存

后端服务

  • 语音识别(ASR):基于FunASR的语音转文本功能
  • 文本生成:基于大型语言模型(GPT-3.5/GPT-4)的对话生成
  • 语音合成(TTS):基于ChatTTS的文本转语音功能
  • 检索增强生成(RAG):
    • 高级向量检索(FAISS)
    • 混合检索策略(BM25 + 向量相似度)
    • 文档智能解析与分块
    • 会话状态管理
    • 检索结果重排序

核心技术实现

1. 对话数据处理

  • 数据来源:YouTube英文影视剧
  • 处理流程
    • 使用youtube-dl下载视频
    • 腾讯语音包做语音识别
    • 正则表达式+GPT4o规则判定
    • 低质量文本过滤(去重、特殊符号、纠错)
    • 敏感词和停用词过滤
    • BM25关键词匹配(匹配度>70%删除)
    • 向量检索(相似度>0.8删除)
    • 统一JSON格式输出
    • 附带场景和难易度信息

2. 口语理解优化

  • 口语化问题处理

    • 微调T5-base模型处理省略词汇、非正式语气词汇、语序不规范等问题
    • CrossEntropyLoss损失函数,AdamW优化器
    • BLEU评分≥90
  • 指代消歧

    • 基于bert-base-uncased实现
    • 参数量110M,max_sequence_len=512
  • 意图识别

    • 三大意图类别:场景对话、日常闲聊、学习类提问
    • 规则识别+RoBERTa-base分类模型
    • 准确率>96%
  • 命名实体识别(NER)

    • BERT+CRF模型,采用BIO标注策略
    • 实体识别F1分数>94%

3. 增强版RAG检索系统

  • 文档处理

    • 多格式文档支持(PDF/Word/Excel/TXT)
    • 基于语义的智能分块算法
    • 文档元数据提取
  • 高级检索引擎

    • 混合检索策略(向量相似度+关键词匹配)
    • 自动权重调整机制
    • 上下文感知检索
    • ElasticSearch全文索引
  • 知识库管理

    • 多知识库支持
    • 增量更新机制
    • 场景自动提取
    • 双向索引(关键词+向量)
  • 会话增强功能

    • 智能会话命名
    • 推荐问题生成
    • 对话历史分析
    • 检索证据追踪

4. 对话管理

  • 拆分式对话管理

    • 对话策略(DP)
    • 对话状态跟踪(DST)
  • 外部记忆机制

    • MemGPT、AttentionStore、MemLLM等实现长对话记忆
  • 上下文压缩与摘要

    • Prompt Engineering
    • Conversational Memory
    • 基于主题的上下文聚焦

安装与使用

环境要求

  • Python 3.8+
  • OpenAI API密钥(用于GPT模型调用)
  • ElasticSearch 7.x(用于高级RAG检索,可选)

安装步骤

  1. 克隆本仓库
git clone https://github.com/yourusername/ChatMaster.git
cd ChatMaster
  1. 安装依赖
pip install -r requirements.txt
  1. 配置API密钥 创建.env文件并添加以下内容:
OPENAI_API_KEY=your_api_key_here
DASHSCOPE_API_KEY=your_dashscope_key_here  # 可选,用于中文模型
  1. 准备知识库目录
mkdir -p dataset/knowledge_base
mkdir -p dataset/uploads
  1. 启动应用
cd frontend
streamlit run app.py

使用指南

  1. 在侧边栏选择对话模型(GPT-3.5/GPT-4)
  2. 选择对话语言(默认为英语)
  3. 选择交流模式(文字对话/口语交流)
  4. 选择预设场景或上传自定义文档创建场景
  5. 开始与AI助手对话练习英语
  6. 查看系统推荐的相关问题,可点击快速提问
  7. 利用会话管理功能保存和恢复对话历史

高级功能

  • 文档解析:上传PDF、Word、Excel等格式文档,系统自动提取场景和知识点
  • 场景定制:根据行业、难度等条件筛选场景
  • 语音定制:选择不同口音和语速的语音合成
  • 自定义主题:针对特定行业或场景的专业英语训练
  • 进度追踪:记录用户练习历史和进步情况

💕 致谢

感谢上海人工智能实验室,为我的项目提供宝贵的技术指导和强大的算力支持。

🎫 开源许可证

该项目采用 Apache License 2.0 开源许可证 同时,请遵守所使用的模型与数据集的许可证。

🔗 引用

如果本项目对您有所帮助,请使用以下格式引用:

@misc{ChatMaster,
    title={ChatMaster},
    author={wjh2001},
    url={https://github.com/wjh2001/ChatMaster},
    year={2024}
}

About

Help you practice daily English speaking and conversation skills painlessly from easy to difficult

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages