# 语音转文字数据流SDK开发 - Brownfield Enhancement Epic ## Epic Goal 将现有的stt-demo应用中的语音转文字数据流功能封装成通用的TypeScript SDK,让任何使用TypeScript的项目都能方便调用,提供简洁的API接口、完整的类型定义和文档支持。 ## Epic Description ### 现有系统上下文 **当前相关功能:** - 完整的语音转文字数据流:音频流 → STT 服务 → 文字结果 → RTM 通道 → 界面显示 - 多语言实时转录和翻译功能 - 基于管理器模式的架构:SttManager、RtmManager、RtcManager - 事件驱动的组件通信机制 **技术栈:** - React 18 + TypeScript - Redux Toolkit 状态管理 - Agora RTC/RTM SDK - Vite 构建工具 - Ant Design UI组件 **集成点:** - 现有管理器类(SttManager、RtmManager) - 事件系统(AGEventEmitter) - API调用层(STT服务接口) - 状态管理(Redux store) ### 增强详情 **新增/变更内容:** - 在项目根目录创建 `packages/` 目录,采用monorepo模式管理SDK - 创建独立的通用TypeScript SDK包,封装现有的STT和RTM管理器功能 - 提供简洁的类式API接口,不依赖特定框架 - 支持多语言实时转录和翻译配置 - 包含完整的TypeScript类型定义 - 提供详细的集成文档和示例(React、Vue、Angular等) **集成方式:** - 基于现有管理器类进行封装,保持向后兼容 - 提供类式API接口,便于在任何TypeScript项目中使用 - 支持配置驱动,允许自定义STT和RTM参数 - 保持现有的事件驱动架构模式 - 提供框架适配器(React、Vue等)作为可选包 **包结构设计:** ``` packages/ ├── stt-sdk-core/ # 核心SDK包 │ ├── src/ │ │ ├── core/ # 核心类(SttSdk, SttClient, RtmClient) │ │ ├── managers/ # 管理器封装 │ │ ├── types/ # 类型定义 │ │ └── utils/ # 工具函数 │ ├── package.json │ └── tsconfig.json ├── stt-sdk-react/ # React适配器(可选) │ ├── src/ │ │ ├── hooks/ # React Hooks │ │ ├── components/ # React组件 │ │ └── types/ │ ├── package.json │ └── tsconfig.json ├── stt-sdk-vue/ # Vue适配器(可选) │ ├── src/ │ │ ├── composables/ # Vue Composables │ │ ├── components/ # Vue组件 │ │ └── types/ │ ├── package.json │ └── tsconfig.json └── stt-sdk-angular/ # Angular适配器(可选) ├── src/ ├── package.json └── tsconfig.json ``` **构建配置:** - 每个包独立配置构建工具(Vite/Rollup) - 支持ES Module和CommonJS双模式输出 - 独立的类型声明文件生成 - 统一的lint和test配置 **成功标准:** - SDK能够独立打包和发布 - 现有stt-demo应用能够无缝切换到使用SDK - 任何TypeScript项目能够通过npm安装并使用SDK - API接口简洁易用,类型定义完整 - 文档清晰,包含多种框架的集成示例(React、Vue、Angular等) ## Stories 1. **Story 1: SDK核心架构和基础封装** - 创建 `packages/` 目录结构和monorepo配置 - 初始化 `stt-sdk-core` 包的基础配置 - 封装现有的SttManager和RtmManager类 - 实现基础的事件系统和错误处理 - 提供基础的TypeScript类型定义 2. **Story 2: 通用API接口和包管理** - 实现类式API接口(SttClient、RtmClient等) - 配置各个包的构建工具和依赖管理 - 实现多语言转录和翻译的配置接口 - 设置包间的依赖关系和版本管理 - 配置统一的lint和test脚本 3. **Story 3: 框架适配器和发布准备** - 创建框架适配器包(React、Vue等) - 编写完整的API文档和集成指南 - 实现单元测试和集成测试 - 配置打包和发布流程 - 验证现有应用的无缝迁移 ## 兼容性要求 - [x] 现有API保持向后兼容 - [x] 现有管理器类的接口保持不变 - [x] 事件系统接口保持兼容 - [x] 性能影响最小化 - [x] 现有功能测试通过 ## 风险缓解 **主要风险:** SDK封装可能破坏现有的功能集成 **缓解措施:** - 保持现有管理器类的接口不变 - 逐步迁移,先封装后替换 - 充分的集成测试覆盖 - 详细的回滚计划 **回滚计划:** - 如果SDK出现问题,可以快速回退到直接使用现有管理器类 - 保持现有代码的完整性,SDK作为可选层 ## 完成定义 - [ ] 所有故事完成,验收标准满足 - [ ] 现有功能通过测试验证 - [ ] SDK集成点正常工作 - [ ] 文档完整且准确 - [ ] 现有功能无回归 - [ ] 打包和发布流程就绪 ## 验证清单 **范围验证:** - [x] Epic可在1-3个故事内完成 - [x] 不需要架构文档变更 - [x] 增强遵循现有模式 - [x] 集成复杂度可控 **风险评估:** - [x] 对现有系统风险低 - [x] 回滚计划可行 - [x] 测试方法覆盖现有功能 - [x] 团队对集成点有足够了解 **完整性检查:** - [x] Epic目标清晰可实现 - [x] 故事范围适当 - [x] 成功标准可衡量 - [x] 依赖关系已识别 ## 转交给故事经理 **故事经理交接:** "请为此brownfield epic开发详细的用户故事。关键考虑因素: - 这是对运行React 18 + TypeScript + Agora SDK的现有系统的增强 - 集成点:现有管理器类(SttManager、RtmManager)、事件系统、API调用层 - 要遵循的现有模式:管理器模式、事件驱动架构 - 关键兼容性要求:保持现有API不变,性能影响最小化,提供通用TypeScript接口 每个故事必须包含验证现有功能保持完整的验证步骤。 Epic应在保持系统完整性的同时,实现将语音转文字功能封装为可重用SDK的目标。" --- **创建日期:** 2025-09-25 **创建者:** Claude Code **Epic状态:** Draft **优先级:** High