vosk-browser
vosk-browser copied to clipboard
Delays when transcribing streaming audio
First of all, excellent work. Vosk is great as it is, and this library makes it even better.
I am experiencing a heavy delay on transcription when pulling in a stream from webRTC (partials and fulls).
I suspect maybe it is because of the deprecated "createScriptProcessor" and "onaudioprocess" pieces, but I am unsure.
Here is how I am processing things. If you have any ideas as to why things would be delayed, please let me know. Thank you.
this.recognizeSpeech = async () => {
console.log("starting recognizeSpeech");
let audioContext = this.remoteAudioContext;
let remoteStream = this.incomingAudioStream;
//
const recognizerNode = audioContext.createScriptProcessor(4096, 1, 1);
const model = await createModel("./softphone/model.tar.gz");
const recognizer = new model.KaldiRecognizer(48000);
recognizer.setWords(true);
recognizer.on("partialresult", function (message) {
console.log("PARTIAL: " + message.result.partial);
});
recognizerNode.onaudioprocess = async (event) => {
try {
recognizer.acceptWaveform(event.inputBuffer);
} catch (error) {
console.error("acceptWaveform failed", error);
}
};
this.remoteTrack.connect(recognizerNode).connect(audioContext.destination);
};