voicescribe
Version:
Live speech transcription library with multi-language support.
44 lines (36 loc) • 1.18 kB
JavaScript
// VoiceScribe Core Recorder Logic
let recognition;
let isListening = false;
export function setLanguage(lang = 'en-US') {
if (recognition) recognition.lang = lang;
}
export function startTranscription(callback = console.log, lang = 'en-US') {
const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
if (!SpeechRecognition) {
alert('Your browser does not support Speech Recognition.');
return;
}
recognition = new SpeechRecognition();
recognition.continuous = true;
recognition.interimResults = true;
recognition.lang = lang;
recognition.onresult = (event) => {
let transcript = '';
for (let i = event.resultIndex; i < event.results.length; ++i) {
transcript += event.results[i][0].transcript;
}
callback(transcript.trim());
};
recognition.onerror = (event) => console.error('Speech recognition error:', event.error);
recognition.onend = () => {
if (isListening) recognition.start(); // restart if still listening
};
isListening = true;
recognition.start();
}
export function stopTranscription() {
if (recognition) {
isListening = false;
recognition.stop();
}
}