diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/CosyVoiceProviderConfig.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/CosyVoiceProviderConfig.java index 2a65d82637..310122fed8 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/CosyVoiceProviderConfig.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/CosyVoiceProviderConfig.java @@ -2,6 +2,8 @@ package cn.iocoder.yudao.module.tik.voice.config; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; import java.time.Duration; @@ -14,6 +16,8 @@ import java.time.Duration; */ @Data @EqualsAndHashCode(callSuper = true) +@Component +@ConfigurationProperties(prefix = "yudao.voice.cosyvoice") public class CosyVoiceProviderConfig extends VoiceProviderProperties.ProviderConfig { /** diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/VoiceAutoConfiguration.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/VoiceAutoConfiguration.java new file mode 100644 index 0000000000..bff932ddbc --- /dev/null +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/config/VoiceAutoConfiguration.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.tik.voice.config; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 语音模块自动配置 + * + * @author 芋道源码 + */ +@Configuration +@Slf4j +public class VoiceAutoConfiguration { + + /** + * CosyVoice 供应商配置 Bean + */ + @Bean + @ConditionalOnProperty(prefix = "yudao.voice.providers.cosyvoice", name = "enabled", havingValue = "true", matchIfMissing = true) + public CosyVoiceProviderConfig cosyVoiceProviderConfig(VoiceProviderProperties properties) { + VoiceProviderProperties.ProviderConfig baseConfig = properties.getProviderConfig("cosyvoice"); + if (baseConfig == null) { + baseConfig = new VoiceProviderProperties.ProviderConfig(); + } + + CosyVoiceProviderConfig config = new CosyVoiceProviderConfig(); + config.setEnabled(baseConfig.isEnabled()); + config.setApiKey(baseConfig.getApiKey()); + config.setPriority(baseConfig.getPriority()); + return config; + } + +} diff --git a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/service/TikUserVoiceServiceImpl.java b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/service/TikUserVoiceServiceImpl.java index 03bd1f5a0e..09e7a0cf8e 100644 --- a/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/service/TikUserVoiceServiceImpl.java +++ b/yudao-module-tik/src/main/java/cn/iocoder/yudao/module/tik/voice/service/TikUserVoiceServiceImpl.java @@ -25,7 +25,6 @@ import cn.iocoder.yudao.module.tik.voice.client.dto.VoiceCloneRequest; import cn.iocoder.yudao.module.tik.voice.client.dto.VoiceCloneResult; import cn.iocoder.yudao.module.tik.voice.client.dto.VoiceTtsRequest; import cn.iocoder.yudao.module.tik.voice.client.dto.VoiceTtsResult; -import cn.iocoder.yudao.module.tik.voice.config.VoiceProviderProperties; import cn.iocoder.yudao.module.tik.voice.dal.dataobject.TikUserVoiceDO; import cn.iocoder.yudao.module.tik.voice.dal.mysql.TikUserVoiceMapper; import cn.iocoder.yudao.module.tik.voice.vo.AppTikUserVoiceCreateReqVO; @@ -88,7 +87,7 @@ public class TikUserVoiceServiceImpl implements TikUserVoiceService { private VoiceCloneProviderFactory voiceProviderFactory; @Resource - private VoiceProviderProperties voiceProviderProperties; + private cn.iocoder.yudao.module.tik.voice.config.CosyVoiceProviderConfig cosyVoiceProviderConfig; @Resource private StringRedisTemplate stringRedisTemplate; @@ -648,13 +647,7 @@ public class TikUserVoiceServiceImpl implements TikUserVoiceService { * 获取 CosyVoice 配置 */ private cn.iocoder.yudao.module.tik.voice.config.CosyVoiceProviderConfig getCosyVoiceConfig() { - if (voiceProviderProperties != null) { - var config = voiceProviderProperties.getProviderConfig("cosyvoice"); - if (config instanceof cn.iocoder.yudao.module.tik.voice.config.CosyVoiceProviderConfig cosyConfig) { - return cosyConfig; - } - } - return null; + return cosyVoiceProviderConfig; } /**