feat: add ASR provider support for voice co-creation

This commit is contained in:
2026-04-24 17:58:49 +08:00
parent 7e450aa5fc
commit 3805c18622
22 changed files with 471 additions and 126 deletions

View File

@@ -26,6 +26,7 @@ docker compose ps
- 用户端http://localhost:52080
- 本地登录http://localhost:52080/auth/dev/signin
- 语音共创http://localhost:52080/voice-studio
- Adminhttp://localhost:52888
- 后端健康http://localhost:52000/health
- Admin 后端健康http://localhost:52800/health
@@ -46,6 +47,18 @@ docker compose ps
SMOKE_AUDIO=1 ./scripts/demo_smoke.sh
```
需要检查语音共创 Alpha 时:
```bash
SMOKE_VOICE=1 ./scripts/demo_smoke.sh
```
需要同时检查 TTS 和语音共创时:
```bash
SMOKE_AUDIO=1 SMOKE_VOICE=1 ./scripts/demo_smoke.sh
```
通过标准:
- [ ] backend health 返回 `ok`
@@ -62,9 +75,10 @@ SMOKE_AUDIO=1 ./scripts/demo_smoke.sh
- [ ] 绘本 provider stats 返回成功率、耗时和成本字段
- [ ] 绘本图片 retry 后 `image_status=ready`
- [ ] 绘本阅读页能看到生成轨迹和资源重试历史
- [ ] `/admin/providers/capabilities` 返回 `text/image/tts/storybook`
- [ ] `/admin/providers/capabilities` 返回 `text/image/tts/storybook/asr`
- [ ] `/api/audio/{story_id}/status` 能查询音频缓存状态且不触发生成
- [ ] 如果启用 `SMOKE_AUDIO=1`,音频 retry 后 `audio_status=ready`
- [ ] 如果启用 `SMOKE_VOICE=1`,语音共创会话可完成文本 fallback、上传回合、analytics 和 finalize 到 Story
- [ ] 验证结果已记录到 `docs/planning/demo-validation-log.md`
---
@@ -101,11 +115,26 @@ SMOKE_AUDIO=1 ./scripts/demo_smoke.sh
1. 打开 Admin。
2. 说明管理端不是用户主链路,而是产品拥有者维护供应链路的辅助能力。
3. 通过接口或页面说明:
- Capability: `text/image/tts/storybook`
- Capability: `text/image/tts/storybook/asr`
- Provider: 具体供应商配置
- Adapter: API 调用实现
- Routing Policy: 优先级/成本/延迟/轮询
### 路径 D: 语音共创 Alpha
1. 打开用户端并进入“语音共创”。
2. 创建一个新会话,先使用文本 fallback 快速演示:
- 首轮:`我想听一个小熊和星星一起找家的故事`
- 修正:`不要让小熊害怕,让月亮姐姐帮它`
3. 展示每轮内容:
- 用户表达 / 系统理解
- 系统文字回应
- TTS 语音回应状态
- 最近事件和待处理提示
4. 演示低置信度确认:说明系统会提示“本轮系统理解为”,家长可选择继续、重说或改成文本。
5. 点击结束并保存,确认正式 Story 进入故事库。
6. 打开生成轨迹,说明语音共创 finalize 后的封面资产补全已经接回统一 generation job。
---
## 4. 3 分钟讲解结构
@@ -137,6 +166,8 @@ DreamWeaver 是面向 3-8 岁亲子场景的个性化 AI 绘本与陪伴式讲
| 网络导致 TTS 失败 | 说明音频是可恢复资产,不阻塞故事阅读;使用已缓存样本或跳过 TTS |
| 图片 provider 未补全 | 展示 partial ready说明主内容已可读、资产可稍后补全 |
| 图片 provider 失败 | 展示 degraded completed 与 retry 机制 |
| 录音或 ASR 不稳定 | 切到文本 fallback说明 Alpha 阶段已保留降级路径 |
| 语音共创低置信度卡住 | 使用“按这个理解继续”或“改成文本输入”完成本轮 |
| Docker 冷启动慢 | 演示前提前运行 smoke 脚本并保持容器运行 |
| Admin 页面不适合主展示 | 只用 Provider 分层说明辅助讲系统设计 |
| 面试官追问生产部署 | 明确当前是求职版 MVP本轮重点是产品闭环和系统边界 |
@@ -149,4 +180,5 @@ DreamWeaver 是面向 3-8 岁亲子场景的个性化 AI 绘本与陪伴式讲
- [ ] 能现场看到普通故事和绘本结果。
- [ ] 能解释失败降级和资产重试。
- [ ] 能解释为什么 Provider 分层是产品设计,而不是单纯技术炫技。
- [ ] 能说明语音共创当前是 Phase A Alpha而不是实时语音最终形态。
- [ ] 能说明下一步计划,而不是让项目停在 demo。

View File

@@ -2,6 +2,48 @@
这份记录用于演示前快速说明“当前本地 Docker 环境已经验证到什么程度”。新的验证记录按时间倒序追加。
## 2026-04-24
补充验证:
- 已拉取远端 `main``7e450aa fix: stabilize auth and generation workflows`
- 用户端 `npm run build` 通过,包含最新 Voice Studio、登录态修复和 generation trace 变更。
- 管理端首次 `npm run build` 因 Rollup Linux optional dependency 缺失失败;执行 `npm install` 补齐 `@rollup/rollup-linux-x64-gnu` 后,管理端 `npm run build` 通过。
- 后端当前仓库内 `.venv` 是 Windows 虚拟环境结构WSL/bash 下无法直接执行 `.venv/bin/python`;系统也没有全局 `pytest`。尝试创建 Linux venv 时发现当前 WSL 缺少 `python3.12-venv`,尝试使用 Docker 时发现当前 WSL 未启用 Docker Desktop 集成。本轮未完成后端 pytest需要后续在 Linux venv、Docker 或 Windows PowerShell 环境补跑。
- 语音共创 PRD 已从 Discovery Track 更新为 Phase A Alpha并补充 Alpha 验收矩阵、退出标准和未完成项。
- 演示 checklist 已新增 Voice Studio 入口、语音共创 Alpha 手动演示路径和风险预案。
- `scripts/demo_smoke.sh` 已新增可选 `SMOKE_VOICE=1` 分支,覆盖 Voice Session 创建、文本 fallback、上传回合 demo transcript hint、会话 detail/events、voice analytics、finalize 到 Story 和故事可读性断言。
- ASR 已纳入 Provider 能力分层:默认 `ASR_PROVIDERS=["demo"]`,真实转写可配置 `ASR_PROVIDERS=["openai_asr", "demo"]``OPENAI_API_KEY`
- 管理端 Provider UI 已补 `asr`运营摘要支持按语音识别筛选Provider tab 可创建/查看 ASR provider用户端嵌入的 Provider 管理页同步新增 `asr` tab。
- `bash -n scripts/demo_smoke.sh` 通过。
执行命令:
```bash
cd frontend && npm run build
cd admin-frontend && npm run build
cd admin-frontend && npm install
cd admin-frontend && npm run build
cd backend && pytest -q
cd backend && ./.venv/bin/python --version
cd backend && python3 -m venv .venv-linux
docker compose ps
bash -n scripts/demo_smoke.sh
```
结果:
- 用户端 `vue-tsc && vite build` 通过。
- 管理端 `vue-tsc && vite build` 在补依赖后通过。
- `scripts/demo_smoke.sh` shell 语法检查通过;受当前 WSL 未启用 Docker 影响,未执行完整接口 smoke。
- 后端测试未运行成功,原因是当前执行环境缺少 Linux 可用的 Python dev venv / pytest且 WSL 未启用 Docker。
后续补验建议:
- 在 WSL 下先安装 `python3.12-venv`,再执行 `cd backend && python3 -m venv .venv-linux && .venv-linux/bin/pip install -e ".[dev]" && .venv-linux/bin/python -m pytest -q`
- 或在 Windows PowerShell 下执行 `cd backend; .\.venv\Scripts\python.exe -m pytest -q`
- 后端通过后,再运行 `docker compose up -d --build``SMOKE_VOICE=1 ./scripts/demo_smoke.sh`,并手动走一遍 Voice Studio Alpha 路径。
## 2026-04-18
补充验证: