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

36 lines
1.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`