Spaces:
Running
Running
const startBtn = document.getElementById("startBtn"); | |
const stopBtn = document.getElementById("stopBtn"); | |
const transcript = document.getElementById("transcript"); | |
// const fetch = require('node-fetch'); | |
console.log("script.js is running"); | |
let recognition; // Speech recognition object | |
let accumulatedTranscript = ""; // Store accumulated text | |
startBtn.addEventListener("click", () => { | |
recognition = new webkitSpeechRecognition(); | |
// Set language, interim results (optional), continuous mode, and confidence threshold | |
recognition.lang = "en-US"; // "hi-IN" for Hindi | |
recognition.interimResults = false; // Disable interim results to avoid excessive repetition | |
recognition.continuous = true; | |
recognition.maxAlternatives = 1; | |
recognition.start(); | |
startBtn.disabled = true; // Disable start button while recording | |
stopBtn.disabled = false; // Enable stop button | |
recognition.onresult = (event) => { | |
let text = ""; | |
for (let i = event.resultIndex; i < event.results.length; ++i) { | |
if (event.results[i][0].confidence > 0.8) { // Filter based on confidence | |
text += event.results[i][0].transcript; | |
} | |
} | |
// Append the new text to the existing transcript, avoiding excessive repetition | |
if (text !== accumulatedTranscript.slice(-text.length)) { | |
accumulatedTranscript += text; | |
transcript.value = accumulatedTranscript.trim(); | |
} | |
}; | |
}); | |
stopBtn.addEventListener("click", () => { | |
recognition.stop(); | |
startBtn.disabled = false; // Enable start button | |
stopBtn.disabled = true; // Disable stop button | |
console.log(transcript.value); | |
var formattedText = formatText(transcript.value); | |
console.log(formattedText); | |
transcript.value = formattedText; | |
}); | |
function formatText(rawText) { | |
// Add a space after each period if there isn't one already | |
rawText = rawText.replace(/\./g, '. '); | |
// Capitalize the first letter of the text | |
rawText = rawText.charAt(0).toUpperCase() + rawText.slice(1); | |
// Ensure there is a period at the end of the text | |
if (!rawText.endsWith('.')) { | |
rawText += '.'; | |
} | |
return rawText; | |
} | |
console.log("punctuate is running"); | |
async function addPunctuation(text) { | |
const response = await fetch('http://bark.phon.ioc.ee/punctuator/', { | |
method: 'POST', | |
body: `text=${encodeURIComponent(text)}`, | |
headers: { | |
'Content-Type': 'application/x-www-form-urlencoded' | |
} | |
}); | |
if (response.ok) { | |
const punctuatedText = await response.text(); | |
console.log(punctuatedText); | |
console.log(response); | |
return punctuatedText; | |
} else { | |
throw formatText(text) | |
// new Error('Failed to punctuate text'); | |
} | |
}; |