Skip to content

Latest commit

 

History

History
330 lines (252 loc) · 8.63 KB

chat_module_user_guide.md

File metadata and controls

330 lines (252 loc) · 8.63 KB

增强聊天模块用户使用指南

概述

增强聊天模块为 ChatterPal 提供了完整的多模态对话功能,支持文本和语音输入输出,智能主题生成,以及丰富的会话管理功能。本指南将帮助您充分利用这些新特性。

主要功能

1. 多模态输入输出

文本输入模式

  • 直接在文本框中输入您的消息
  • 支持多语言输入
  • 实时显示对话历史

语音输入模式

  • 点击麦克风按钮开始录音
  • 支持最长 60 秒的录音
  • 自动语音识别转换为文本
  • 智能噪音检测和质量评估

语音输出

  • AI 回复自动转换为语音
  • 支持播放控制(播放/暂停/重播)
  • 可调节播放速度和音量
  • 支持多种语音合成引擎

2. 智能主题生成

随机主题生成

# 生成适合初学者的日常话题
topic = chat_service.generate_topic(
    difficulty="beginner",
    category="daily"
)

上下文相关主题

  • 基于当前对话内容生成相关主题
  • 考虑用户的语言水平和兴趣
  • 自动调整话题难度

主题分类

  • 日常生活 (Daily): 日常活动、习惯、家庭
  • 兴趣爱好 (Hobby): 运动、音乐、阅读、游戏
  • 旅行文化 (Travel): 旅游经历、文化差异
  • 工作学习 (Work): 职业、学习经验、技能
  • 科技创新 (Tech): 科技趋势、数字生活
  • 文化交流 (Culture): 传统、节日、社会话题

3. 会话管理

会话创建和管理

  • 自动创建新会话
  • 支持多个并发会话
  • 会话超时自动清理

对话历史

  • 完整保存对话记录
  • 支持历史记录搜索
  • 可导出对话内容

上下文管理

  • 智能维护对话上下文
  • 支持清除历史但保持会话
  • 可设置自定义系统提示词

使用场景

场景 1:日常英语练习

# 1. 创建会话并生成日常话题
session_id = chat_service.create_session()
topic = chat_service.generate_topic(session_id, difficulty="intermediate", category="daily")

# 2. 开始对话练习
audio_output, history = chat_service.process_chat(
    text_input="I usually wake up at 7 AM and have breakfast.",
    use_text_input=True,
    session_id=session_id
)

# 3. 切换到语音练习
audio_output, history = chat_service.process_chat(
    audio=recorded_audio,
    use_text_input=False,
    session_id=session_id
)

场景 2:主题讨论练习

# 1. 获取多个主题选项
topics = chat_service.get_topic_suggestions(
    difficulty="advanced",
    category="culture",
    count=5
)

# 2. 选择感兴趣的主题
chosen_topic = topics[0]
chat_service.set_topic_for_session(session_id, chosen_topic)

# 3. 开始深入讨论
# AI 会根据设定的主题引导对话

场景 3:语音发音练习

# 1. 配置音频设置
from chatterpal.services.chat_config import AudioConfig
audio_config = AudioConfig(
    auto_play=True,
    playback_speed=0.9,  # 稍慢的播放速度便于学习
    volume=0.8
)

# 2. 进行语音对话
# 系统会提供发音反馈和建议

配置选项

音频配置

audio_config = AudioConfig(
    max_recording_duration=60,    # 最大录音时长(秒)
    min_recording_duration=1,     # 最小录音时长(秒)
    sample_rate=16000,            # 采样率
    auto_play=True,               # 自动播放回复
    playback_speed=1.0,           # 播放速度 (0.5-2.0)
    volume=0.8,                   # 音量 (0.0-1.0)
    noise_threshold=0.1           # 噪音阈值
)

主题生成配置

topic_config = TopicGenerationConfig(
    difficulty_levels=["beginner", "intermediate", "advanced"],
    categories=["daily", "hobby", "travel", "work", "tech", "culture"],
    default_difficulty="intermediate",
    preferred_categories=["travel", "hobby"],  # 用户偏好分类
    context_aware=True,           # 启用上下文感知
    max_retries=3                 # 生成失败时的重试次数
)

会话配置

session_config = SessionConfig(
    max_history_length=50,        # 最大历史记录长度
    session_timeout=3600,         # 会话超时时间(秒)
    auto_save=True,               # 自动保存
    save_interval=300             # 保存间隔(秒)
)

最佳实践

1. 语音输入技巧

  • 环境选择: 在安静的环境中录音
  • 说话清晰: 语速适中,发音清晰
  • 录音时长: 建议每次录音 3-10 秒
  • 重试机制: 如果识别不准确,可以重新录音

2. 主题选择建议

  • 循序渐进: 从简单话题开始,逐步增加难度
  • 兴趣导向: 选择自己感兴趣的话题分类
  • 多样化练习: 定期更换不同类型的话题
  • 上下文练习: 利用相关主题进行深入讨论

3. 会话管理技巧

  • 定期清理: 适时清除对话历史,开始新话题
  • 保存重要对话: 导出有价值的对话内容
  • 设置目标: 为每次会话设定学习目标
  • 回顾总结: 定期回顾对话历史,总结学习成果

故障排除

常见问题及解决方案

语音识别问题

问题: 语音识别不准确 解决方案:

  1. 检查麦克风权限和设备状态
  2. 确保录音环境安静
  3. 调整录音音量和距离
  4. 尝试重新录音或切换到文本输入

问题: 录音时间过短或过长 解决方案:

  1. 调整 min_recording_duration 和 max_recording_duration 配置
  2. 练习控制说话节奏
  3. 将长句分解为短句

语音合成问题

问题: 语音播放失败 解决方案:

  1. 检查网络连接
  2. 验证 TTS 服务配置
  3. 尝试降低播放速度
  4. 使用文本模式作为备选

主题生成问题

问题: 主题生成失败或不相关 解决方案:

  1. 检查 LLM 服务连接
  2. 调整难度级别设置
  3. 使用预定义主题作为备选
  4. 手动设置感兴趣的主题

性能优化建议

  1. 缓存管理: 定期清理音频和会话缓存
  2. 会话限制: 避免创建过多并发会话
  3. 网络优化: 确保稳定的网络连接
  4. 资源监控: 监控内存和 CPU 使用情况

高级功能

自定义系统提示词

custom_prompt = """
You are a patient English conversation partner specializing in business English. 
Focus on professional vocabulary and workplace scenarios.
Provide gentle corrections and suggest more formal alternatives when appropriate.
"""

chat_service.set_system_prompt(session_id, custom_prompt)

对话分析和统计

# 生成对话摘要
summary = chat_service.generate_conversation_summary(session_id)

# 提取对话主题
topics = chat_service.get_conversation_topics(session_id)

# 获取服务统计信息
stats = chat_service.get_service_status()

批量主题管理

# 批量添加自定义主题
custom_topics = [
    ("What's your experience with online learning?", "education", "intermediate"),
    ("How do you stay motivated at work?", "work", "advanced"),
    ("Describe your ideal vacation destination.", "travel", "beginner")
]

for topic, category, difficulty in custom_topics:
    chat_service.add_custom_topic(topic, category, difficulty)

集成示例

与 Gradio 界面集成

import gradio as gr

def chat_interface(audio, text, history, use_voice):
    try:
        audio_output, updated_history = chat_service.process_chat(
            audio=audio,
            text_input=text,
            chat_history=history,
            use_text_input=not use_voice,
            session_id=session_id
        )
        return audio_output, updated_history, ""
    except Exception as e:
        return None, history, f"错误: {str(e)}"

# 创建 Gradio 界面
with gr.Blocks() as demo:
    # 界面组件定义...
    pass

与其他模块集成

# 与评估模块集成
from chatterpal.services.evaluation import EvaluationService

eval_service = EvaluationService()

# 在对话中进行发音评估
def chat_with_evaluation(audio_data, session_id):
    # 1. 进行对话
    response_text, response_audio, _ = chat_service.chat_with_audio(
        audio_data, session_id
    )
    
    # 2. 评估用户发音
    scores = eval_service.evaluate_pronunciation(audio_data, response_text)
    
    return response_text, response_audio, scores

总结

增强聊天模块提供了丰富的功能来支持英语口语练习。通过合理配置和使用这些功能,您可以:

  • 进行自然流畅的多模态对话
  • 获得个性化的话题建议和练习内容
  • 享受智能的错误处理和用户体验
  • 灵活管理和回顾学习历史

建议从基础功能开始,逐步探索高级特性,根据个人需求调整配置,以获得最佳的学习效果。