低延迟、纯 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.pyclaude_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(音频路径列表)或textdata/dialogue_history.json:最近 10 轮对话,随任务更新data/taskResult.json:最近一次处理结果temp/:语音临时目录,可写入temp/transcript.txt等调试文件
streamlit run streamlit_app.py上传语音文件或直接输入文字后点击「开始处理」,界面会展示响应文本并提供生成的 MP3 播放。
modules/python/memory.py负责加载、裁剪、保存历史- Prompt 模板固定为:最近 5 轮构建
Human/Assistant对话,追加本轮用户输入 - 写入历史时最多保留 10 轮(20 条记录),避免 token 爆炸
- 缺少
gtts、openai会直接抛错提示 - 没有音频或音频转写失败时,
run_agent.py会在控制台输出堆栈并写入失败状态到data/taskResult.json