Update index.html
Browse files- index.html +10 -7
index.html
CHANGED
|
@@ -729,13 +729,16 @@
|
|
| 729 |
|
| 730 |
const finalLyrics = isInstrumental ? "" : lyrics;
|
| 731 |
|
| 732 |
-
// **
|
| 733 |
const taskType = uploadedAudioObj ? "prompt" : "text2music";
|
| 734 |
-
|
|
|
|
|
|
|
|
|
|
| 735 |
const payload = [
|
| 736 |
getVal('model_select'),
|
| 737 |
"custom",
|
| 738 |
-
uploadedAudioObj,
|
| 739 |
getVal('duration_select'),
|
| 740 |
musicPrompt,
|
| 741 |
finalLyrics,
|
|
@@ -790,7 +793,7 @@
|
|
| 790 |
playerWrapper.innerHTML += `<div class="audio-item"><audio controls autoplay src="${fullUrl}"></audio></div>`;
|
| 791 |
}
|
| 792 |
|
| 793 |
-
//
|
| 794 |
function traverse(obj) {
|
| 795 |
if (typeof obj === 'string') {
|
| 796 |
if (obj.includes('/file=') && (obj.endsWith('.mp3') || obj.endsWith('.wav'))) {
|
|
@@ -801,14 +804,13 @@
|
|
| 801 |
addAudio(obj.url);
|
| 802 |
}
|
| 803 |
if (obj.path && (obj.path.endsWith('.mp3') || obj.path.endsWith('.wav'))) {
|
| 804 |
-
//
|
| 805 |
addAudio(`/gradio_api/file=${obj.path}`);
|
| 806 |
}
|
| 807 |
Object.values(obj).forEach(traverse);
|
| 808 |
}
|
| 809 |
}
|
| 810 |
|
| 811 |
-
// Check data structure carefully
|
| 812 |
if (data && data.data) {
|
| 813 |
data.data.forEach(item => traverse(item));
|
| 814 |
} else {
|
|
@@ -823,7 +825,8 @@
|
|
| 823 |
finalLyricsBox.innerHTML = formatLyrics(lyrics);
|
| 824 |
window.scrollTo({ top: 0, behavior: 'smooth' });
|
| 825 |
} else {
|
| 826 |
-
|
|
|
|
| 827 |
step1.style.display = 'block';
|
| 828 |
historySection.style.display = 'block';
|
| 829 |
}
|
|
|
|
| 729 |
|
| 730 |
const finalLyrics = isInstrumental ? "" : lyrics;
|
| 731 |
|
| 732 |
+
// ** اصلاح منطق: اگر صدا آپلود شده باشد، تسک به 'prompt' تغییر میکند **
|
| 733 |
const taskType = uploadedAudioObj ? "prompt" : "text2music";
|
| 734 |
+
|
| 735 |
+
// در صورت استفاده از صدای رفرنس، ممکن است سرور به " " به عنوان متن ترانه حساس باشد
|
| 736 |
+
// اگر بی کلام است و صدای رفرنس داریم، متن را خالی میگذاریم
|
| 737 |
+
|
| 738 |
const payload = [
|
| 739 |
getVal('model_select'),
|
| 740 |
"custom",
|
| 741 |
+
uploadedAudioObj, // آبجکت کامل فایل صوتی
|
| 742 |
getVal('duration_select'),
|
| 743 |
musicPrompt,
|
| 744 |
finalLyrics,
|
|
|
|
| 793 |
playerWrapper.innerHTML += `<div class="audio-item"><audio controls autoplay src="${fullUrl}"></audio></div>`;
|
| 794 |
}
|
| 795 |
|
| 796 |
+
// تابع جستجوی پیشرفته برای پیدا کردن فایل صوتی در پاسخهای تودرتو
|
| 797 |
function traverse(obj) {
|
| 798 |
if (typeof obj === 'string') {
|
| 799 |
if (obj.includes('/file=') && (obj.endsWith('.mp3') || obj.endsWith('.wav'))) {
|
|
|
|
| 804 |
addAudio(obj.url);
|
| 805 |
}
|
| 806 |
if (obj.path && (obj.path.endsWith('.mp3') || obj.path.endsWith('.wav'))) {
|
| 807 |
+
// گاهی اوقات path به صورت محلی است، باید پیشوند gradio_api اضافه شود
|
| 808 |
addAudio(`/gradio_api/file=${obj.path}`);
|
| 809 |
}
|
| 810 |
Object.values(obj).forEach(traverse);
|
| 811 |
}
|
| 812 |
}
|
| 813 |
|
|
|
|
| 814 |
if (data && data.data) {
|
| 815 |
data.data.forEach(item => traverse(item));
|
| 816 |
} else {
|
|
|
|
| 825 |
finalLyricsBox.innerHTML = formatLyrics(lyrics);
|
| 826 |
window.scrollTo({ top: 0, behavior: 'smooth' });
|
| 827 |
} else {
|
| 828 |
+
console.log("Server Response:", data); // برای دیباگ در کنسول
|
| 829 |
+
alert("فایل صوتی در پاسخ سرور یافت نشد. لطفاً دوباره تلاش کنید.");
|
| 830 |
step1.style.display = 'block';
|
| 831 |
historySection.style.display = 'block';
|
| 832 |
}
|