File size: 7,024 Bytes
4e70d0d d4eb4c5 fc1bc87 c179edd fc1bc87 c179edd fc1bc87 7004432 fc1bc87 0e4d29e d4eb4c5 7d3c48f 19b4f7c a92c97e d4eb4c5 0e4d29e a92c97e d4eb4c5 a945a59 a92c97e d4eb4c5 a945a59 d4eb4c5 7004432 8af8df5 a945a59 d4eb4c5 7004432 6bd41b6 d4eb4c5 5419508 6bd41b6 7004432 d4eb4c5 9a74cb9 fc1bc87 c179edd fc1bc87 7004432 4567551 7004432 8af8df5 7004432 d108c10 7004432 8af8df5 d108c10 7004432 0ebf5ef 4567551 7004432 fc63e50 6bd41b6 fc1bc87 6bd41b6 d108c10 8af8df5 4567551 646a98b 4567551 646a98b fc1bc87 6bd41b6 c179edd 6bd41b6 7004432 4567551 7004432 8af8df5 7004432 4567551 d108c10 7004432 20ea335 4567551 7004432 fc63e50 d4eb4c5 fc1bc87 7004432 fc1bc87 d4eb4c5 7004432 d4eb4c5 b31d6fc d4eb4c5 |
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 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Biryani Hub Registration</title>
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500&display=swap" rel="stylesheet">
<style>
body {
font-family: 'Roboto', sans-serif;
background: linear-gradient(135deg, #f4c542, #ff8f6a);
margin: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
text-align: center;
}
.container {
background: lightblue;
padding: 40px 50px;
border-radius: 10px;
width: 400px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}
h1 {
font-size: 30px;
font-weight: bold;
color: #ff6a00;
}
label {
font-size: 18px;
margin-top: 20px;
display: block;
text-align: left;
}
input[type="text"] {
width: 100%;
padding: 10px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 5px;
margin-top: 8px;
text-transform: uppercase;
}
.info {
margin-top: 20px;
font-size: 16px;
color: #ff6a00;
font-weight: bold;
}
.status {
font-size: 14px;
color: gray;
margin-top: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1>Welcome to Biryani Hub</h1>
<label for="name">Your Name</label>
<input type="text" id="name" placeholder="Your name will appear here..." readonly>
<label for="email">Your Email</label>
<input type="text" id="email" placeholder="Your email will appear here..." readonly>
<p class="info" id="infoMessage">Listening will start automatically...</p>
<p class="status" id="status">Initializing...</p>
</div>
<script>
let recognition;
let currentName = "";
let currentEmail = "";
let isCapturingName = true;
let isCapturingEmail = false;
if ('webkitSpeechRecognition' in window) {
recognition = new webkitSpeechRecognition();
recognition.continuous = false;
recognition.interimResults = false;
recognition.lang = 'en-US';
} else {
alert("Speech Recognition API is not supported in this browser.");
}
function speak(text, callback) {
const speech = new SpeechSynthesisUtterance(text);
speech.onend = callback;
window.speechSynthesis.speak(speech);
}
function startListeningForName() {
const status = document.getElementById('status');
const nameInput = document.getElementById('name');
status.textContent = "Listening for your name...";
recognition.start();
recognition.onresult = function(event) {
let transcript = event.results[0][0].transcript.trim().toUpperCase().replace(/\s+/g, "");
if (transcript === "NEXT") {
recognition.stop();
isCapturingName = false;
isCapturingEmail = true;
status.textContent = "Your name is: " + currentName;
speak("Your name is " + currentName + ". If correct, say 'confirm'. If wrong, say 'edit'.", function() {
recognition.start();
recognition.onresult = function(event) {
let confirmTranscript = event.results[0][0].transcript.trim().toLowerCase();
if (confirmTranscript === "confirm") {
speak("Now, please tell me your email, letter by letter", startListeningForEmail);
} else if (confirmTranscript === "edit") {
currentName = "";
nameInput.value = "";
speak("Tell your name again.", startListeningForName);
}
};
});
return;
}
currentName += transcript;
nameInput.value = currentName;
};
}
function startListeningForEmail() {
const status = document.getElementById('status');
const emailInput = document.getElementById('email');
recognition = new webkitSpeechRecognition();
recognition.continuous = false;
recognition.interimResults = false;
recognition.lang = 'en-US';
status.textContent = "Listening for your email...";
recognition.start();
recognition.onresult = function(event) {
let transcript = event.results[0][0].transcript.trim().toUpperCase().replace(/\s+/g, "");
transcript = transcript.replace(/\bAT\b/g, "@").replace(/\bDOT\b/g, ".");
if (transcript === "NEXT") {
recognition.stop();
isCapturingEmail = false;
status.textContent = "Your email is: " + currentEmail;
speak("Your email is " + currentEmail + ". If correct, say 'confirm'. If wrong, say 'edit'.", function() {
recognition.start();
recognition.onresult = function(event) {
let confirmTranscript = event.results[0][0].transcript.trim().toLowerCase();
if (confirmTranscript === "confirm") {
speak("Registration complete. Thank you!", function() {
setTimeout(() => location.reload(), 10000);
});
} else if (confirmTranscript === "edit") {
currentEmail = "";
emailInput.value = "";
speak("Tell your email again.", startListeningForEmail);
}
};
});
return;
}
currentEmail += transcript;
emailInput.value = currentEmail;
};
}
function startProcess() {
speak("Welcome to Biryani Hub", function() {
speak("Tell me your name, letter by letter, and say 'next' when you're done", startListeningForName);
});
}
window.onload = function () {
setTimeout(startProcess, 4000);
};
</script>
</body>
</html>
|