EchoFlow 是一个基于 AI 的智能会议助手,帮助您:
- 🎙️ 录制或上传会议音频
- 🤖 AI 自动转录语音为文字
- 📝 智能生成结构化会议纪要
- 📧 一键发送给多个参会者
- 💾 下载音频备份(WAV 格式)
| 功能 | 描述 |
|---|---|
| 🎙️ 音频录制 | 浏览器内实时录音,支持暂停/继续,可视化波形显示 |
| 📤 文件上传 | 支持 MP3/WAV/M4A/OGG/WEBM,拖拽上传 |
| 💾 音频下载 | 自动转换为 WAV 格式,持久化下载窗口,支持最小化 |
| 🤖 AI 转录 | 基于 OpenAI Whisper,高精度语音转文字 |
| 📝 智能纪要 | GPT-4 分析生成结构化会议纪要 |
| 📧 多收件人邮件 | 标签式输入,批量发送,详细反馈 |
| 💬 联系反馈 | 多收件人反馈表单 |
# 1. 克隆项目
git clone <repository-url>
cd echoflow
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填入 OpenAI API Key
# 3. 一键部署
./deploy.sh
# 4. 访问应用
# 前端:http://localhost:80
# 后端:http://localhost:3000# 1. 安装后端依赖
cd backend
npm install
# 2. 安装前端依赖
cd ../frontend
npm install
# 3. 启动后端(终端1)
cd backend
npm start
# 4. 启动前端(终端2)
cd frontend
npm run dev
# 5. 访问应用
# 前端:http://localhost:5173
# 后端:http://localhost:3000- Node.js 16+
- OpenAI API Key (获取地址)
- Docker & Docker Compose(用于容器化部署)
- SMTP 邮箱(用于发送邮件功能)
创建 .env 文件并配置以下变量:
# OpenAI API(必需)
OPENAI_API_KEY=sk-your-actual-api-key
# SMTP 邮件服务(可选,用于邮件发送功能)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=your-email@gmail.com
SMTP_PASS=your-app-password
# 端口配置(可选)
BACKEND_PORT=3000
FRONTEND_PORT=5173- 点击"开始录音"按钮
- 允许浏览器访问麦克风
- 录音过程中可暂停/继续
- 点击"停止录音"完成
- 录音完成后显示下载窗口
- 查看文件信息(文件名、时长、大小)
- 点击"下载录音文件"保存 WAV 格式文件
- 或点击"跳过并开始处理"直接进入下一步
- 可点击"-"按钮最小化窗口
- 点击上传区域或拖拽文件
- 支持 MP3/WAV/M4A/OGG/WEBM 格式
- 等待上传完成
- 系统自动进行语音转文字
- AI 分析生成会议纪要
- 显示处理进度
- 查看结构化的会议纪要
- 包含:主题、参会人员、讨论要点、决策事项、待办事项
- 可一键复制全部内容
- 点击"发送邮件"按钮
- 添加收件人邮箱(支持多个)
- 点击"发送"按钮
- 查看发送结果
┌─────────────────────────────────────────────────┐
│ 用户浏览器 │
│ (React + Vite) │
└────────────────┬────────────────────────────────┘
│ HTTP/HTTPS
┌────────────────▼────────────────────────────────┐
│ 后端服务器 │
│ (Node.js + Express) │
├─────────────────────────────────────────────────┤
│ • 文件上传 (Multer) │
│ • 音频处理 (FFmpeg) │
│ • AI 转录 (OpenAI Whisper) │
│ • 智能分析 (GPT-4) │
│ • 邮件发送 (Nodemailer) │
└─────────────────────────────────────────────────┘
前端
- React 18
- Vite
- Lucide React(图标)
- CSS3
后端
- Node.js
- Express
- Multer(文件上传)
- FFmpeg(音频处理)
- OpenAI API(AI 服务)
- Nodemailer(邮件发送)
echoflow/
├── frontend/ # 前端应用
│ ├── src/
│ │ ├── App.jsx # 主组件
│ │ ├── App.css # 样式
│ │ └── main.jsx # 入口
│ └── package.json
│
├── backend/ # 后端服务
│ ├── server.js # 主服务器
│ ├── uploads/ # 上传文件
│ └── package.json
│
├── docker-compose.yml # Docker 编排
├── Dockerfile.backend # 后端镜像
├── Dockerfile.frontend # 前端镜像
├── deploy.sh # 部署脚本
├── .env.example # 环境变量示例
├── README.MD # 项目说明(本文件)
└── DOCUMENTATION.md # 完整文档
查看 DOCUMENTATION.md 获取:
- 详细功能说明
- API 文档
- 部署指南
- 常见问题
- 更新日志
A: 项目代码免费开源,但需要 OpenAI API Key(按使用量付费)。
A: OpenAI Whisper 支持多种语言,包括中文、英文、日文等。
A: 音频文件临时存储在服务器,建议定期清理 backend/uploads/ 目录。
A: 不可以,需要联网调用 OpenAI API。
A: WAV 格式,兼容性好,所有设备都能播放。
更多问题请查看 DOCUMENTATION.md
- ✨ 新增音频下载功能(WebM 转 WAV)
- ✨ 下载窗口持久化显示,支持最小化
- 🎨 优化下载窗口 UI 设计
- ✨ 会议纪要和联系反馈支持多收件人
- 🎨 标签式收件人输入 UI
- 🔧 批量邮件发送逻辑
- 🎉 项目初始版本
欢迎贡献代码、报告问题或提出建议!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
本项目采用 MIT 许可证。详见 LICENSE 文件。
- 📮 邮箱:support@echoflow.com
- 🐛 问题反馈:[GitHub Issues]
- 📖 项目主页:[GitHub Repository]
⭐ 如果这个项目对您有帮助,请给个 Star!
Made with ❤️ by EchoFlow Team