conflicts

master
funix 3 years ago
commit 9933252127

@ -9,9 +9,15 @@
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="ui">
<h1>Speech2Design</h1>
<button id="save">Save</button>
<button id="reset">Reset</button>
</div>
<div class="speech">
<div id="result"></div>
<div id="process"></div>
</div>
</body>
</html>

@ -1,6 +1,5 @@
// ARRAY DI PAROLE NORMALE, POI PYTHON -> split, for loop, POS e <span con classe POS in html
// The Myth of the Natural Language %%
// Speech2Design!!
@ -12,15 +11,13 @@
// An API is a set of defined rules that explain how computers or applications communicate with one another.
// APIs sit between an application and the web server, acting as an intermediary layer that processes data transfer between systems.
// GLOBAL VARIABLES
let interimTranscripts = ""; // Variable for interim results, the Speech-to-text try different worlds before to give us the most correct one.
let allTheInterim = ""; // Variable to store *all* the interim results
let finalTranscripts = ""; // Variable for the... final transcripts
let finalTranscripts = ""; // Variable for the final transcripts
// To define bridges to the html file:
// To define bridges to the html file:
let speech = document.getElementById("result"); // where to print the final result of the recognition
let process = document.getElementById("process"); // and here the process, print the current sentence with interim results
@ -28,12 +25,13 @@ let process = document.getElementById("process"); // and here the process, pri
let textStorage = localStorage.getItem("speech"); // This define where to save the results.
speech.innerHTML = textStorage; // LocalStorage is a type of web storage that allows you to access a local Storage object and store the data in the browser with no expiration date.
finalTranscripts = textStorage;
// RESET STORAGE
let resetStorage = document.getElementById("reset"); // This will just reset, through a button, all the results got by that moment.
resetStorage.addEventListener("click", () => { // Reset everything!!!
// Reset everything!!!
resetStorage.addEventListener("click", () => {
allTheInterim = "";
finalTranscripts = "";
interimTranscripts = "";
@ -67,7 +65,8 @@ function download(filename, text) {
startConverting(); // Finally, here is where the magic happen.
function startConverting() {
if ("webkitSpeechRecognition" in window) { // Declaring here the API
if ("webkitSpeechRecognition" in window) {
// Declaring here the API
let speechRecognizer = new webkitSpeechRecognition() || new SpeechRecognition();
// And here the settings, like
@ -76,56 +75,65 @@ function startConverting() {
speechRecognizer.lang = "en-US"; // which language you want to recognize (!!)
speechRecognizer.start(); // and then start :))
finalTranscripts = "";
// EVENTS
// ON END
speechRecognizer.onend = function () { // If the Speech-to-text stops to work, it will be notified in the console...
speechRecognizer.onend = function () {
// If the Speech-to-text stops to work, it will be notified in the console...
console.log("Speech recognition service disconnected");
speechRecognizer.start(); // and then restart itself
};
// ON SOUND START
speechRecognizer.onsoundstart = function () { // When it starts the Speech-to-text, it will be notified in the console
speechRecognizer.onsoundstart = function () {
// When it starts the Speech-to-text, it will be notified in the console
console.log("Some sound is being received");
};
// ON ERROR
speechRecognizer.onerror = function (event) {};
speechRecognizer.onerror = function (event) {
// Log the error
console.log(event);
};
// ON RESULT
speechRecognizer.onresult = function (event) { // Here is where the Speech-to-text show itself on the web page.
speechRecognizer.onresult = function (event) {
// Here is where the Speech-to-text show itself on the web page.
interimTranscripts = "";
for (let i = event.resultIndex; i < event.results.length; i++) {
let transcript = event.results[i][0].transcript;
// console.log(event.results[i][0]);
transcript.replace("\n", "<br>");
if (event.results[i].isFinal) {
// finalTranscripts += ' <span class="oneTranscript"> '+transcript+' </span> \n';
finalTranscripts += transcript+'\n';
} else { // There are also shown the interim results and according to their "confidence" (the percentage of how much the word is correct) the color of each word could change
finalTranscripts += transcript + "\n";
} else {
// There are also shown the interim results and according to their "confidence" (the percentage of how much the word is correct) the color of each word could change
interimTranscripts += transcript;
allTheInterim += `<span style="opacity: ${
event.results[i][0].confidence + 0.3
}">${interimTranscripts}</span> `;
allTheInterim += `<span style="opacity:
${event.results[i][0].confidence + 0.3}
"> ${interimTranscripts} </span> `;
}
}
process.innerHTML = allTheInterim;
let final =
finalTranscripts + '<span class="interim">' + interimTranscripts + "</span>";
speech.innerHTML = final;
window.scrollTo(0, document.body.scrollHeight);
textStorage = final;
console.log(textStorage);
localStorage.setItem("speech", final); // Here is where is stored the recognized text in the Local Storage
cleanup = localStorage.setItem(
"speech",
final.replace(/(<span class="interim">)/g, "").replace(/(<\/span>)/g, "")
); // Here is where is stored the recognized text in the Local Storage
};
} else { // Unfortunately this API works only on Chrome...
} else {
// Unfortunately this API works only on Chrome...
speech.innerHTML = "At the moment this works only in Chrome, sorry";
}
}
// 2021, copyleft Kamo and Funix

@ -1,15 +1,73 @@
html,
body {
margin: 0;
scroll-behavior: smooth;
}
.interim {
color: #999;
}
#result {
max-width: 800px;
margin: 0 auto;
font-size: 2rem;
padding-right: 1em;
align-self: flex-end;
}
#process {
max-width: 800px;
.speech {
margin: 0 auto;
margin-top: 50px;
margin-top: 64px;
padding: 32px;
display: flex;
transition: height 0.3s ease-out;
}
.speech > * {
flex: 1 0 45%;
}
.ui {
position: fixed;
background-color: white;
top: 0;
z-index: 100;
width: calc(100% - 64px);
display: flex;
padding: 8px 0;
margin: 0 32px;
}
.ui h1 {
margin: 0;
font-size: 2rem;
font-weight: normal;
margin-right: auto;
}
#save {
border: 1px solid currentColor;
border-radius: 2rem;
font-size: 1rem;
padding: 0.5em;
font-family: Arial, Helvetica, sans-serif;
background-color: transparent;
cursor: pointer;
margin-right: 1rem;
}
#save:hover {
color: green;
}
#reset {
border: none;
background-color: transparent;
font-family: Arial, Helvetica, sans-serif;
font-size: 1rem;
cursor: pointer;
}
#reset:hover {
color: red;
}

@ -1,15 +0,0 @@
> preparare domande x parte teorica
> prep mail da mandare in anticipo con istru git
> prep 3 fogli css per auto layout
> prep cose fatte in precedenza da fa vedere
info su git
vscode
py + nltk
console
chrome :(
easybooklet
Loading…
Cancel
Save