document.addEventListener('DOMContentLoaded', function () { const startBtn = document.getElementById('startBtn'); // Microphone button const inputText = document.getElementById('inputText'); // Textarea const statusText = document.getElementById('statusText'); // Optional status display const timerDisplay = document.getElementById('timerDisplay'); // Timer display (if used) if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) { const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)(); recognition.lang = 'sk-SK'; // Set language to Slovak recognition.interimResults = true; recognition.continuous = true; let recognizing = false; // Recognition state let timerInterval; // Timer interval // Start/Stop speech recognition startBtn.onclick = () => { if (!recognizing) { recognition.start(); recognizing = true; startBtn.textContent = "🛑"; // Change icon to indicate recording statusText && (statusText.textContent = "Nahrávanie prebieha..."); startTimer(); } else { recognition.stop(); recognizing = false; startBtn.textContent = "🎤"; // Reset icon statusText && (statusText.textContent = "Nahrávanie ukončené."); stopTimer(); } }; // Timer functionality function startTimer() { const startTime = Date.now(); timerInterval = setInterval(() => { const elapsed = Math.floor((Date.now() - startTime) / 1000); timerDisplay && (timerDisplay.textContent = `${elapsed}s`); }, 1000); } function stopTimer() { clearInterval(timerInterval); timerDisplay && (timerDisplay.textContent = ""); } // Speech recognition results recognition.onresult = function (event) { let interim = ""; for (let i = event.resultIndex; i < event.results.length; i++) { const transcript = event.results[i][0].transcript; if (event.results[i].isFinal) { inputText.value += transcript + " "; } else { interim += transcript; } } }; // Handle recognition errors recognition.onerror = function (event) { console.error("Speech recognition error:", event.error); recognizing = false; startBtn.textContent = "🎤"; // Reset icon statusText && (statusText.textContent = "Chyba pri nahrávaní. Skúste znova."); stopTimer(); }; } else { alert("Tento prehliadač nepodporuje rozpoznávanie reči."); } });