Files
sionrui/openspec/changes/refactor-voice-provider/proposal.md
2026-01-27 01:39:08 +08:00

1.6 KiB
Raw Blame History

Change: Refactor Voice Clone Provider

Why

当前语音克隆功能直接依赖阿里云 CosyVoice 实现,代码强耦合,扩展性差。添加新供应商(如硅基流动 IndexTTS-2需要修改 Service 层代码,违反开闭原则。

说明: CosyVoice 是阿里云的语音合成服务DashScope 平台),支持语音克隆和 TTS。当前代码使用 cosyvoice-v3-flash 模型。

What Changes

  • ADDED 引入策略模式,定义 VoiceCloneProvider 统一接口
  • ADDED 创建工厂类 VoiceCloneProviderFactory 管理多供应商
  • MODIFIED 将现有 CosyVoiceClient 改造为 CosyVoiceProvider
  • MODIFIED 更新 TikUserVoiceServiceImpl 使用 Provider 接口
  • ADDED 新增配置类支持多供应商配置和切换
  • BREAKING 配置项从 yudao.cosyvoice 迁移到 yudao.voice.providers

Impact

  • Affected specs:
    • voice-clone (新增能力规范)
  • Affected code:
    • TikUserVoiceServiceImpl.java - Service 层改为依赖注入 Provider
    • CosyVoiceClient.javaCosyVoiceProvider.java - 重命名并实现接口
    • CosyVoiceProperties.javaVoiceProviderProperties.java - 配置结构重组
    • 新增 VoiceCloneProvider.java - 统一接口定义
    • 新增 VoiceCloneProviderFactory.java - 工厂类
    • 新增 SiliconFlowProvider.java - 硅基流动实现(阶段二)

Migration

  • 现有配置自动迁移:yudao.cosyvoice.*yudao.voice.providers.cosyvoice.*
  • 默认供应商保持为 cosyvoice
  • 默认行为保持不变,向后兼容
  • 支持通过配置切换供应商:yudao.voice.default-provider