File size: 5,412 Bytes
4e70d0d
 
 
 
 
ff7b68c
0e4d29e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ff7b68c
0e4d29e
 
 
 
 
 
 
 
 
 
ff7b68c
0e4d29e
 
 
 
 
 
 
 
 
a945a59
0e4d29e
 
 
a945a59
0e4d29e
 
a945a59
0e4d29e
 
 
a945a59
0e4d29e
9a74cb9
 
afdd70e
5419508
9a74cb9
 
 
 
 
 
 
 
 
 
39f158e
 
 
 
 
8d52aa5
 
3d80d68
5419508
 
 
 
 
 
 
 
 
 
 
1a8cd91
5419508
afdd70e
5419508
 
 
afdd70e
5419508
 
afdd70e
5419508
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3d80d68
 
 
 
 
 
5419508
 
 
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
<!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); /* Light gradient background */
            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; /* Bright orange for title */
        }
        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>

        <!-- Name Input Field -->
        <label for="name">Name:</label>
        <input type="text" id="name" placeholder="Your name will appear here..." readonly>

        <!-- Email Input Field -->
        <label for="email">Email:</label>
        <input type="text" id="email" placeholder="Your email will appear here..." readonly>

        <!-- Info Message for Listening -->
        <p class="info">Listening will start automatically...</p>

        <!-- Status Message -->
        <p class="status" id="status">Initializing...</p>
    </div>

    <script>
        let recognition;
        let isListening = false;
        let isNameCaptured = false;

        // Initialize speech recognition
        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 to make the welcome message speak automatically when the page loads
        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 to handle starting the listening process after the welcome message
        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();  // Start voice recognition

            // Handle recognition results
            recognition.onresult = function(event) {
                const transcript = event.results[event.resultIndex][0].transcript.trim();
                console.log('Recognized Text:', transcript); // Debugging line
                if (event.results[event.resultIndex].isFinal) {
                    if (!isNameCaptured) {
                        // If name is empty, fill it with the recognized text
                        nameInput.value = transcript;
                        status.textContent = 'Listening for your email...';
                        isNameCaptured = true; // Mark name as captured
                        recognition.stop(); // Stop listening for name
                        recognition.start(); // Start listening for email
                    } else if (isNameCaptured && !emailInput.value) {
                        // If email is empty, fill it with the recognized text
                        emailInput.value = transcript;
                        status.textContent = 'Registration complete.';

                        // After registration is complete, refresh page automatically after 15 seconds
                        setTimeout(() => location.reload(), 15000); // Refresh after 15 seconds
                    }
                }
            };

            recognition.onerror = function(event) {
                console.error('Speech recognition error:', event.error);
                status.textContent = 'Error recognizing speech. Please try again.';
            };
        }

        // Make sure to start listening as soon as the page loads
        window.onload = function () {
            welcomeMessage();  // Automatically say the welcome message
            setTimeout(startListening, 5000);  // Start listening after the welcome message
        };
    </script>
</body>
</html>