File size: 3,574 Bytes
4e70d0d
 
 
 
 
d4eb4c5
 
5adc22d
0e4d29e
 
d4eb4c5
7d3c48f
19b4f7c
5adc22d
a92c97e
d4eb4c5
0e4d29e
5adc22d
a92c97e
d4eb4c5
a945a59
5adc22d
a92c97e
5adc22d
 
d4eb4c5
 
a945a59
d4eb4c5
 
 
450cc5e
a945a59
d4eb4c5
 
450cc5e
6bd41b6
d4eb4c5
 
 
 
5419508
6bd41b6
 
450cc5e
d4eb4c5
 
9a74cb9
450cc5e
 
 
 
6bd41b6
 
450cc5e
6bd41b6
450cc5e
6bd41b6
450cc5e
6bd41b6
 
7d43ab3
450cc5e
5adc22d
 
 
450cc5e
3811ea2
5adc22d
 
450cc5e
 
 
 
 
 
 
 
 
 
 
 
 
d4eb4c5
 
 
 
5adc22d
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
<!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">
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</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 isNameCaptured = false;
        let isEmailCaptured = 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 startProcess() {
            speak("Welcome to Biryani Hub", function() {
                speak("Tell me your name", startListening);
            });
        }

        function startListening() {
            const status = document.getElementById('status');
            const nameInput = document.getElementById('name');
            const emailInput = document.getElementById('email');
            
            recognition.start();
            recognition.onresult = function(event) {
                let transcript = event.results[0][0].transcript.trim();
                
                // Remove any spaces from the name input
                transcript = transcript.replace(/\s+/g, '');

                if (isNameCaptured && !isEmailCaptured) {
                    let cleanedEmail = transcript.replace(/\b(at|At|AT)\b/g, '@').replace(/\s+/g, '');
                    cleanedEmail = cleanedEmail.replace(/@{2,}/g, '@');
                    emailInput.value = cleanedEmail.charAt(0).toUpperCase() + cleanedEmail.slice(1);
                    status.textContent = 'Registration complete.';
                    speak("Registration complete. Go to the next step and take the order you want.");
                    setTimeout(() => location.reload(), 20000);
                    isEmailCaptured = true;
                } else if (!isNameCaptured) {
                    nameInput.value = transcript;
                    status.textContent = 'Listening for your email...';
                    recognition.stop();
                    isNameCaptured = true;
                    speak("Tell me your email", function() {
                        recognition.start();
                    });
                }
            };
        }

        window.onload = function () {
            setTimeout(startProcess, 4000);
        };
    </script>
</body>
</html>