Skip to content

DRunkPiano114/aichat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

语音对话 Agent 原型

低延迟、纯 JSON memory 的语音对话原型,集成 OpenAI 语音识别 API(gpt-4o-mini-transcribe)、OpenAI gpt-5-nano 文本生成、gTTS TTS,以及一个极简 Streamlit 界面。

特性

  • OpenAI 语音识别 API 转写,支持多轮上下文记忆(最近 10 轮)
  • OpenAI gpt-5-nano 负责文本响应
  • 同时支持音频输入或直接输入文字
  • gTTS 语音合成,输出 MP3(可直接在 UI 中播放)
  • 所有上下文+任务通过 JSON 文件读写,易于调试
  • Streamlit 界面支持音频上传、历史查看,也可 headless 模式轮询 task.json

快速开始

python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python setup.py  # 创建 sample.wav、task.json 等资源
export OPENAI_API_KEY=你的密钥
python run_agent.py --once  # 或者 streamlit run streamlit_app.py

目录结构

claude_code/        # OpenAI 语音处理核心
modules/python/     # STT/TTS、JSON memory 工具集
temp/               # 语音输入输出的临时文件
data/               # 持久化 JSON(task/history/result)
run_agent.py        # headless 主循环脚本
streamlit_app.py    # 简单可选 UI
setup.py            # 初始化脚本

配置说明

  • data/task.json:轮询任务入口,将 task 改为 process,可提供 files(音频路径列表)或 text
  • data/dialogue_history.json:最近 10 轮对话,随任务更新
  • data/taskResult.json:最近一次处理结果
  • temp/:语音临时目录,可写入 temp/transcript.txt 等调试文件

Streamlit 使用

streamlit run streamlit_app.py

上传语音文件或直接输入文字后点击「开始处理」,界面会展示响应文本并提供生成的 MP3 播放。

记忆策略

  • modules/python/memory.py 负责加载、裁剪、保存历史
  • Prompt 模板固定为:最近 5 轮构建 Human/Assistant 对话,追加本轮用户输入
  • 写入历史时最多保留 10 轮(20 条记录),避免 token 爆炸

故障排查

  • 缺少 gttsopenai 会直接抛错提示
  • 没有音频或音频转写失败时,run_agent.py 会在控制台输出堆栈并写入失败状态到 data/taskResult.json

About

speech chat

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages