Spaces:
Sleeping
Sleeping
File size: 2,977 Bytes
4e70d0d cb0a021 4e70d0d cb0a021 a945a59 cb0a021 a945a59 cb0a021 4e70d0d a945a59 af08bbe a945a59 af08bbe a945a59 af08bbe 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));
// Step 2: Ask for Name
audioPlayer.src = "/static/ask_name.mp3";
audioPlayer.play();
await new Promise(resolve => setTimeout(resolve, 3000));
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));
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>
|