mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-27 01:23:55 +08:00
优化代码逻辑
This commit is contained in:
@@ -599,17 +599,12 @@ export default {
|
|||||||
this.voiceOptions = data.data.map((voice) => ({
|
this.voiceOptions = data.data.map((voice) => ({
|
||||||
value: voice.id,
|
value: voice.id,
|
||||||
label: voice.name,
|
label: voice.name,
|
||||||
// 复制音频相关字段,确保hasAudioPreview能检测到
|
// 只保留后端实际返回的音频相关字段
|
||||||
voiceDemo: voice.voiceDemo,
|
voiceDemo: voice.voiceDemo,
|
||||||
demoUrl: voice.demoUrl,
|
|
||||||
audioUrl: voice.audioUrl,
|
|
||||||
voice_demo: voice.voice_demo,
|
voice_demo: voice.voice_demo,
|
||||||
sample_voice: voice.sample_voice,
|
// 使用后端实际返回的 isClone 字段
|
||||||
referenceAudio: voice.referenceAudio,
|
isClone: Boolean(voice.isClone),
|
||||||
// 新增:添加克隆音频相关字段
|
// 保存训练状态字段
|
||||||
cloneAudioUrl: voice.cloneAudioUrl,
|
|
||||||
hasCloneAudio: voice.hasCloneAudio || false,
|
|
||||||
// 保存训练状态字段,用于判断是否为克隆音频
|
|
||||||
train_status: voice.trainStatus,
|
train_status: voice.trainStatus,
|
||||||
}));
|
}));
|
||||||
// 保存完整的音色信息,添加调试信息
|
// 保存完整的音色信息,添加调试信息
|
||||||
@@ -746,11 +741,15 @@ export default {
|
|||||||
},
|
},
|
||||||
// 检查是否有音频预览
|
// 检查是否有音频预览
|
||||||
hasAudioPreview(item) {
|
hasAudioPreview(item) {
|
||||||
// 极度简化逻辑:
|
// 检查是否为克隆音频
|
||||||
// 1. 如果hasCloneAudio字段存在且不为false/0,就显示播放按钮
|
// 使用后端实际返回的 isClone 字段
|
||||||
// 2. 否则检查是否有有效的音频URL
|
const isCloneAudio = Boolean(item.isClone);
|
||||||
return (item.hasCloneAudio && item.hasCloneAudio !== 'false' && item.hasCloneAudio !== '0') ||
|
|
||||||
!!((item.voice_demo || item.voiceDemo || item.demoUrl || item.audioUrl || item.sample_voice || item.referenceAudio || item.cloneAudioUrl)?.trim());
|
// 检查是否有有效的音频URL,只使用后端实际返回的字段
|
||||||
|
const hasValidAudioUrl = !!((item.voice_demo || item.voiceDemo)?.trim());
|
||||||
|
|
||||||
|
// 克隆音频始终显示播放按钮,普通音频需要有有效URL才显示
|
||||||
|
return isCloneAudio || hasValidAudioUrl;
|
||||||
},
|
},
|
||||||
|
|
||||||
// 播放/暂停音频切换
|
// 播放/暂停音频切换
|
||||||
@@ -809,10 +808,8 @@ export default {
|
|||||||
let isCloneAudio = false;
|
let isCloneAudio = false;
|
||||||
|
|
||||||
if (voiceDetail) {
|
if (voiceDetail) {
|
||||||
// 首先检查是否是克隆音频(通过ID格式判断,非TTS开头的ID)
|
// 使用后端实际返回的 isClone 字段判断是否为克隆音频
|
||||||
isCloneAudio =
|
isCloneAudio = Boolean(voiceDetail.isClone);
|
||||||
voiceDetail.hasCloneAudio ||
|
|
||||||
(voiceDetail.id && !voiceDetail.id.startsWith("TTS"));
|
|
||||||
console.log(
|
console.log(
|
||||||
"克隆音频判断结果:",
|
"克隆音频判断结果:",
|
||||||
isCloneAudio,
|
isCloneAudio,
|
||||||
@@ -912,14 +909,10 @@ export default {
|
|||||||
// 返回,避免继续执行下面的普通音频播放逻辑
|
// 返回,避免继续执行下面的普通音频播放逻辑
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
// 对于普通音频,尝试各种可能的URL字段
|
// 对于普通音频,只使用后端实际返回的字段
|
||||||
audioUrl =
|
audioUrl =
|
||||||
voiceDetail.voiceDemo ||
|
voiceDetail.voiceDemo ||
|
||||||
voiceDetail.demoUrl ||
|
voiceDetail.voice_demo;
|
||||||
voiceDetail.audioUrl ||
|
|
||||||
voiceDetail.voice_demo ||
|
|
||||||
voiceDetail.sample_voice ||
|
|
||||||
voiceDetail.cloneAudioUrl; // 克隆音频URL
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果没有找到,尝试检查是否有URL格式的字段
|
// 如果没有找到,尝试检查是否有URL格式的字段
|
||||||
|
|||||||
Reference in New Issue
Block a user