text-to-speech-demo / script.js
LukaVidakovic's picture
Update script.js
214727a
raw
history blame contribute delete
No virus
1.68 kB
async function sendQuestion() {
const questionInput = document.getElementById("questionInput");
const sendButton = document.querySelector("button");
const buttonContent = sendButton.querySelector(".button-content");
const audioResponse = document.getElementById("audioResponse");
if (questionInput.value) {
// Onemogućujemo samo dugme
sendButton.disabled = true;
buttonContent.innerHTML =
'Sending... <span class="loading-spinner"></span>';
const question = questionInput.value;
// Brisanje teksta iz polja za unos
questionInput.value = "";
try {
const response = await fetch(
"https://wnuy6xzt3e.execute-api.eu-central-1.amazonaws.com/Prod/audio/question",
{
method: "POST",
body: JSON.stringify({ transcript: question }),
headers: { "Content-Type": "application/json" },
}
);
if (response.ok) {
const audioBase64 = await response.text();
const audioSrc = `data:audio/mpeg;base64,${audioBase64}`;
audioResponse.src = audioSrc;
audioResponse.style.display = "block";
audioResponse.play();
} else {
console.error("Server error:", response.status);
}
} catch (error) {
console.error("Network error:", error);
}
// Dodavanje 'ended' događaja na audio element
audioResponse.onended = () => {
sendButton.disabled = false;
sendButton.innerHTML = '<span class="button-content">Send</span>';
};
}
}
function handleKeyPress(event) {
const sendButton = document.querySelector("button");
if (event.key === "Enter" && !sendButton.disabled) {
sendQuestion();
}
}