feat: 语音
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package cn.iocoder.yudao.module.tik.voice.client;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.exception.ServiceException;
|
||||
import cn.iocoder.yudao.module.tik.voice.config.VoiceProviderProperties;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
@@ -27,8 +28,11 @@ public class VoiceCloneProviderFactory {
|
||||
|
||||
private final Map<String, VoiceCloneProvider> providers = new ConcurrentHashMap<>();
|
||||
|
||||
private final VoiceProviderProperties properties;
|
||||
|
||||
@Autowired
|
||||
public VoiceCloneProviderFactory(List<VoiceCloneProvider> providerList) {
|
||||
public VoiceCloneProviderFactory(List<VoiceCloneProvider> providerList, VoiceProviderProperties properties) {
|
||||
this.properties = properties;
|
||||
// 自动注册所有 Provider 实现类
|
||||
for (VoiceCloneProvider provider : providerList) {
|
||||
registerProvider(provider);
|
||||
@@ -59,7 +63,12 @@ public class VoiceCloneProviderFactory {
|
||||
if (providers.isEmpty()) {
|
||||
throw exception0(VOICE_TTS_FAILED.getCode(), "未配置任何语音克隆 Provider");
|
||||
}
|
||||
// 返回第一个注册的 Provider 作为默认
|
||||
// 使用配置的默认供应商
|
||||
String defaultProviderType = properties.getDefaultProvider();
|
||||
if (defaultProviderType != null && providers.containsKey(defaultProviderType)) {
|
||||
return providers.get(defaultProviderType);
|
||||
}
|
||||
// 回退到第一个注册的 Provider
|
||||
return providers.values().iterator().next();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user