36 lines
1.6 KiB
Markdown
36 lines
1.6 KiB
Markdown
# 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.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`
|