Spaces:
Building
Building
<html lang="en"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>Video Display</title> | |
<style> | |
body { | |
font-family: Arial, sans-serif; | |
text-align: center; | |
margin: 0; | |
padding: 0; | |
background-color: #f8f9fa; | |
} | |
.container { | |
margin: 50px auto; | |
width: 80%; | |
} | |
.header { | |
background-color: #e9ecef; | |
padding: 20px; | |
border-radius: 5px; | |
margin-bottom: 20px; | |
} | |
.header h1 { | |
font-size: 24px; | |
margin: 0; | |
} | |
.video-container { | |
display: flex; | |
justify-content: center; | |
margin-bottom: 20px; | |
} | |
video { | |
width: 640px; | |
height: 480px; | |
border: 2px solid #dee2e6; | |
border-radius: 5px; | |
} | |
.footer { | |
font-size: 14px; | |
color: #6c757d; | |
} | |
</style> | |
</head> | |
<body> | |
<div class="container"> | |
<div class="header clearfix"> | |
<h3 class="text-muted"> American Sign Langage Translation - Flask Demo</h3> | |
</div> | |
<div class="jumbotron"> | |
<h1>Text to Sign Langage translator🏵️🌺🌸</h1> | |
</div> | |
<form action="{{ url_for('result') }}" method="post"> | |
<div class="form-group row"> | |
<label for="inputSentence" class="col-sm-3 col-form-label">Put your text to translate here</label> | |
<div class="col-sm-8"> | |
<input type="text" class="form-control" id="inputSentence" name="inputSentence" placeholder="text to translate"> | |
</div> | |
</div> | |
<div class="form-group row"> | |
<div class="col-sm-5"> | |
<button type="submit" class="btn btn-primary">Translate</button> | |
</div> | |
</div> | |
</form> | |
<div class="container"> | |
<div class="row"> | |
<div class="col-8" style="background-color: lightblue;"> | |
This is the text you want to translate | |
</div> | |
<div class="col-4" style="background-color: lightgreen;"> | |
<div id="output" class="border p-2"> | |
{{ sentence }} | |
</div> | |
</div> | |
</div> | |
</div> | |
<!--<div class="container"> | |
<div class="row"> | |
<div class="col-8" style="background-color: lightblue;"> | |
This is the text gloss list we have generated: | |
</div> | |
<div class="col-4" style="background-color: lightgreen;"> | |
<div id="output" class="border p-2"> | |
{{ gloss_list }} | |
</div> | |
</div> | |
</div> | |
</div>--> | |
<div class="container"> | |
<div class="row"> | |
<div class="col-8" style="background-color: lightblue;"> | |
This is the gloss list we have generated: | |
</div> | |
<div class="col-4" style="background-color: lightgreen;"> | |
<div id="output" class="border p-2"> | |
{{ gloss_sentence }} | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="header"> | |
<h1>🌸🌺 Sign Langage Translation 🌺🌸</h1> | |
</div> | |
<div class="video-container"> | |
<img id="stream" data-gloss-sentence="{{ gloss_sentence }}" src="{{ url_for('video_feed', gloss_sentence=gloss_sentence) }}" alt="Streaming video"> | |
</div> | |
<script> | |
// Variable globale pour contrôler le rafraîchissement de l'image | |
var refresh = true; | |
// Fonction pour rafraîchir l'image toutes les 40ms (25 FPS) | |
function refreshImage() { | |
if (!refresh) return; // Arrête le rafraîchissement si la variable est définie sur false | |
var img = document.getElementById('stream'); | |
var gloss_sentence = img.getAttribute('data-gloss-sentence'); // Récupère la phrase depuis l'attribut data-sentence | |
img.src = "{{ url_for('video_feed') }}" + "?gloss_sentence=" + encodeURIComponent(gloss_sentence) + "&t=" + new Date().getTime(); // Ajoute un paramètre de requête unique pour forcer le rafraîchissement de l'image | |
setTimeout(refreshImage, 40); // Appel récursif pour rafraîchir l'image | |
} | |
// Démarrer le rafraîchissement de l'image | |
refreshImage(); | |
</script> | |
<button onclick="window.history.back()">Back</button> | |
<div class="footer"> | |
© team Chaima | |
</div> | |
</div> | |
</body> | |
</html> | |