File size: 7,287 Bytes
4e70d0d
 
 
 
 
d4eb4c5
 
fc1bc87
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7004432
fc1bc87
 
 
 
 
 
 
 
 
 
 
 
 
0e4d29e
 
d4eb4c5
7d3c48f
19b4f7c
5adc22d
a92c97e
d4eb4c5
0e4d29e
5adc22d
a92c97e
d4eb4c5
a945a59
5adc22d
a92c97e
5adc22d
 
d4eb4c5
 
a945a59
d4eb4c5
 
7004432
 
8af8df5
 
a945a59
d4eb4c5
 
7004432
6bd41b6
d4eb4c5
 
 
 
5419508
6bd41b6
 
7004432
d4eb4c5
 
9a74cb9
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
 
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
191
192
193
194
<!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: 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; /* 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;
            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>
        
        <!-- Name Input Field -->
        <label for="name">Your Name</label>
        <input type="text" id="name" placeholder="Your name will appear here..." readonly>

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

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

        <!-- Status Message -->
        <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, "");
                
                // Replace "AT" with "@", "DOT" with "."
                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>