I am trying to recognize the user voice continuously, but I am always getting wrong results. Have anybody done something like this?
I will add some parts of my code so you can understand.
this.pushStream = AudioInputStream.createPushStream(AudioStreamFormat.getWaveFormatPCM(16, 16000, 1));
recognizeAsync() {
this.audioConfig = AudioConfig.fromStreamInput(this.pushStream);
this.recognizer = new SpeechRecognizer(this.speechConfig, this.audioConfig);
this.subject = new Observable(subs => {
this.subscription = subs;
this.recognizer.startContinuousRecognitionAsync();
this.recognizer.recognizing = (rec, {result}) => {
subs.next(result);
};
this.recognizer.recognized = (rec, {result}) => {
subs.next(result);
};
});
return this.subject;
}
speech = new Speech(language, subscriptionKey, region);
speech.recognizeAsync().subscribe(result => {
console.log('result', result);
});
var micInstance = mic({
rate: '16000',
channels: '1',
debug: false,
exitOnSilence: 6,
fileType: 'wav' //have also tried with raw type
});
const micInputStream = micInstance.getAudioStream();
micInputStream.on('data', function(data) {
speech.pushStream.write(data);
//console.log("Recieved Input Stream: ", data);
});