Compare commits
No commits in common. "bf7fe2654422e3a992edfe2fe436a2eb799b6a58" and "4aa5daaf7742d120f166de37193dd4b39a055a23" have entirely different histories.
bf7fe26544
...
4aa5daaf77
@ -45,12 +45,9 @@
|
||||
|
||||
|
||||
<!-- Pripojenie skriptov -->
|
||||
<script type="module" src="videoplayer.js"></script>
|
||||
<script src="kontrola_api.js"></script>
|
||||
<script src="speech_recognition.js"></script>
|
||||
<script src="videoplayer.js"></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
BIN
Script_Speech_recognition/video/adresa.mp4
Normal file
BIN
Script_Speech_recognition/video/adresa.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/alkohol.mp4
Normal file
BIN
Script_Speech_recognition/video/alkohol.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/ambulancia.mp4
Normal file
BIN
Script_Speech_recognition/video/ambulancia.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/a.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/a.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/b.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/b.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/c.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/c.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ch.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ch.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/d.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/d.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/e.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/e.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/f.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/f.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/g.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/g.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/h.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/h.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/i.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/i.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/j.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/j.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/k.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/k.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/l.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/l.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/m.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/m.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/n.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/n.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/o.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/o.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/p.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/p.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/q.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/q.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/r.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/r.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/s.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/s.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/t.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/t.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/u.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/u.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/v.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/v.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/w.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/w.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/x.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/x.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/y.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/y.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/z.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/z.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/á.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/á.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ä.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ä.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/é.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/é.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/í.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/í.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ó.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ó.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ô.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ô.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ú.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ú.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ý.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ý.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/č.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/č.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ď.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ď.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ĺ.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ĺ.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ľ.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ľ.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ň.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ň.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ŕ.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ŕ.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/š.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/š.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ť.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ť.mp4
Normal file
Binary file not shown.
BIN
Script_Speech_recognition/video/pismena/ž.mp4
Normal file
BIN
Script_Speech_recognition/video/pismena/ž.mp4
Normal file
Binary file not shown.
@ -1,9 +1,3 @@
|
||||
import { createClient } from 'https://cdn.jsdelivr.net/npm/@supabase/supabase-js/+esm';
|
||||
const supabaseUrl = 'https://manesldshonpegglmyan.supabase.co'
|
||||
const supabaseKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im1hbmVzbGRzaG9ucGVnZ2xteWFuIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTczMDcxNzQ2NCwiZXhwIjoyMDQ2MjkzNDY0fQ.saaJeTtwYZCS3YKJYmQsAOSAEFzUVUJnoJSD8-lgLHo'
|
||||
const supabase = createClient(supabaseUrl, supabaseKey)
|
||||
|
||||
// Select DOM elements
|
||||
const inputText = document.getElementById('inputText');
|
||||
const videoPlayer = document.getElementById('translationVideo');
|
||||
const translateWordsBtn = document.getElementById('translateWordsBtn');
|
||||
@ -11,15 +5,15 @@ const translateLettersBtn = document.getElementById('translateLettersBtn');
|
||||
const prevBtn = document.getElementById('prevBtn');
|
||||
const nextBtn = document.getElementById('nextBtn');
|
||||
const translateBtn = document.getElementById('translateBtn'); // Prelož button
|
||||
const statusText = document.getElementById('statusText');
|
||||
|
||||
// Translation state variables
|
||||
let videoSequence = [];
|
||||
let currentIndex = 0;
|
||||
let autoPlayEnabled = true;
|
||||
|
||||
// Variable to track the current translation method
|
||||
let currentTranslationMode = 'words'; // Default mode
|
||||
|
||||
// Function to check if video exists (for local testing)
|
||||
// Function to check if video exists
|
||||
async function videoExists(src) {
|
||||
return new Promise(resolve => {
|
||||
const video = document.createElement('video');
|
||||
@ -29,72 +23,30 @@ async function videoExists(src) {
|
||||
});
|
||||
}
|
||||
|
||||
// Function to fetch video URL from Supabase by label (for word translation)
|
||||
async function fetchVideoUrl(word) {
|
||||
const { data, error } = await supabase
|
||||
.from('Videa')
|
||||
.select('video_url')
|
||||
.eq('label', word)
|
||||
.maybeSingle(); // Use maybeSingle() instead of single()
|
||||
|
||||
if (error) {
|
||||
console.error('Error fetching video:', error);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
console.warn(`No video found for word: ${word}`);
|
||||
return null;
|
||||
}
|
||||
|
||||
return data.video_url;
|
||||
}
|
||||
|
||||
|
||||
// Function to load video sequence by words using Supabase
|
||||
// Function to load video sequence by words
|
||||
async function loadVideoSequenceByWords() {
|
||||
const words = inputText.value.trim().split(' ');
|
||||
const words = inputText.value.trim().split(' ');
|
||||
videoSequence = [];
|
||||
|
||||
for (const word of words) {
|
||||
const videoUrl = await fetchVideoUrl(word.toLowerCase());
|
||||
if (videoUrl) {
|
||||
videoSequence.push(videoUrl);
|
||||
const videoSrc = `video/${word.toLowerCase()}.mp4`;
|
||||
if (await videoExists(videoSrc)) {
|
||||
videoSequence.push(videoSrc);
|
||||
}
|
||||
}
|
||||
currentIndex = 0;
|
||||
}
|
||||
|
||||
async function fetchLetterVideoUrl(letter) {
|
||||
const { data, error } = await supabase
|
||||
.from('Videa')
|
||||
.select('video_url')
|
||||
.eq('label', letter)
|
||||
.maybeSingle(); // Use maybeSingle() for letters
|
||||
|
||||
if (error) {
|
||||
console.error('Error fetching video for letter:', letter, error);
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
console.warn(`No video found for letter: ${letter}`);
|
||||
return null;
|
||||
}
|
||||
|
||||
return data.video_url;
|
||||
}
|
||||
|
||||
// Function to load video sequence by letters using Supabase
|
||||
// Function to load video sequence by letters
|
||||
async function loadVideoSequenceByLetters() {
|
||||
const characters = inputText.value.trim().split('');
|
||||
videoSequence = [];
|
||||
|
||||
for (const char of characters) {
|
||||
if (/[a-zA-Z]/.test(char)) {
|
||||
const videoUrl = await fetchLetterVideoUrl(char.toLowerCase());
|
||||
if (videoUrl) {
|
||||
videoSequence.push(videoUrl);
|
||||
const videoSrc = `video/pismena/${char.toLowerCase()}.mp4`;
|
||||
if (await videoExists(videoSrc)) {
|
||||
videoSequence.push(videoSrc);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -109,9 +61,9 @@ function playVideoAtIndex(index) {
|
||||
videoPlayer.play();
|
||||
currentIndex = index;
|
||||
|
||||
// Update the title with the current word or letter
|
||||
const currentLabel = videoSequence[index].split('/').pop().split('.')[0];
|
||||
document.getElementById('currentLetter').innerText = currentLabel.toUpperCase();
|
||||
// Update the title with the current letter or word
|
||||
const currentChar = videoSequence[index].split('/').pop().split('.')[0];
|
||||
document.getElementById('currentLetter').innerText = currentChar.toUpperCase();
|
||||
|
||||
if (autoPlayEnabled) {
|
||||
videoPlayer.onended = () => {
|
||||
@ -131,7 +83,7 @@ function playVideoAtIndex(index) {
|
||||
translateBtn.addEventListener('click', async () => {
|
||||
autoPlayEnabled = true;
|
||||
|
||||
// Load the video sequence based on the current translation mode
|
||||
// Based on current mode, load the correct video sequence
|
||||
if (currentTranslationMode === 'words') {
|
||||
await loadVideoSequenceByWords();
|
||||
} else if (currentTranslationMode === 'letters') {
|
||||
@ -140,22 +92,20 @@ translateBtn.addEventListener('click', async () => {
|
||||
|
||||
if (videoSequence.length > 0) {
|
||||
playVideoAtIndex(currentIndex);
|
||||
} else {
|
||||
statusText.innerText = 'No videos found for the entered text.';
|
||||
}
|
||||
});
|
||||
|
||||
// Event listener for "Preložiť po slovách" button
|
||||
translateWordsBtn.addEventListener('click', () => {
|
||||
currentTranslationMode = 'words'; // Set to words mode
|
||||
translateWordsBtn.classList.add('active');
|
||||
translateWordsBtn.classList.add('active'); // Optionally add active class
|
||||
translateLettersBtn.classList.remove('active');
|
||||
});
|
||||
|
||||
// Event listener for "Preložiť po písmenách" button
|
||||
translateLettersBtn.addEventListener('click', () => {
|
||||
currentTranslationMode = 'letters'; // Set to letters mode
|
||||
translateLettersBtn.classList.add('active');
|
||||
translateLettersBtn.classList.add('active'); // Optionally add active class
|
||||
translateWordsBtn.classList.remove('active');
|
||||
});
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user