.
This commit is contained in:
parent
7ec54a57e2
commit
d65a64d9df
57
CSS/estilo.css
Normal file
57
CSS/estilo.css
Normal file
@ -0,0 +1,57 @@
|
||||
@font-face {
|
||||
font-family: "SLA_UY";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: local("?"), url("../FONT/Lsu.ttf") format("truetype");
|
||||
}
|
||||
|
||||
|
||||
@font-face {
|
||||
font-family: "SLA_AR";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: local("?"), url("../FONT/Lsa.ttf") format("truetype");
|
||||
}
|
||||
/* CSS comes here */
|
||||
body {
|
||||
font-family: arial;
|
||||
background-image: url("../IMG/fondo.jpg");
|
||||
background-repeat: no-repeat;
|
||||
background-position: center center;
|
||||
background-attachment: fixed;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.pids-wrapper{
|
||||
width: 100%;
|
||||
}
|
||||
.pid{
|
||||
width: calc(5% - 10px);
|
||||
height: 5px;
|
||||
display: inline-block;
|
||||
margin: 3px;
|
||||
}
|
||||
|
||||
.hide {
|
||||
display:none;
|
||||
}
|
||||
.show {
|
||||
display:block;
|
||||
}
|
||||
|
||||
.TEXTO_TRA {
|
||||
font-family: arial;
|
||||
font-size: 30px!important;
|
||||
}
|
||||
|
||||
.SLA_UY {
|
||||
font-family: SLA_UY;
|
||||
font-size: 50px!important;
|
||||
text-transform: lowercase;
|
||||
}
|
||||
|
||||
.SLA_AR {
|
||||
font-family: SLA_AR;
|
||||
font-size: 50px!important;
|
||||
text-transform: lowercase;
|
||||
}
|
BIN
FONT/Lsa.ttf
Normal file
BIN
FONT/Lsa.ttf
Normal file
Binary file not shown.
BIN
FONT/Lsu.ttf
Normal file
BIN
FONT/Lsu.ttf
Normal file
Binary file not shown.
1
JS/notify.min.js
vendored
Normal file
1
JS/notify.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
164
JS/recognition.js
Normal file
164
JS/recognition.js
Normal file
@ -0,0 +1,164 @@
|
||||
// LIBRERIA PARA ESCUCHAR Y TRANSCRIBIR
|
||||
|
||||
function isMobile(){
|
||||
return (
|
||||
(navigator.userAgent.match(/Android/i)) ||
|
||||
(navigator.userAgent.match(/webOS/i)) ||
|
||||
(navigator.userAgent.match(/iPhone/i)) ||
|
||||
(navigator.userAgent.match(/iPod/i)) ||
|
||||
(navigator.userAgent.match(/iPad/i)) ||
|
||||
(navigator.userAgent.match(/BlackBerry/i))
|
||||
);
|
||||
}
|
||||
|
||||
var recognition;
|
||||
var output = document.getElementById("output");
|
||||
var outputsenasAR = document.getElementById("outputsenasAR");
|
||||
var outputsenasUY = document.getElementById("outputsenasUY");
|
||||
var outputHistoria = document.getElementById("outputHistoria");
|
||||
|
||||
const removeAcentos = (str) => { return str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); }
|
||||
function cambiarSenasAR() { $("#outputHistoria").attr('class', 'form-control SLA_AR');}
|
||||
function cambiarSenasUY() { $("#outputHistoria").attr('class', 'form-control SLA_UY');}
|
||||
function cambiarTexto() {$("#outputHistoria").attr('class', 'form-control TEXTO_TRA');}
|
||||
|
||||
function stopSpeechRecognition() {
|
||||
$.notify("DETENIDO.", "warn");
|
||||
$('#boff').prop('disabled', true);
|
||||
$('#bon').prop('disabled', false);
|
||||
$('#mic').attr('src','IMG/mic_off.png');
|
||||
recognition.stop();
|
||||
}
|
||||
|
||||
function insertarSimbolo(simbolo)
|
||||
{
|
||||
if(simbolo== "NEW_LINE"){simbolo = String.fromCharCode(13, 10);}
|
||||
if(simbolo== "NEW_LINE2"){simbolo = String.fromCharCode(13, 10)+String.fromCharCode(13, 10);}
|
||||
output.innerHTML += simbolo;
|
||||
outputsenasAR.innerHTML += simbolo;
|
||||
outputsenasUY.innerHTML += simbolo;
|
||||
outputHistoria.innerHTML += simbolo
|
||||
}
|
||||
|
||||
|
||||
function runSpeechRecognition(parametro = true)
|
||||
{
|
||||
|
||||
$('#boff').prop('disabled', false);
|
||||
$('#bon').prop('disabled', true);
|
||||
$('#mic').attr('src','IMG/mic_on.png');
|
||||
// get output div reference
|
||||
var output = document.getElementById("output");
|
||||
|
||||
|
||||
// new speech recognition object
|
||||
var SpeechRecognition = SpeechRecognition || webkitSpeechRecognition;
|
||||
var SpeechGrammarList = SpeechGrammarList || webkitSpeechGrammarList
|
||||
var SpeechRecognitionEvent = SpeechRecognitionEvent || webkitSpeechRecognitionEvent
|
||||
|
||||
recognition = new SpeechRecognition();
|
||||
|
||||
// This runs when the speech recognition service starts
|
||||
|
||||
if ( isMobile() )
|
||||
{
|
||||
recognition.continuous = false;
|
||||
}else{
|
||||
recognition.continuous = true;
|
||||
}
|
||||
|
||||
|
||||
recognition.lang = 'es-ES';
|
||||
recognition.interimResults = true;
|
||||
recognition.maxAlternatives = 100;
|
||||
|
||||
|
||||
recognition.onstart = function(){
|
||||
if(parametro == true) $.notify("Escuchando..", "info");
|
||||
};
|
||||
|
||||
|
||||
recognition.onspeechend = function(){
|
||||
if (parametro == true) $.notify("Sin sonido..", "info");
|
||||
setTimeout('runSpeechRecognition(false)',1000);
|
||||
|
||||
}
|
||||
|
||||
recognition.onerror = function(event) {
|
||||
$.notify(event.error, "warn");
|
||||
}
|
||||
|
||||
|
||||
recognition.onresult = function(event){
|
||||
|
||||
var interim_transcript = '';
|
||||
var final_transcript = '';
|
||||
for (var i = event.resultIndex; i < event.results.length; ++i) {
|
||||
// Verify if the recognized text is the last with the isFinal property
|
||||
if (event.results[i].isFinal) {
|
||||
final_transcript += event.results[i][0].transcript;
|
||||
} else {
|
||||
interim_transcript += event.results[i][0].transcript;
|
||||
}
|
||||
}
|
||||
var transcript = interim_transcript;
|
||||
var newline = String.fromCharCode(13, 10);
|
||||
transcript = transcript.replaceAll("punto y coma", ";").replaceAll("dos puntos", ":").replaceAll('punto','.').replaceAll("coma", ",").replaceAll("signo de exclamación", "!").replaceAll("signo de interrogación", "?").replaceAll("guión", "-").replaceAll("nueva línea", newline).replaceAll("abrir paréntesis", "(").replaceAll("cerrar paréntesis", ")").replaceAll("cara sonriente", ":-)").replaceAll("cara triste", ":-(").replaceAll("nuevo apartado", newline+newline);
|
||||
output.innerHTML = removeAcentos(transcript);
|
||||
outputsenasAR.innerHTML = removeAcentos(transcript);
|
||||
outputsenasUY.innerHTML = removeAcentos(transcript);
|
||||
final_transcript = final_transcript.replaceAll("punto y coma", ";").replaceAll("dos puntos", ":").replaceAll('punto','.').replaceAll("coma", ",").replaceAll("signo de exclamación", "!").replaceAll("signo de interrogación", "?").replaceAll("guión", "-").replaceAll("nueva línea", newline).replaceAll("abrir paréntesis", "(").replaceAll("cerrar paréntesis", ")").replaceAll("cara sonriente", ":-)").replaceAll("cara triste", ":-(").replaceAll("nuevo apartado", newline+newline);
|
||||
outputHistoria.innerHTML += removeAcentos(final_transcript);
|
||||
};
|
||||
|
||||
// start recognition
|
||||
recognition.start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
// PARA DIBUJAR LA INTESIDAD DEL MICROFONO
|
||||
|
||||
function colorPids(vol) {
|
||||
let all_pids = $('.pid');
|
||||
let amout_of_pids = Math.round(vol/4);
|
||||
let elem_range = all_pids.slice(0, amout_of_pids);
|
||||
for (var i = 0; i < all_pids.length; i++) {
|
||||
all_pids[i].style.backgroundColor="#e6e7e8";
|
||||
}
|
||||
for (var i = 0; i < elem_range.length; i++) {
|
||||
elem_range[i].style.backgroundColor="#69ce2b";
|
||||
}
|
||||
var estado = $('#bon').prop('disabled');
|
||||
if(amout_of_pids>8 && estado == false) {
|
||||
var testData = !!document.getElementsByClassName("data-notify-text");
|
||||
$("#barra").notify("Notamos que estas hablando, pero te falta realizar click en Comenzar.", "info");
|
||||
}
|
||||
}
|
||||
|
||||
navigator.mediaDevices.getUserMedia({ audio: true})
|
||||
.then(function(stream) {
|
||||
$('#mic').attr('src','IMG/mic_on.png');
|
||||
audioContext = new AudioContext();
|
||||
analyser = audioContext.createAnalyser();
|
||||
microphone = audioContext.createMediaStreamSource(stream);
|
||||
javascriptNode = audioContext.createScriptProcessor(2048, 1, 1);
|
||||
analyser.smoothingTimeConstant = 0.8;
|
||||
analyser.fftSize = 1024;
|
||||
microphone.connect(analyser);
|
||||
analyser.connect(javascriptNode);
|
||||
javascriptNode.connect(audioContext.destination);
|
||||
javascriptNode.onaudioprocess = function() {
|
||||
var array = new Uint8Array(analyser.frequencyBinCount);
|
||||
analyser.getByteFrequencyData(array);
|
||||
var values = 0;
|
||||
var length = array.length;
|
||||
for (var i = 0; i < length; i++) {
|
||||
values += (array[i]);
|
||||
}
|
||||
var average = values / length;
|
||||
colorPids(average);
|
||||
}
|
||||
})
|
||||
.catch(function(err) {
|
||||
});
|
BIN
MANUAL/manual.pdf
Normal file
BIN
MANUAL/manual.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user