bugfix: azure stt - if we get no speech detected, listen again

This commit is contained in:
Dave Horton
2022-04-13 12:07:30 -04:00
parent 6330b0d443
commit 29dec24095
2 changed files with 8 additions and 2 deletions

View File

@@ -385,7 +385,7 @@ class TaskGather extends Task {
}
}
if (evt.is_final) {
if (evt.alternatives[0].transcript === '' && !this.callSession.callGonen && !this.killed) {
if (evt.alternatives[0].transcript === '' && !this.callSession.callGone && !this.killed) {
this.logger.info({evt}, 'TaskGather:_onTranscription - got empty transcript, listen again');
return this._startTranscribing(ep);
}
@@ -433,7 +433,10 @@ class TaskGather extends Task {
}
_onNoSpeechDetected(cs, ep) {
this._resolve('timeout');
if (!this.callSession.callGone && !this.killed) {
this.logger.debug('TaskGather:_onNoSpeechDetected - listen again');
return this._startTranscribing(ep);
}
}
async _resolve(reason, evt) {

View File

@@ -105,6 +105,7 @@ class WsRequestor extends BaseRequestor {
/* save the message info for reply */
const startAt = process.hrtime();
this.messagesInFlight.set(msgid, {
timer,
success: (response) => {
clearTimeout(timer);
const rtt = this._roundTrip(startAt);
@@ -135,6 +136,8 @@ class WsRequestor extends BaseRequestor {
}
for (const [msgid, obj] of this.messagesInFlight) {
const {timer} = obj;
clearTimeout(timer);
obj.failure(`abandoning msgid ${msgid} since we have closed the socket`);
}
this.messagesInFlight.clear();