Files
sionrui/openspec/changes/add-siliconflow-voice-provider/tasks.md
2026-02-01 17:56:10 +08:00

67 lines
2.1 KiB
Markdown

# Implementation Tasks
## 1. 配置类实现
- [ ] 1.1 创建 `SiliconFlowProviderConfig` 配置类
- 继承 `VoiceProviderProperties.ProviderConfig`
- 添加硅基流动特有配置字段
- 添加默认值和配置前缀
## 2. API 客户端实现
- [ ] 2.1 创建 `SiliconFlowApi` HTTP 客户端
- 实现 `uploadVoice()` 方法 - 上传参考音频
- 实现 `synthesize()` 方法 - 文本转语音
- 实现 `transcribe()` 方法 - 语音转文本(可选)
- 配置 RestTemplate/ WebClient
- 添加请求/响应日志
## 3. DTO 类实现
- [ ] 3.1 创建 `SiliconFlowVoiceUploadRequest` - 上传参考音频请求
- [ ] 3.2 创建 `SiliconFlowVoiceUploadResponse` - 上传参考音频响应
- [ ] 3.3 创建 `SiliconFlowTtsRequest` - 文本转语音请求
- [ ] 3.4 创建 `SiliconFlowTtsResponse` - 文本转语音响应(二进制处理)
## 4. Provider 实现类
- [ ] 4.1 创建 `SiliconFlowProvider` 实现类
- 实现 `VoiceCloneProvider` 接口
- 实现 `cloneVoice()` 方法
- 实现 `synthesize()` 方法
- 实现 `supports()` 方法
- 实现 `getProviderType()` 方法
- 添加 `@Component` 注解注册为 Spring Bean
## 5. 配置文件更新
- [ ] 5.1 更新 `application.yaml`
- 添加 `yudao.voice.providers.siliconflow` 配置节
- 配置 API Key、base URL、模型等参数
- 默认设置为 `enabled: false`
## 6. 测试与验证
- [ ] 6.1 编写单元测试
- 测试 `SiliconFlowApi` HTTP 调用
- 测试 `SiliconFlowProvider` 适配逻辑
- Mock 硅基流动 API 响应
- [ ] 6.2 集成测试
- 测试语音克隆完整流程
- 测试 TTS 合成完整流程
- 测试供应商切换功能
- [ ] 6.3 验证前端兼容性
- 验证 `voiceConfig.js` 支持 `siliconflow` 类型
- 验证 API 请求支持 `providerType` 参数
## 7. 文档与清理
- [ ] 7.1 更新相关文档
- 添加硅基流动配置说明
- 添加硅基流动使用示例
- [ ] 7.2 代码审查与清理
- 检查代码规范
- 移除调试代码
- 确保日志级别正确
---
**总计**: 20 项任务
**预计工作量**: 2-3 天
**依赖**: 多供应商架构重构已完成