CHUYEN_MP3 / templates /index1.html
mrsu0994
upload f5-tts source
1ddca60
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>F5-TTS Suy Luận Tiếng Việt</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; }
.container { max-width: 600px; margin: auto; }
textarea, input[type="file"], button { width: 100%; margin: 10px 0; padding: 10px; }
#result { margin-top: 20px; }
</style>
</head>
<body>
<div class="container">
<h2>F5-TTS Suy Luận Tiếng Việt</h2>
<p>Chọn file âm thanh tham chiếu và nhập văn bản để tạo giọng nói.</p>
<input type="file" id="refAudio" accept="audio/*">
<textarea id="refText" rows="3" placeholder="Văn bản tham chiếu (nếu có)..."></textarea>
<textarea id="genText" rows="3" placeholder="Văn bản cần tạo giọng nói..."></textarea>
<button onclick="generateSpeech()">Tạo Giọng Nói</button>
<div id="result"></div>
</div>
<script>
async function generateSpeech() {
const refAudio = document.getElementById('refAudio').files[0];
const refText = document.getElementById('refText').value;
const genText = document.getElementById('genText').value;
const resultDiv = document.getElementById('result');
if (!refAudio || !genText) {
resultDiv.innerHTML = "Vui lòng chọn file âm thanh và nhập văn bản!";
return;
}
const formData = new FormData();
formData.append('ref_audio', refAudio);
formData.append('ref_text', refText);
formData.append('gen_text', genText);
formData.append('model', 'F5TTS_Base');
formData.append('speed', 1.0);
resultDiv.innerHTML = "Đang xử lý...";
try {
const response = await fetch('/api/generate', {
method: 'POST',
body: formData
});
if (response.ok) {
const data = await response.blob();
const audioUrl = URL.createObjectURL(data);
resultDiv.innerHTML = `<audio controls><source src="${audioUrl}" type="audio/wav">Trình duyệt của bạn không hỗ trợ âm thanh.</audio>`;
} else {
const errorText = await response.text();
resultDiv.innerHTML = `Lỗi: ${errorText}`;
}
} catch (error) {
resultDiv.innerHTML = `Lỗi: ${error.message}`;
}
}
</script>