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

2.1 KiB

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 天

依赖: 多供应商架构重构已完成