Github地址:youjiaping123/ezchatbot
功能特点
- 💬 支持文本对话
- 🎤 支持语音输入(Speech-to-Text)
- 🔊 支持语音输出(Text-to-Speech)
- 💾 自动保存对话历史
- ⚙️ 可配置的模型参数
- 🌐 支持中文交互
系统要求
- Python 3.8+
- 麦克风(用于语音输入)
- 音频输出设备(用于语音播放)
- OpenAI API 密钥
- Azure 语音服务密钥
安装步骤
- 安装必要的Python包:
pip install openai python-dotenv azure-cognitiveservices-speech
- 配置环境变量:
创建
.env
文件并填入以下内容:
OPENAI_API_KEY=你的OpenAI_API密钥
OPENAI_API_BASE=你的API基础URL
SPEECH_KEY=你的Azure语音服务密钥
SPEECH_REGION=你的Azure语音服务区域
详细使用教程
1. 基础文本对话
- 启动程序:
python chat_bot.py
- 直接输入文本进行对话:
你: 你好
AI助手: 你好!有什么我可以帮你的吗?
2. 语音交互
- 切换到语音模式:
你: voice
已切换到语音输入模式
- 开始说话(等待提示音后):
请说话...
你: [语音输入] 今天天气怎么样?
AI助手: [语音回复] 我是AI助手,无法直接获取天气信息...
- 返回文本模式:
你: text
已切换回文本输入模式
3. 高级功能
配置文件使用
可以通过修改 bot_config.json
自定义机器人行为:
{
"name": "AI助手",
"lang": "cn",
"modelConfig": {
"temperature": 0.7, // 更高的值使回答更有创意
"historyMessageCount": 4, // 记忆的对话轮数
"max_tokens": 2000 // 回复的最大长度
}
}
常用命令
voice
: 切换到语音模式text
: 切换到文本模式quit
或exit
: 结束对话- Ctrl+C: 强制退出程序
4. 使用技巧
- 对话上下文
- 机器人会记住对话历史
- 可以参考之前的对话内容
- 历史记录会自动保存
- 语音交互建议
- 在安静的环境中使用
- 说话清晰,语速适中
- 等待提示音后再说话
- 性能优化
- 适当调整历史消息数量
- 根据需求调整temperature值
- 合理设置max_tokens
常见问题解答
1. 语音识别问题
Q: 为什么语音识别没有反应? A: 检查:
- 麦克风是否正常工作
- 是否授予了麦克风权限
- Azure语音服务配置是否正确
2. API相关问题
Q: 出现API错误怎么办? A: 检查:
- API密钥是否正确
- 网络连接是否正常
- API额度是否充足
3. 配置问题
Q: 修改配置后不生效? A: 确保:
- 正确保存了配置文件
- 配置文件格式正确
- 重启程序使配置生效
项目结构
聊天机器人/
├── chat_bot.py # 主程序
├── TTS.py # 文字转语音模块
├── STT.py # 语音转文字模块
├── .env # 环境变量配置
└── bot_config.json # 机器人配置文件