# Agora实时语音转录前端组件 UI/UX 规范 ## 引言 本文档定义了Agora实时语音转录前端组件的用户体验目标、信息架构、用户流程和视觉设计规范。它作为视觉设计和前端开发的基础,确保提供一致且以用户为中心的体验。 ### 总体UX目标与原则 #### 目标用户画像 - **管理员用户**:需要高效管理语音转录功能,关注准确性和性能 - **内容编辑者**:需要便捷的语音输入转文字功能,关注易用性和转录质量 #### 可用性目标 - 易学性:新用户5分钟内能开始使用语音转录功能 - 使用效率:熟练用户能快速开始/停止转录操作 - 错误预防:清晰的权限提示和错误状态反馈 - 可记忆性:界面直观,功能明确 #### 设计原则 1. **清晰性优先** - 转录状态和结果必须清晰可见 2. **即时反馈** - 每个操作都有明确的视觉反馈 3. **渐进式披露** - 复杂功能按需展示,避免信息过载 4. **一致性** - 与现有管理后台设计系统保持一致 5. **无障碍设计** - 支持键盘操作和屏幕阅读器 ### 变更日志 | 日期 | 版本 | 描述 | 作者 | |------|---------|-------------|--------| | 2025-09-23 | 1.0 | 初始规范创建 | Sally (UX专家) | ## 信息架构 ### 站点地图/屏幕清单 ```mermaid graph TD A[管理后台] --> B[语音转录组件] B --> B1[转录控制面板] B --> B2[实时结果显示] B --> B3[转录历史记录] B1 --> B1a[开始转录按钮] B1 --> B1b[停止转录按钮] B1 --> B1c[麦克风状态指示] B2 --> B2a[实时转录文本] B2 --> B2b[转录准确率指示] B2 --> B2c[临时结果vs最终结果] B3 --> B3a[历史记录列表] B3 --> B3b[转录详情查看] B3 --> B3c[导出功能] ``` ### 导航结构 - **主导航**:作为管理后台的一个功能模块,集成到现有导航中 - **二级导航**:组件内部的状态切换(实时转录、历史记录、设置) - **面包屑策略**:管理后台 > 语音转录 > [当前状态] ## 用户流程 ### 开始语音转录 **用户目标**:快速开始语音转录并查看实时结果 **入口点**: - 管理后台语音转录页面 - 特定内容编辑页面的转录快捷入口 **成功标准**: - 5秒内完成麦克风权限申请和转录准备 - 实时转录延迟小于2秒 - 转录准确率超过90% **流程图表**: ```mermaid graph TD A[用户点击开始转录] --> B[检查麦克风权限] B --> C{权限已授权?} C -->|是| D[加入Agora频道] C -->|否| E[请求麦克风权限] E --> F{用户授权?} F -->|是| D F -->|否| G[显示权限拒绝提示] D --> H[建立WebSocket连接] H --> I[开始音频流传输] I --> J[接收实时转录结果] J --> K[显示转录文本] K --> L{用户停止转录?} L -->|是| M[清理资源并结束] L -->|否| J ``` **边缘情况与错误处理**: - 网络连接失败:显示重连选项和错误提示 - WebSocket连接中断:自动重连机制 - 麦克风设备不可用:提供设备选择或错误指导 - 转录服务超时:显示超时提示和重新开始选项 **注意事项**:需要特别关注权限申请的用户体验,避免过于侵入式的提示 ## 线框图与原型 **主要设计文件**:建议使用 Figma 进行详细视觉设计 ### 关键屏幕布局1:转录控制面板 **用途**:用户开始和管理语音转录的主要界面 **关键元素**: - 大型开始/停止转录按钮(视觉状态明显区分) - 实时音频波形可视化 - 转录文本显示区域(支持滚动和复制) - 麦克风状态和连接状态指示器 - 转录准确率和延迟指标 - 历史记录快捷入口 **交互说明**: - 开始按钮点击后变为停止按钮,伴有动画过渡 - 音频波形实时反映语音输入强度 - 转录文本区域支持文本选择和复制操作 - 状态指示器使用颜色编码(绿色=正常,黄色=警告,红色=错误) **设计文件参考**:Figma链接待创建 ### 关键屏幕布局2:转录历史记录 **用途**:查看和管理已完成的转录记录 **关键元素**: - 转录记录列表(时间、时长、准确率) - 搜索和筛选功能 - 批量操作选项(删除、导出) - 转录详情查看模态框 - 导出格式选择(TXT、JSON、Word) **交互说明**: - 列表支持按时间、准确率排序 - 点击记录项展开详情视图 - 批量选择支持多选操作 - 导出功能提供进度指示 **设计文件参考**:Figma链接待创建 ## 组件库/设计系统 **设计系统方法**:基于现有的 shadcn/ui 设计系统进行扩展,确保与整个管理后台的设计一致性 ### 核心组件1:转录控制按钮 **用途**:开始和停止语音转录的主要交互控件 **变体**: - 主要状态:开始(绿色)、停止(红色)、禁用(灰色) - 尺寸:大号(主要控制)、小号(嵌入式使用) - 图标变体:带麦克风图标、纯文本、图标+文本 **状态**: - 默认:准备开始转录 - 悬停:视觉反馈,显示工具提示 - 激活:转录进行中,带有脉冲动画 - 禁用:权限未授权或设备不可用 - 加载:初始化转录服务中 **使用指南**: - 在转录控制面板中作为主要操作控件 - 使用足够大的点击区域(最小44px) - 状态变化必须有明确的视觉反馈 - 禁用状态需要提供明确的启用指导 ### 核心组件2:实时转录文本显示 **用途**:显示实时语音转录的文字结果 **变体**: - 实时模式:区分临时结果和最终结果 - 历史模式:只读的已完成转录 - 编辑模式:支持文本修改和标注 **状态**: - 空状态:显示引导文本或占位符 - 加载中:显示加载指示器 - 实时更新:文本逐字显示,带有打字机效果 - 完成状态:完整的转录文本,支持复制 **使用指南**: - 实时模式使用不同颜色区分临时/最终结果 - 提供文本复制和导出功能 - 支持文本选择和基本编辑操作 - 确保足够的行高和可读性 ### 核心组件3:音频波形可视化 **用途**:实时显示音频输入强度和活动状态 **变体**: - 条形图:垂直条形显示音频强度 - 波形图:连续的波形显示 - 简约版:简单的活动指示器 **状态**: - 静音:显示基线或静音提示 - 活动:根据音频强度动态变化 - 峰值:达到最大音量时的视觉反馈 - 错误:音频输入失败的特殊显示 **使用指南**: - 与转录状态同步更新 - 使用颜色编码表示不同状态 - 提供平滑的动画过渡 - 考虑性能影响,避免过度渲染 ## 品牌与样式指南 **品牌指南**:遵循现有管理后台的品牌规范 ### 色彩调色板 | 色彩类型 | 十六进制代码 | 用途 | |---------|-------------|------| | 主色 | #2563eb | 主要操作按钮、重要状态指示 | | 辅助色 | #64748b | 次要元素、边框、文本 | | 强调色 | #f59e0b | 警告状态、需要关注的元素 | | 成功色 | #10b981 | 转录成功、完成状态 | | 警告色 | #f59e0b | 权限提示、临时状态 | | 错误色 | #ef4444 | 错误状态、转录失败 | | 中性色 | #6b7280, #9ca3af, #d1d5db | 文本、边框、背景 | ### 字体排印 **字体家族**: - **主字体**:Inter(系统默认无衬线字体) - **辅助字体**:系统默认字体栈 - **等宽字体**:JetBrains Mono(用于代码和转录文本) **字体比例**: | 元素 | 大小 | 字重 | 行高 | |------|------|------|------| | H1 | 2rem | 600 | 1.2 | | H2 | 1.5rem | 600 | 1.3 | | H3 | 1.25rem | 600 | 1.4 | | 正文 | 1rem | 400 | 1.5 | | 小字 | 0.875rem | 400 | 1.4 | **图标设计**: - **图标库**:Lucide React图标库 - **使用指南**:使用简洁的线条图标,保持一致的视觉权重 **间距与布局**: - **网格系统**:12列响应式网格,使用Tailwind CSS间距系统 - **间距比例**:基于0.25rem的倍数(4px、8px、12px、16px、20px、24px、32px、40px、48px) ## 无障碍设计要求 **合规标准**:WCAG 2.1 AA级别 **关键要求**: **视觉要求**: - 色彩对比度:文本与背景至少4.5:1,大文本3:1 - 焦点指示:所有可交互元素必须有清晰的焦点环 - 文本大小:支持浏览器字体缩放至200% **交互要求**: - 键盘导航:支持完整的键盘操作(Tab、Enter、Space、Esc) - 屏幕阅读器支持:为所有状态变化提供ARIA标签 - 触摸目标:最小44px触摸区域 **内容要求**: - 替代文本:所有图标和状态指示器必须有描述性文本 - 标题结构:使用正确的HTML标题层级 - 表单标签:所有输入控件必须有相关联的标签 **测试策略**: - 使用axe-core进行自动化测试 - 手动键盘导航测试 - 屏幕阅读器兼容性测试(NVDA、VoiceOver) - 色彩对比度工具验证 ## 响应式策略 **断点设置**: | 断点 | 最小宽度 | 最大宽度 | 目标设备 | |------|----------|----------|----------| | 移动端 | 320px | 767px | 智能手机、小屏设备 | | 平板 | 768px | 1023px | 平板电脑、大屏手机 | | 桌面端 | 1024px | 1439px | 笔记本电脑、标准显示器 | | 宽屏 | 1440px | - | 大屏显示器、电视 | **适配模式**: **布局变化**: - 移动端:单列布局,控制面板和结果区域垂直堆叠 - 平板:两列布局,控制面板固定宽度,结果区域自适应 - 桌面端:三列布局,包含控制面板、实时结果、历史记录 **导航变化**: - 移动端:底部标签栏导航,隐藏次要功能 - 平板:侧边栏导航,支持展开/收起 - 桌面端:完整导航栏,所有功能可见 **内容优先级**: - 移动端:优先显示转录控制和实时结果 - 平板:增加历史记录快捷入口 - 桌面端:完整功能展示,支持多任务操作 **交互变化**: - 移动端:简化操作,减少点击深度 - 平板:支持手势操作(滑动切换) - 桌面端:完整的键盘快捷键支持 ## 动画与微交互 **动效原则**: - 功能性优先:动画服务于用户体验,而非装饰 - 性能友好:确保动画流畅,不影响转录性能 - 可访问性:提供减少动画的选项 - 一致性:使用统一的动画时长和缓动函数 **关键动画**: - **转录状态切换**:按钮状态平滑过渡,带有缩放效果(时长:300ms,缓动:ease-out) - **音频波形**:实时音频输入的可视化波动(时长:实时,缓动:linear) - **文本显示**:转录结果的逐字显示效果(时长:根据文本长度,缓动:ease-in-out) - **加载状态**:旋转指示器和进度条(时长:不定,缓动:linear) - **错误提示**:轻微震动和颜色闪烁(时长:500ms,缓动:ease-in-out) ## 性能考虑 **性能目标**: - **页面加载**:组件初始化时间小于3秒 - **交互响应**:用户操作响应时间小于100ms - **动画帧率**:保持60fps的流畅动画 **设计策略**: - 懒加载非关键资源 - 优化音频处理性能 - 使用虚拟滚动处理长转录历史 - 实现智能缓存策略 ## 后续步骤 **立即行动**: 1. 与利益相关者评审此规范文档 2. 在Figma中创建详细的视觉设计 3. 与前端开发团队进行设计交接 4. 创建原型进行用户测试验证 **设计交接清单**: - [ ] 所有用户流程已记录 - [ ] 组件清单完整 - [ ] 无障碍要求已定义 - [ ] 响应式策略清晰 - [ ] 品牌指南已整合 - [ ] 性能目标已确立 --- *本文档由Sally (UX专家) 创建于2025-09-23*