增强聊天模块为 ChatterPal 提供了完整的多模态对话功能,支持文本和语音输入输出,智能主题生成,以及丰富的会话管理功能。本指南将帮助您充分利用这些新特性。
- 直接在文本框中输入您的消息
- 支持多语言输入
- 实时显示对话历史
- 点击麦克风按钮开始录音
- 支持最长 60 秒的录音
- 自动语音识别转换为文本
- 智能噪音检测和质量评估
- AI 回复自动转换为语音
- 支持播放控制(播放/暂停/重播)
- 可调节播放速度和音量
- 支持多种语音合成引擎
# 生成适合初学者的日常话题
topic = chat_service.generate_topic(
difficulty="beginner",
category="daily"
)- 基于当前对话内容生成相关主题
- 考虑用户的语言水平和兴趣
- 自动调整话题难度
- 日常生活 (Daily): 日常活动、习惯、家庭
- 兴趣爱好 (Hobby): 运动、音乐、阅读、游戏
- 旅行文化 (Travel): 旅游经历、文化差异
- 工作学习 (Work): 职业、学习经验、技能
- 科技创新 (Tech): 科技趋势、数字生活
- 文化交流 (Culture): 传统、节日、社会话题
- 自动创建新会话
- 支持多个并发会话
- 会话超时自动清理
- 完整保存对话记录
- 支持历史记录搜索
- 可导出对话内容
- 智能维护对话上下文
- 支持清除历史但保持会话
- 可设置自定义系统提示词
# 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
)# 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 会根据设定的主题引导对话# 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 # 保存间隔(秒)
)- 环境选择: 在安静的环境中录音
- 说话清晰: 语速适中,发音清晰
- 录音时长: 建议每次录音 3-10 秒
- 重试机制: 如果识别不准确,可以重新录音
- 循序渐进: 从简单话题开始,逐步增加难度
- 兴趣导向: 选择自己感兴趣的话题分类
- 多样化练习: 定期更换不同类型的话题
- 上下文练习: 利用相关主题进行深入讨论
- 定期清理: 适时清除对话历史,开始新话题
- 保存重要对话: 导出有价值的对话内容
- 设置目标: 为每次会话设定学习目标
- 回顾总结: 定期回顾对话历史,总结学习成果
问题: 语音识别不准确 解决方案:
- 检查麦克风权限和设备状态
- 确保录音环境安静
- 调整录音音量和距离
- 尝试重新录音或切换到文本输入
问题: 录音时间过短或过长 解决方案:
- 调整
min_recording_duration和max_recording_duration配置 - 练习控制说话节奏
- 将长句分解为短句
问题: 语音播放失败 解决方案:
- 检查网络连接
- 验证 TTS 服务配置
- 尝试降低播放速度
- 使用文本模式作为备选
问题: 主题生成失败或不相关 解决方案:
- 检查 LLM 服务连接
- 调整难度级别设置
- 使用预定义主题作为备选
- 手动设置感兴趣的主题
- 缓存管理: 定期清理音频和会话缓存
- 会话限制: 避免创建过多并发会话
- 网络优化: 确保稳定的网络连接
- 资源监控: 监控内存和 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)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增强聊天模块提供了丰富的功能来支持英语口语练习。通过合理配置和使用这些功能,您可以:
- 进行自然流畅的多模态对话
- 获得个性化的话题建议和练习内容
- 享受智能的错误处理和用户体验
- 灵活管理和回顾学习历史
建议从基础功能开始,逐步探索高级特性,根据个人需求调整配置,以获得最佳的学习效果。