语音驱动的 AI 创作与思维协作平台 ——「从一句话灵感,到完整内容作品」。
EchoMuse AI 是面向 AI 创作者、科技博主、独立开发者与大学生创新团队的安卓 APP。 用户用语音表达灵感,系统自动完成:
- 🎙 AI 降噪 + 实时语音转写(支持黄鹂智声耳机)
- 🧠 10 维度 AI 思维分析(定位 / 用户 / 市场 / MVP / 风险 …)
- ✦ 一键生成技术博客、小红书文案、视频口播稿、播客脚本、创业方案
- 🎨 多类型 AI 创作工作室:图像 / 视频 / PPT / 音频 一站生成(OpenAI Compatible 网关)
- 💬 AI 长期对话与项目记忆
- 📚 历史项目时间轴与持续协作
UI 风格:苹果级极简 + 深色科技 + 蓝紫渐变 + 毛玻璃 + AI 呼吸动效, 对标 Apple / Arc / Linear / OpenAI / Humane AI / Rabbit r1。
EchoMuseAI/
├── frontend/ # uni-app + Vue 3 + TS + Pinia + uView Plus
│ ├── pages/ # 首页 / 录音 / 转写 / 分析 / 生成 / 图像 / 历史 / 设置
│ ├── components/ # AIOrb / GlassCard / GradientButton / WaveBars / NavBar / AILoader / AuroraBg
│ ├── stores/ # project / settings (Pinia)
│ ├── services/api/ # http + 全部接口封装
│ ├── types/ # TS 类型定义
│ ├── utils/ # recorder(分段录音)/ format
│ ├── styles/ # variables / global
│ ├── App.vue main.ts pages.json manifest.json vite.config.ts ...
│ └── package.json
└── backend/ # FastAPI + Python
├── app/
│ ├── api/ # transcribe / ai / projects
│ ├── services/ # llm / image / transcribe
│ ├── prompts/ # 全部 AI prompt 模板
│ ├── models/ # pydantic 模型
│ ├── core/ # config / db (sqlite)
│ └── main.py
├── requirements.txt
└── .env.example
cd backend
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # 然后填入 LLM_API_KEY、DASHSCOPE_API_KEY 等
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000打开 http://localhost:8000/docs 看到 Swagger 即成功。
没有 API Key 也能跑通:
llm.py内置占位回复,image.py自动回退到 picsum 占位图, 前端联调不会被阻塞。
- 用 HBuilderX 打开
frontend/目录 - 右键
manifest.json→ 运行 → 运行到手机或模拟器(确保已开 USB 调试) - 在「设置 → API 后端地址」填入:
http://<你电脑内网IP>:8000/api
cd frontend
npm install
npm run dev:h5
# 打开 http://localhost:5173H5 已经在
vite.config.ts里配好/api→localhost:8000反代。
| 变量 | 说明 |
|---|---|
LLM_BASE_URL |
OpenAI Compatible LLM 服务地址,默认 https://api.deepseek.com |
LLM_API_KEY |
DeepSeek / OpenRouter / OpenAI 等 Key |
LLM_MODEL |
模型名,默认 deepseek-chat |
DASHSCOPE_API_KEY |
通义万相文生图 Key(推荐) |
WANXIANG_MODEL |
默认 wanx2.1-t2i-turbo |
OPENAI_IMAGE_API_KEY |
备用:OpenAI Images |
USE_PLACEHOLDER_IMAGES |
无 Key 时是否使用占位图,默认 true |
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/transcribe |
上传音频文件,返回分段转写 |
| POST | /api/analyze |
文本 → 10 维度 AI 分析(JSON) |
| POST | /api/generate/content |
生成技术博客 / 小红书 / 口播稿 / 播客 / 创业方案 |
| POST | /api/generate/images |
生成 AI 图片(自动 craft prompt) |
| POST | /api/chat |
持续对话 |
| GET/POST/PUT/DELETE | /api/projects |
项目持久化(SQLite) |
语音输入 → 分段转写 → AI 思维分析 → 内容生成 → 图像生成 → 项目存档 → 持续对话
每一步在前端都对应独立页面,状态通过 Pinia useProjectStore() 全程串联。
- 色板:
#5B7CFF深蓝 /#A78BFA紫 /#F472B6粉 / 暗色背景#0A0A14 - 渐变:
linear-gradient(135deg, #5B7CFF, #A78BFA, #F472B6) - 效果:毛玻璃(backdrop-filter blur 28rpx)+ 极光辉光 + 1rpx 渐变描边
- 动效:AI 呼吸(3.6s)、波纹(1.4s)、入场 Fade-Up(560ms)
- 字号:Display 64rpx · H1 48 · H2 36 · Body 28
- 圆角:xs 8 · sm 16 · md 24 · lg 32 · xl 48 · pill 9999
详见 frontend/styles/variables.scss。
- 项目骨架与 8 个完整页面
- DeepSeek + SQLite + 通义万相回退
- 录音分段 + 实时转写联调
- 多类型生成(图像/视频/PPT/音频)通过 OpenAI Compatible 网关
- 流式输出(SSE)
- 黄鹂智声 SDK 原生模块(plus.audio)
- 长期记忆(向量库 + 用户档案)
- 多设备同步(Supabase)
前端内置 frontend/services/generation/generation-service.ts,统一封装:
- 图像 →
POST {baseUrl}/images/generations - 视频 →
POST {baseUrl}/videos/generations - PPT →
POST {baseUrl}/ppt/generations - 音频 →
POST {baseUrl}/audio/generations
特性:
- OpenAI Compatible 风格调用,bearer / X-API-Key 两种认证
- 超时 + 指数退避重试(408/429/5xx)
- 异步任务自动轮询(Veo3、Suno、PPT 多为 task_id 模式)
- 响应解析容错:
data[]/data.url/data.b64_json/output.results[0].url/task_id全部支持 - feature-detect:H5/App-Vue 走
fetch;缺失环境(小程序)回退uni.request - 错误统一抛
GenerationError(status, code, body, message),UI 可做差异化提示
- APP 内进入「设置 → AI 服务」
- 填入 Base URL 与 API Key(仅保存到本机存储)
- 选择 Bearer / X-API-Key 认证
- 可分别为 image / video / ppt / audio 配置默认模型
- 点击「连接测试」生成 1 张图验证
也可在代码里手动配置:
import { ConfigManager, generationService } from '@/services/generation/generation-service'
ConfigManager.setConfig({
apiKey: 'sk-...',
baseUrl: 'https://api.example.com/v1',
authType: 'bearer',
defaultModels: {
image: 'gemini-3-pro-image-preview-vip',
video: 'veo3',
ppt: 'gemini-ppt',
audio: 'suno_music'
}
})
const img = await generationService.generateImage({ prompt: '极简未来感品牌封面', aspectRatio: '1:1' })MIT © EchoMuse AI