Spaces:
Sleeping
Sleeping
File size: 3,063 Bytes
4e70d0d cb0a021 4e70d0d cb0a021 a945a59 cb0a021 a945a59 cb0a021 4e70d0d a945a59 acd260b a945a59 acd260b a945a59 acd260b a945a59 4e70d0d a945a59 4e70d0d a945a59 4e70d0d a945a59 4e70d0d a945a59 4e70d0d a945a59 4e70d0d a945a59 4e70d0d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Biryani Hub</title>
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}">
</head>
<body>
<div class="container">
<h1>Biryani Hub</h1>
<label for="name">Name</label>
<input type="text" id="name" placeholder="Your name will appear here..." readonly>
<label for="email">Email</label>
<input type="text" id="email" placeholder="Your email will appear here..." readonly>
<p class="instructions">Voice interaction in progress...</p>
<audio id="audio-player" autoplay></audio>
</div>
<script>
async function startVoiceInteraction() {
let audioPlayer = document.getElementById("audio-player");
// Step 1: Welcome Message
audioPlayer.src = "/static/welcome.mp3";
audioPlayer.play();
await new Promise(resolve => setTimeout(resolve, 2000)); // Wait for welcome message to play
// Step 2: Ask for Name
audioPlayer.src = "/static/ask_name.mp3";
audioPlayer.play();
await new Promise(resolve => setTimeout(resolve, 3000)); // Wait before recording
let name = await recordAndProcessAudio();
document.getElementById("name").value = name;
// Step 3: Ask for Email
audioPlayer.src = "/static/ask_email.mp3";
audioPlayer.play();
await new Promise(resolve => setTimeout(resolve, 3000)); // Wait before recording
let email = await recordAndProcessAudio();
document.getElementById("email").value = email;
// Step 4: Thank You Message
audioPlayer.src = "/static/thank_you.mp3";
audioPlayer.play();
}
async function recordAndProcessAudio() {
let stream = await navigator.mediaDevices.getUserMedia({ audio: true });
let mediaRecorder = new MediaRecorder(stream);
let audioChunks = [];
mediaRecorder.ondataavailable = event => {
audioChunks.push(event.data);
};
return new Promise(resolve => {
mediaRecorder.onstop = async () => {
let audioBlob = new Blob(audioChunks, { type: 'audio/wav' });
let formData = new FormData();
formData.append("audio", audioBlob, "input.wav");
let response = await fetch("/process_audio", {
method: "POST",
body: formData
});
let result = await response.json();
resolve(result.text || "Error capturing speech");
};
mediaRecorder.start();
setTimeout(() => mediaRecorder.stop(), 4000);
});
}
window.onload = startVoiceInteraction;
</script>
</body>
</html>
|