Nahrát soubory do „Script_Speech_recognition“
script som upravil tak aby tam nebol ziaden progress bar iba timer a nastavil tlacidl;o tak aby sa nam nahravanie vyplo az po opatovnom stlaceni, cize aj po kratkej pauze sa nam text bude zapisovat do okna ktore nasledne dalej budeme spracovavat
This commit is contained in:
commit
46bde64dc8
8
Script_Speech_recognition/kontrola_api.js
Normal file
8
Script_Speech_recognition/kontrola_api.js
Normal file
@ -0,0 +1,8 @@
|
||||
// Skontroluj podporu Web Speech API
|
||||
window.SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
|
||||
|
||||
if (!window.SpeechRecognition) {
|
||||
console.error('Tento prehliadač nepodporuje Web Speech API');
|
||||
} else {
|
||||
console.log('Web Speech API je podporované');
|
||||
}
|
102
Script_Speech_recognition/speech_recognition.js
Normal file
102
Script_Speech_recognition/speech_recognition.js
Normal file
@ -0,0 +1,102 @@
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
if ('SpeechRecognition' in window || 'webkitSpeechRecognition' in window) {
|
||||
const recognition = new (window.SpeechRecognition || window.webkitSpeechRecognition)();
|
||||
recognition.lang = 'sk-SK'; // Nastavenie jazyka
|
||||
recognition.interimResults = true;
|
||||
recognition.maxAlternatives = 1;
|
||||
recognition.continuous = true;
|
||||
|
||||
let recognizing = false; // Stavová premenná, či beží rozpoznávanie
|
||||
let startTime; // Na ukladanie času začiatku nahrávania
|
||||
let timerInterval; // Interval na časovač
|
||||
let transcriptHistory = []; // Na dočasné uloženie textových nahrávok
|
||||
|
||||
const startBtn = document.getElementById('startBtn');
|
||||
const statusText = document.getElementById('statusText');
|
||||
const timerDisplay = document.getElementById('timerDisplay'); // Element pre zobrazovanie času
|
||||
const inputText = document.getElementById('inputText'); // Textové pole na výsledky
|
||||
|
||||
// Funkcia pre spustenie časovača
|
||||
function startTimer() {
|
||||
startTime = Date.now();
|
||||
timerInterval = setInterval(() => {
|
||||
const elapsedTime = Math.floor((Date.now() - startTime) / 1000);
|
||||
timerDisplay.textContent = `${elapsedTime}s`; // Zobrazenie počtu sekúnd
|
||||
}, 1000); // Aktualizácia každú sekundu
|
||||
}
|
||||
|
||||
// Funkcia pre zastavenie časovača
|
||||
function stopTimer() {
|
||||
clearInterval(timerInterval);
|
||||
timerDisplay.textContent = ''; // Vymaže sa čas po zastavení nahrávania
|
||||
}
|
||||
|
||||
// Po stlačení tlačidla začne alebo zastaví rozpoznávanie reči
|
||||
startBtn.onclick = () => {
|
||||
if (!recognizing) {
|
||||
recognition.start();
|
||||
recognizing = true;
|
||||
console.log('Čaká sa na povolenie mikrofónu...');
|
||||
startBtn.textContent = "🛑 Nahrávanie..."; // Zmena textu na "Nahrávanie..."
|
||||
statusText.textContent = "Nahrávanie prebieha...";
|
||||
} else {
|
||||
recognition.stop();
|
||||
recognizing = false;
|
||||
console.log('Rozpoznávanie reči zastavené');
|
||||
startBtn.textContent = "🎤"; // Obnova textu na "Pripravený na nahrávanie"
|
||||
statusText.textContent = "Nahrávanie ukončené.";
|
||||
stopTimer(); // Zastavenie časovača
|
||||
}
|
||||
};
|
||||
|
||||
// Spustenie po povolení a začatí rozpoznávania
|
||||
recognition.onstart = function() {
|
||||
console.log('Rozpoznávanie reči začalo');
|
||||
startTimer(); // Spustenie časovača po začatí nahrávania
|
||||
statusText.textContent = "Nahrávanie prebieha..."; // Stav počas nahrávania
|
||||
};
|
||||
|
||||
// Výsledok rozpoznávania
|
||||
recognition.onresult = function(event) {
|
||||
let interimTranscript = ''; // Zmeníme na zobrazenie medzivýsledkov
|
||||
|
||||
for (let i = event.resultIndex; i < event.results.length; i++) {
|
||||
const transcript = event.results[i][0].transcript;
|
||||
|
||||
// Ak je to medzivýsledok, zobraz ho, ale neulož
|
||||
if (event.results[i].isFinal) {
|
||||
transcriptHistory.push(transcript);
|
||||
inputText.value += transcript + ' '; // Pridanie rozpoznaného textu
|
||||
} else {
|
||||
interimTranscript += transcript;
|
||||
}
|
||||
}
|
||||
|
||||
// Zobrazenie medzivýsledkov, kým nie sú konečné
|
||||
inputText.value = transcriptHistory.join(' ') + ' ' + interimTranscript;
|
||||
};
|
||||
|
||||
recognition.onend = function() {
|
||||
// Ak bol mikrofón manuálne zastavený
|
||||
if (!recognizing) {
|
||||
recognizing = false;
|
||||
console.log('Rozpoznávanie reči ukončené');
|
||||
stopTimer();
|
||||
startBtn.textContent = "🎤"; // Obnova textu
|
||||
statusText.textContent = "Nahrávanie ukončené."; // Zmena stavu po ukončení
|
||||
} else {
|
||||
// Automaticky znovu spustí rozpoznávanie, ak nebolo zastavené manuálne
|
||||
recognition.start();
|
||||
}
|
||||
}
|
||||
recognition.onerror = function(event) {
|
||||
console.error('Chyba pri rozpoznávaní reči:', event.error);
|
||||
recognizing = false; // V prípade chyby, zastav rozpoznávanie
|
||||
stopTimer(); // Zastav časovač aj pri chybe
|
||||
startBtn.textContent = "🎤"; // Obnova textu
|
||||
statusText.textContent = "Chyba pri nahrávaní. Skúste znova."; // Zobrazenie chyby
|
||||
};
|
||||
} else {
|
||||
alert('Tento prehliadač nepodporuje rozpoznávanie reči.');
|
||||
}
|
||||
});
|
36
Script_Speech_recognition/stranka.html
Normal file
36
Script_Speech_recognition/stranka.html
Normal file
@ -0,0 +1,36 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="sk">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>Jednoduchý Prekladač</title>
|
||||
<link rel="stylesheet" href="progress_bar.css">
|
||||
<style>
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<h1>Jednoduchý Prekladač s Rozpoznávaním Reči</h1>
|
||||
|
||||
<div class="container">
|
||||
<!-- Textové pole na zadanie textu -->
|
||||
<textarea id="inputText" placeholder="Enter text"></textarea>
|
||||
|
||||
<!-- Textové pole pre preklad -->
|
||||
<textarea id="translatedText" placeholder="Translation"></textarea>
|
||||
</div>
|
||||
|
||||
<!-- Tlačidlo pre mikrofón -->
|
||||
<br>
|
||||
<button id="startBtn">🎤</button>
|
||||
<div id="timerDisplay"></div>
|
||||
<p id="statusText"></p>
|
||||
|
||||
<!-- Pripojenie skriptov -->
|
||||
<script src="kontrola_api.js"></script>
|
||||
<script src="speech_recognition.js"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user