--- name: ai-speaking-dialog overview: 新建 AI 口语对话页面 SpeakingDialog.vue,复用豆包 TTS API(同 Pronunciation.vue),实现用户输入文字/语音 → AI 外教回复 → TTS 朗读的完整对话流程,并在首页和路由中注册入口。 design: architecture: framework: vue styleKeywords: - Glassmorphism - 深色背景 - 紫蓝渐变 - 聊天气泡 - 毛玻璃面板 - 微动效 fontSystem: fontFamily: PingFang SC heading: size: 1.5rem weight: 600 subheading: size: 1rem weight: 600 body: size: 1rem weight: 400 colorSystem: primary: - "#6366f1" - "#8b5cf6" background: - var(--card-bg) - rgba(0,0,0,0.2) text: - var(--text-primary) - var(--text-secondary) functional: - "#22c55e" - "#ef4444" - "#f59e0b" todos: - id: config-proxy-and-router content: 在 vite.config.js 中新增 /ark-api 代理,在 router/index.js 中注册 /speaking 路由,在 HomePage.vue 中将 card-2 的 route 改为 /speaking status: completed - id: create-speaking-view content: 新建 src/views/Speaking.vue,实现完整的 AI 口语对话页面:场景选择、音色选择、聊天气泡布局、Ark API 调用与降级模板、TTS 自动朗读与重播 status: completed dependencies: - config-proxy-and-router --- ## 用户需求 基于现有项目的豆包 TTS API,新建一个 AI 口语对话页面,实现与 AI 英语外教的实时对话练习功能。 ## 产品概述 页面采用聊天气泡布局,用户在底部输入框输入英语文本,AI 外教自动回复并通过豆包 TTS 合成语音播放。页面风格与现有项目保持一致(深色玻璃拟态风格),并接入首页 card-2 入口。 ## 核心功能 - **对话界面**:聊天气泡布局,用户消息靠右(蓝紫色),AI 消息靠左(带头像),支持滚动历史记录 - **AI 回复**:调用字节跳动 Ark 大模型 API(`/ark-api/api/v3/chat/completions`)生成英语对话回复;未配置 API Key 时降级为预设模板回复 - **TTS 朗读**:AI 每条回复自动调用豆包 TTS 合成语音播放,消息旁提供重播按钮,播放时显示动态音波动画 - **音色选择**:顶部可选英语音色(Dacey 美音、Tim 美音、Tina 英音等) - **场景选择**:提供日常对话、面试练习、旅游英语、购物场景等预设场景,切换场景重置对话并注入对应系统提示词 - **路由与入口**:注册 `/speaking` 路由,首页 card-2 的 `route` 改为 `/speaking` ## 技术栈 - Vue 3 Composition API(`