From 15d22bb7d1dda50ff94e167e48784a2487fbde9c Mon Sep 17 00:00:00 2001 From: cc <94575594@qq.com> Date: Thu, 19 Mar 2026 19:18:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20AI=20=E5=8F=A3?= =?UTF-8?q?=E8=AF=AD=E5=AF=B9=E8=AF=9D=E9=A1=B5=E9=9D=A2=E5=8F=8A=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plans/ai-speaking-dialog_29386820.md | 168 ++++ src/router/index.js | 6 + src/views/HomePage.vue | 2 +- src/views/Speaking.vue | 786 ++++++++++++++++++ vite.config.js | 5 + 5 files changed, 966 insertions(+), 1 deletion(-) create mode 100644 .codebuddy/plans/ai-speaking-dialog_29386820.md create mode 100644 src/views/Speaking.vue diff --git a/.codebuddy/plans/ai-speaking-dialog_29386820.md b/.codebuddy/plans/ai-speaking-dialog_29386820.md new file mode 100644 index 0000000..cb3add1 --- /dev/null +++ b/.codebuddy/plans/ai-speaking-dialog_29386820.md @@ -0,0 +1,168 @@ +--- +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(` + + + + + diff --git a/vite.config.js b/vite.config.js index 7a74ca0..2b592cf 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,6 +10,11 @@ export default defineConfig({ target: 'https://openspeech.bytedance.com', changeOrigin: true, rewrite: (path) => path.replace(/^\/tts-api/, '') + }, + '/ark-api': { + target: 'https://ark.cn-beijing.volces.com', + changeOrigin: true, + rewrite: (path) => path.replace(/^\/ark-api/, '') } } }