1.6 KiB
1.6 KiB
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 层改为依赖注入 ProviderCosyVoiceClient.java→CosyVoiceProvider.java- 重命名并实现接口CosyVoiceProperties.java→VoiceProviderProperties.java- 配置结构重组- 新增
VoiceCloneProvider.java- 统一接口定义 - 新增
VoiceCloneProviderFactory.java- 工厂类 - 新增
SiliconFlowProvider.java- 硅基流动实现(阶段二)
Migration
- 现有配置自动迁移:
yudao.cosyvoice.*→yudao.voice.providers.cosyvoice.* - 默认供应商保持为
cosyvoice - 默认行为保持不变,向后兼容
- 支持通过配置切换供应商:
yudao.voice.default-provider