|
<!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: white; |
|
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; |
|
} |
|
.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>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="info">Listening will start automatically...</p> |
|
|
|
|
|
<p class="status" id="status">Initializing...</p> |
|
</div> |
|
|
|
<script> |
|
let recognition; |
|
let isListening = false; |
|
let isNameCaptured = false; |
|
|
|
|
|
if ('webkitSpeechRecognition' in window) { |
|
recognition = new webkitSpeechRecognition(); |
|
recognition.continuous = true; |
|
recognition.interimResults = true; |
|
recognition.lang = 'en-US'; |
|
} else { |
|
alert("Speech Recognition API is not supported in this browser."); |
|
} |
|
|
|
|
|
function welcomeMessage() { |
|
const welcomeMsg = "Welcome to Biryani Hub. Please say your name after the beep."; |
|
const speech = new SpeechSynthesisUtterance(welcomeMsg); |
|
window.speechSynthesis.speak(speech); |
|
} |
|
|
|
|
|
function startListening() { |
|
const status = document.getElementById('status'); |
|
const nameInput = document.getElementById('name'); |
|
const emailInput = document.getElementById('email'); |
|
|
|
status.textContent = 'Listening for your name...'; |
|
recognition.start(); |
|
|
|
|
|
recognition.onresult = function(event) { |
|
const transcript = event.results[event.resultIndex][0].transcript.trim(); |
|
console.log('Recognized Text:', transcript); |
|
if (event.results[event.resultIndex].isFinal) { |
|
if (!isNameCaptured) { |
|
|
|
nameInput.value = transcript; |
|
status.textContent = 'Listening for your email...'; |
|
isNameCaptured = true; |
|
recognition.stop(); |
|
recognition.start(); |
|
} else if (isNameCaptured && !emailInput.value) { |
|
|
|
emailInput.value = transcript; |
|
status.textContent = 'Registration complete.'; |
|
|
|
|
|
setTimeout(() => location.reload(), 15000); |
|
} |
|
} |
|
}; |
|
|
|
recognition.onerror = function(event) { |
|
console.error('Speech recognition error:', event.error); |
|
status.textContent = 'Error recognizing speech. Please try again.'; |
|
}; |
|
} |
|
|
|
|
|
window.onload = function () { |
|
welcomeMessage(); |
|
setTimeout(startListening, 5000); |
|
}; |
|
</script> |
|
</body> |
|
</html> |
|
|