File size: 7,095 Bytes
2b66289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20d3c9a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2b66289
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20d3c9a
2b66289
 
 
 
 
 
 
 
 
 
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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>HandSpeak AI Translator  ✋</title>
    <link rel="stylesheet" href="style.css">
    <script src="https://cdn.tailwindcss.com"></script>
    <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
    <script src="https://unpkg.com/feather-icons"></script>
    <script src="components/navbar.js"></script>
    <script src="components/footer.js"></script>
</head>
<body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
    <custom-navbar></custom-navbar>
    <header class="bg-gradient-to-r from-gray-900 to-gray-800 py-20">
      <div class="container mx-auto px-4 text-center">
        <h1 class="text-5xl md:text-6xl font-bold mb-6 text-transparent bg-clip-text bg-gradient-to-r from-teal-400 to-blue-500">
          HandSpeak AI Translator
        </h1>
        <p class="text-xl md:text-2xl text-gray-300 max-w-3xl mx-auto mb-8">
          Real-time sign language recognition powered by AI and computer vision
        </p>
        <div class="flex flex-wrap justify-center gap-4">
          <a href="/pricing.html" class="bg-teal-600 hover:bg-teal-500 text-white px-8 py-3 rounded-lg font-medium transition text-lg">
            View Pricing
          </a>
          <a href="/about.html" class="bg-gray-700 hover:bg-gray-600 text-white px-8 py-3 rounded-lg font-medium transition text-lg">
            Learn More
          </a>
        </div>
      </div>
    </header>
<main class="flex-grow container mx-auto px-4 py-8">
        <div class="max-w-6xl mx-auto">
            <div class="text-center mb-12">
                <h1 class="text-4xl md:text-5xl font-bold mb-4 text-transparent bg-clip-text bg-gradient-to-r from-teal-400 to-blue-500">
                    HandSpeak AI Translator
                </h1>
                <p class="text-xl text-gray-300 max-w-2xl mx-auto">
                    Real-time sign language recognition using AI and computer vision
                </p>
            </div>

            <div class="flex flex-col lg:flex-row gap-8">
                <!-- Video Feed Section -->
                <div class="lg:w-2/3">
                    <div class="relative rounded-xl overflow-hidden shadow-2xl bg-black">
                        <video id="video" class="w-full" autoplay muted playsinline></video>
                        <canvas id="overlay" class="absolute top-0 left-0 w-full h-full" width="640" height="480"></canvas>
                    </div>
                    <div id="status" class="mt-4 text-center text-lg font-medium text-teal-400">
                        Status: Initializing...
                    </div>
                </div>

                <!-- Controls Section -->
                <div class="lg:w-1/3 bg-gray-800 rounded-xl p-6 shadow-xl">
                    <h3 class="text-2xl font-bold mb-6 text-center flex items-center justify-center gap-2">
                        <i data-feather="settings"></i> Controls
                    </h3>

                    <div class="space-y-6">
                        <!-- Label Management -->
                        <div>
                            <label class="block text-sm font-medium mb-1">Add New Sign</label>
                            <div class="flex gap-2">
                                <input id="labelInput" type="text" placeholder="e.g. Hello, A" 
                                    class="flex-grow bg-gray-700 border border-gray-600 rounded-lg px-4 py-2 focus:ring-2 focus:ring-teal-500 focus:border-transparent">
                                <button id="addLabel" class="bg-teal-600 hover:bg-teal-500 text-white px-4 py-2 rounded-lg transition">
                                    Add
                                </button>
                            </div>
                        </div>

                        <!-- Labels Display -->
                        <div id="labelsArea" class="space-y-2 max-h-40 overflow-y-auto pr-2"></div>

                        <!-- Recording Controls -->
                        <div class="space-y-3">
                            <button id="toggleRec" class="w-full bg-blue-600 hover:bg-blue-500 text-white px-4 py-3 rounded-lg font-medium transition">
                                Start Recording Examples
                            </button>
                            <button id="predictToggle" class="w-full bg-purple-600 hover:bg-purple-500 text-white px-4 py-3 rounded-lg font-medium transition">
                                Start Predicting
                            </button>
                        </div>

                        <!-- Data Management -->
                        <div class="grid grid-cols-2 gap-3">
                            <button id="saveBtn" class="bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-lg transition">
                                Save Dataset
                            </button>
                            <button id="loadBtn" class="bg-gray-700 hover:bg-gray-600 text-white px-4 py-2 rounded-lg transition">
                                Load Dataset
                            </button>
                            <input type="file" id="fileInput" class="hidden">
                        </div>

                        <!-- Prediction Display -->
                        <div class="bg-gray-700 rounded-lg p-4">
                            <div class="flex justify-between items-center mb-2">
                                <span class="font-medium">Current Prediction:</span>
                                <span id="prediction" class="text-xl font-bold text-yellow-400"></span>
                            </div>
                            <div class="h-2 bg-gray-600 rounded-full overflow-hidden">
                                <div id="confidenceBar" class="h-full bg-teal-500" style="width: 0%"></div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>

            <!-- Dataset JSON -->
            <div class="mt-8 bg-gray-800 rounded-xl p-6 shadow-xl">
                <h3 class="text-xl font-bold mb-4 flex items-center gap-2">
                    <i data-feather="database"></i> Dataset JSON
                </h3>
                <textarea id="datasetJSON" readonly 
                    class="w-full h-40 bg-gray-700 border border-gray-600 rounded-lg p-3 font-mono text-sm"></textarea>
            </div>
        </div>
    </main>
    <custom-footer></custom-footer>
<!-- Scripts -->
    <script src="https://cdn.jsdelivr.net/npm/@mediapipe/hands/hands.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@mediapipe/drawing_utils/drawing_utils.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@mediapipe/camera_utils/camera_utils.js"></script>
    <script src="script.js"></script>
    <script>
        feather.replace();
    </script>
<script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
</body>
</html>