forked from unknownreader/Sign-Bridge
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
86 lines (79 loc) · 3.89 KB
/
Copy pathindex.html
File metadata and controls
86 lines (79 loc) · 3.89 KB
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SignBridge</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
<link rel="stylesheet" href="style.css">
<!-- TensorFlow.js library -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest/dist/tf.min.js"></script>
<!-- Teachable Machine Image Model library -->
<script
src="https://cdn.jsdelivr.net/npm/@teachablemachine/image@latest/dist/teachablemachine-image.min.js"></script>
</head>
<body>
<div class="container">
<header>
<button id="theme-toggle" class="theme-btn" aria-label="Toggle Dark Mode" title="Toggle Dark Mode">
<svg id="moon-icon" xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun-icon" style="display: none;" xmlns="http://www.w3.org/2000/svg" width="22" height="22"
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
<h1>SignBridge</h1>
<p>Bridging Communication with Real-time Hand Sign Translation</p>
</header>
<!-- Main Real-Time Sign App -->
<section class="main-app">
<div class="video-container card">
<video id="webcam" autoplay playsinline muted></video>
<div id="camera-overlay" class="overlay">
<button id="start-camera-btn" class="primary-btn">Enable Camera</button>
</div>
</div>
<div class="controls">
<button id="burst-capture-btn" class="action-btn" disabled>
<span class="btn-text">Start Auto-Translate</span>
<div class="spinner" style="display: none;"></div>
</button>
<p id="capture-status">Status: Please configure settings above.</p>
</div>
<!-- Live Sign Inference Panel -->
<div class="live-detection card">
<h3>Live Feed Detection</h3>
<div class="live-stats">
<p id="live-sign-display">-</p>
<p id="live-confidence-display">Confidence: 0%</p>
</div>
</div>
<!-- Text & Translation Outputs -->
<div class="results-panel">
<div class="recognized-signs card">
<h3>Recognized Signs</h3>
<p id="signs-output">Waiting for camera and model...</p>
</div>
<div class="translation-result card highlight-card">
<h3>Translation</h3>
<p id="translation-output">Waiting for translation...</p>
</div>
</div>
</section>
</div>
<script src="config.js"></script>
<script src="script.js"></script>
</body>
</html>