diff --git a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/VoiceDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/VoiceDTO.java index 25358eb0..4db614ef 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/model/dto/VoiceDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/model/dto/VoiceDTO.java @@ -19,4 +19,15 @@ public class VoiceDTO implements Serializable { @Schema(description = "音色名称") private String name; + + @Schema(description = "音频播放地址") + private String voiceDemo; + + // 添加双参数构造函数,保持向后兼容 + public VoiceDTO(String id, String name) { + this.id = id; + this.name = name; + this.voiceDemo = null; + } + } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java index 8ebb2155..feb6c449 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/timbre/service/impl/TimbreServiceImpl.java @@ -133,7 +133,11 @@ public class TimbreServiceImpl extends BaseServiceImpl timbreEntities = new ArrayList<>(); } List voiceDTOs = timbreEntities.stream() - .map(entity -> new VoiceDTO(entity.getId(), entity.getName())) + .map(entity -> { + VoiceDTO dto = new VoiceDTO(entity.getId(), entity.getName()); + dto.setVoiceDemo(entity.getVoiceDemo()); + return dto; + }) .collect(Collectors.toList()); // 获取当前登录用户ID @@ -146,6 +150,8 @@ public class TimbreServiceImpl extends BaseServiceImpl VoiceDTO voiceDTO = new VoiceDTO(); voiceDTO.setId(entity.getId()); voiceDTO.setName(MessageUtils.getMessage(ErrorCode.VOICE_CLONE_PREFIX) + entity.getName()); + // 保留从数据库查询到的voiceDemo字段 + voiceDTO.setVoiceDemo(entity.getVoiceDemo()); redisUtils.set(RedisKeys.getTimbreNameById(voiceDTO.getId()), voiceDTO.getName(), RedisUtils.NOT_EXPIRE); voiceDTOs.add(0, voiceDTO); @@ -205,6 +211,9 @@ public class TimbreServiceImpl extends BaseServiceImpl if (list.isEmpty()) { return null; } - return new VoiceDTO(list.get(0).getId(), list.get(0).getName()); + TimbreEntity entity = list.get(0); + VoiceDTO dto = new VoiceDTO(entity.getId(), entity.getName()); + dto.setVoiceDemo(entity.getVoiceDemo()); + return dto; } } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java index cdfb5cf1..3550c48b 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/voiceclone/service/impl/VoiceCloneServiceImpl.java @@ -164,6 +164,9 @@ public class VoiceCloneServiceImpl extends BaseServiceImpl diff --git a/main/manager-web/src/views/roleConfig.vue b/main/manager-web/src/views/roleConfig.vue index 7e644a40..abee542b 100644 --- a/main/manager-web/src/views/roleConfig.vue +++ b/main/manager-web/src/views/roleConfig.vue @@ -3,7 +3,7 @@
-

{{ $t('roleConfig.title') }}

+

{{ $t("roleConfig.title") }}

@@ -12,21 +12,21 @@
- +
{{ form.agentName }}
- - {{ $t('roleConfig.restartNotice') }} + + {{ $t("roleConfig.restartNotice") }}
- {{ $t('roleConfig.saveConfig') }} + {{ $t("roleConfig.saveConfig") }} - {{ $t('roleConfig.reset') }} - + {{ + $t("roleConfig.reset") + }} +
@@ -36,71 +36,144 @@
- +
-
+
{{ template.agentName }}
- + - + - - + + - - + +
- - + +
- - + +
- +
- - + +
- +
功能名称: {{ func.name }}
@@ -108,25 +181,74 @@ {{ getFunctionDisplayChar(func.name) }}
- - {{ $t('roleConfig.editFunctions') }} + + {{ $t("roleConfig.editFunctions") }}
-
- - {{ $t('roleConfig.reportText') }} - {{ $t('roleConfig.reportTextVoice') }} +
+ + {{ + $t("roleConfig.reportText") + }} + {{ + $t("roleConfig.reportTextVoice") + }}
- - + + +
+ {{ item.label }} + +
+
@@ -137,19 +259,27 @@
- + \ No newline at end of file +