additional fix for recognition
style change
This commit is contained in:
parent
cbddf1d1c7
commit
b56f6dfa22
@ -14,17 +14,16 @@
|
|||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
<h1>Speech Recognition</h1>
|
<h1>Digitaler Demenztest</h1>
|
||||||
<p id=info>Press the button to activate microphone.</p>
|
<p id=info>Press the button to activate microphone.</p>
|
||||||
<p id=query hidden>query</p>
|
|
||||||
|
|
||||||
<button>Start new test</button>
|
<button>Start new test</button>
|
||||||
<button id="speechBtn">Speech</button>
|
<button id="speechBtn">Test Button</button>
|
||||||
<button onclick="getElementById('query').innerHTML = 'changed'">Change query</button>
|
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<p class="server">Server offline</p>
|
<p class="server">Server offline</p>
|
||||||
<p class="output" style="font-style: italic;">... erkannte worte ...</p>
|
<p class="quest">Question: </p>
|
||||||
|
<p class="output" style="font-style: italic;">Erkannte worte ...</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="ws-client.js"></script>
|
<script src="ws-client.js"></script>
|
||||||
|
@ -4,7 +4,7 @@ body, html {
|
|||||||
|
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
background-color: teal;
|
background-color: rgb(65, 143, 143);
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@ -19,7 +19,7 @@ h1, p {
|
|||||||
|
|
||||||
div p {
|
div p {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
background-color: rgba(0,0,0,0.2);
|
background-color: rgba(51, 51, 51, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
|
@ -87,7 +87,7 @@ var diagnosticPara = document.querySelector('.output');
|
|||||||
var testBtn = document.querySelector('button');
|
var testBtn = document.querySelector('button');
|
||||||
var testBtn2 = document.getElementById('speechBtn');
|
var testBtn2 = document.getElementById('speechBtn');
|
||||||
var infoPara = document.getElementById('info');
|
var infoPara = document.getElementById('info');
|
||||||
var userPrompt = document.getElementById('query');
|
var questionNumDisplay = document.querySelector('.quest');
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
// websocket to communicate with the server
|
// websocket to communicate with the server
|
||||||
@ -154,7 +154,7 @@ ws.onopen = function () {
|
|||||||
ws.onmessage = function (payload) {
|
ws.onmessage = function (payload) {
|
||||||
var dialogflowResult = JSON.parse(payload.data);
|
var dialogflowResult = JSON.parse(payload.data);
|
||||||
checkIntent(dialogflowResult);
|
checkIntent(dialogflowResult);
|
||||||
document.querySelector('h1').innerHTML = dialogflowResult.intent.displayName;
|
// document.querySelector('h1').innerHTML = dialogflowResult.intent.displayName;
|
||||||
};
|
};
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
@ -215,6 +215,7 @@ function checkIntent (result) {
|
|||||||
function startQuestion (number) {
|
function startQuestion (number) {
|
||||||
question = number;
|
question = number;
|
||||||
state = 'answer';
|
state = 'answer';
|
||||||
|
questionNumDisplay.textContent = 'Question: ' + question;
|
||||||
handleQuestion();
|
handleQuestion();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -263,8 +264,11 @@ function readQuestionTwo () {
|
|||||||
window.setTimeout(
|
window.setTimeout(
|
||||||
function () {
|
function () {
|
||||||
recognition.stop();
|
recognition.stop();
|
||||||
console.log('recognition stopped');
|
window.setTimeout(
|
||||||
|
function () {
|
||||||
handleAnswer(answerQuery);
|
handleAnswer(answerQuery);
|
||||||
|
answerQuery = '';
|
||||||
|
}, 3000);
|
||||||
}, 6000);
|
}, 6000);
|
||||||
recognition.start();
|
recognition.start();
|
||||||
console.log('reocgnition started. Question: ' + question);
|
console.log('reocgnition started. Question: ' + question);
|
||||||
@ -369,39 +373,6 @@ function handleAnswerToThirdQuestion (query) {
|
|||||||
}
|
}
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
// #region global functions
|
|
||||||
function startDemenzScreening () {
|
|
||||||
ws.send('starte demenz test');
|
|
||||||
// startQuestion(2);
|
|
||||||
testBtn.disabled = true;
|
|
||||||
testBtn.textContent = 'Test in progress';
|
|
||||||
infoPara.textContent = 'wait...';
|
|
||||||
diagnosticPara.textContent = 'detecting...';
|
|
||||||
}
|
|
||||||
|
|
||||||
function speak (sentence) {
|
|
||||||
speechsynth.text = sentence;
|
|
||||||
window.speechSynthesis.speak(speechsynth);
|
|
||||||
}
|
|
||||||
|
|
||||||
function testSpeechOut () {
|
|
||||||
answerQuery = 'apfel wiese tisch apfel lampe pferd';
|
|
||||||
question = 1;
|
|
||||||
for (let i = 0; i < 2; i++) {
|
|
||||||
var tokens = answerQuery.split(new RegExp(separators.join('|'), 'g'));
|
|
||||||
questionPoints[question] += calculatePoints(tokens, QUESTION_ONE_ANSWERS);
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(questionPoints[question]);
|
|
||||||
|
|
||||||
// speechsynth.text = 'test 123';
|
|
||||||
// speechsynth.volume = 1;
|
|
||||||
// speechsynth.rate = 1;
|
|
||||||
// console.log(speechsynth);
|
|
||||||
// window.speechSynthesis.speak(speechsynth);
|
|
||||||
// console.log(window.speechSynthesis);
|
|
||||||
}
|
|
||||||
|
|
||||||
// function recognizeSpeech () {
|
// function recognizeSpeech () {
|
||||||
// if (state === 'answer') {
|
// if (state === 'answer') {
|
||||||
// var arr;
|
// var arr;
|
||||||
@ -427,6 +398,7 @@ function testSpeechOut () {
|
|||||||
// // recognition.grammars = speechRecognitionList;
|
// // recognition.grammars = speechRecognitionList;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
// #region speech recognition event
|
||||||
recognition.onresult = function (event) {
|
recognition.onresult = function (event) {
|
||||||
var last = event.results.length - 1;
|
var last = event.results.length - 1;
|
||||||
var speechResult = event.results[last][0].transcript.toLowerCase();
|
var speechResult = event.results[last][0].transcript.toLowerCase();
|
||||||
@ -439,57 +411,7 @@ recognition.onresult = function (event) {
|
|||||||
// testBtn.disabled = false
|
// testBtn.disabled = false
|
||||||
// testBtn.textContent = 'record...'
|
// testBtn.textContent = 'record...'
|
||||||
};
|
};
|
||||||
|
1;
|
||||||
function processSpeech (speechResult) {
|
|
||||||
console.log('To dialogflow: ' + speechResult);
|
|
||||||
ws.send(speechResult);
|
|
||||||
|
|
||||||
let timeOut;
|
|
||||||
switch (question) {
|
|
||||||
case 1:
|
|
||||||
timeOut = 6500;
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
answerQuery += speechResult;
|
|
||||||
return;
|
|
||||||
case 3:
|
|
||||||
if (speechResult.includes('uhr')) {
|
|
||||||
speechResult = speechResult.replace('uhr', '');
|
|
||||||
}
|
|
||||||
timeOut = 6500;
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
timeOut = 6500;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (state === 'answer') {
|
|
||||||
if (timerId != undefined) {
|
|
||||||
clearTimeout(timerId);
|
|
||||||
}
|
|
||||||
answerQuery += speechResult;
|
|
||||||
timerId = window.setTimeout(
|
|
||||||
function () {
|
|
||||||
// if (!rePrompt) {
|
|
||||||
// ws.send('ich brauche noch etwas Zeit')
|
|
||||||
// } else {
|
|
||||||
console.log('recording end. Evaluate: ' + answerQuery);
|
|
||||||
handleAnswer(answerQuery);
|
|
||||||
answerQuery = '';
|
|
||||||
diagnosticPara.textContent = '';
|
|
||||||
// }
|
|
||||||
recognition.stop();
|
|
||||||
console.log('timer fallback');
|
|
||||||
}, timeOut);
|
|
||||||
} else {
|
|
||||||
console.log('recording end.');
|
|
||||||
recognition.stop();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// #region speech recognition event
|
|
||||||
recognition.onspeechend = function () {
|
recognition.onspeechend = function () {
|
||||||
// recognition.stop();
|
// recognition.stop();
|
||||||
// testBtn.disabled = false;
|
// testBtn.disabled = false;
|
||||||
@ -542,6 +464,88 @@ recognition.onstart = function (event) {
|
|||||||
// }
|
// }
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
|
// #region global functions
|
||||||
|
function processSpeech (speechResult) {
|
||||||
|
console.log('To dialogflow: ' + speechResult);
|
||||||
|
ws.send(speechResult);
|
||||||
|
|
||||||
|
let timeOut;
|
||||||
|
switch (question) {
|
||||||
|
case 1:
|
||||||
|
timeOut = 6500;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
answerQuery += speechResult;
|
||||||
|
return;
|
||||||
|
case 3:
|
||||||
|
if (speechResult.includes('uhr')) {
|
||||||
|
speechResult = speechResult.replace('uhr', '');
|
||||||
|
}
|
||||||
|
timeOut = 6500;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
timeOut = 6500;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state === 'answer') {
|
||||||
|
if (timerId != undefined) {
|
||||||
|
clearTimeout(timerId);
|
||||||
|
}
|
||||||
|
answerQuery += speechResult;
|
||||||
|
timerId = window.setTimeout(
|
||||||
|
function () {
|
||||||
|
// if (!rePrompt) {
|
||||||
|
// ws.send('ich brauche noch etwas Zeit')
|
||||||
|
// } else {
|
||||||
|
console.log('recording end. Evaluate: ' + answerQuery);
|
||||||
|
handleAnswer(answerQuery);
|
||||||
|
answerQuery = '';
|
||||||
|
diagnosticPara.textContent = '';
|
||||||
|
// }
|
||||||
|
recognition.stop();
|
||||||
|
console.log('timer fallback');
|
||||||
|
}, timeOut);
|
||||||
|
} else {
|
||||||
|
console.log('recording end.');
|
||||||
|
recognition.stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function startDemenzScreening () {
|
||||||
|
// ws.send('starte demenz test');
|
||||||
|
startQuestion(2);
|
||||||
|
testBtn.disabled = true;
|
||||||
|
testBtn.textContent = 'Test in progress';
|
||||||
|
infoPara.textContent = 'wait...';
|
||||||
|
diagnosticPara.textContent = 'detecting...';
|
||||||
|
}
|
||||||
|
|
||||||
|
function testSpeechOut () {
|
||||||
|
answerQuery = 'apfel wiese tisch apfel lampe pferd';
|
||||||
|
question = 1;
|
||||||
|
for (let i = 0; i < 2; i++) {
|
||||||
|
var tokens = answerQuery.split(new RegExp(separators.join('|'), 'g'));
|
||||||
|
questionPoints[question] += calculatePoints(tokens, QUESTION_ONE_ANSWERS);
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(questionPoints[question]);
|
||||||
|
|
||||||
|
// speechsynth.text = 'test 123';
|
||||||
|
// speechsynth.volume = 1;
|
||||||
|
// speechsynth.rate = 1;
|
||||||
|
// console.log(speechsynth);
|
||||||
|
// window.speechSynthesis.speak(speechsynth);
|
||||||
|
// console.log(window.speechSynthesis);
|
||||||
|
}
|
||||||
|
|
||||||
|
function speak (sentence) {
|
||||||
|
speechsynth.text = sentence;
|
||||||
|
window.speechSynthesis.speak(speechsynth);
|
||||||
|
}
|
||||||
|
|
||||||
function calculatePoints (tokens, d) {
|
function calculatePoints (tokens, d) {
|
||||||
let points = 0;
|
let points = 0;
|
||||||
let dict = {};
|
let dict = {};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user