Compare commits

..

6 Commits

4 changed files with 20 additions and 7 deletions

View File

@@ -1,10 +1,10 @@
FROM node:17.7.1-slim
FROM node:17.9-slim
WORKDIR /opt/app/
COPY package.json ./
RUN npm install
COPY package.json package-lock.json ./
RUN npm ci
RUN npm prune
COPY . /opt/app
ARG NODE_ENV
ENV NODE_ENV $NODE_ENV
CMD [ "npm", "start" ]
CMD [ "npm", "start" ]

View File

@@ -362,7 +362,9 @@ class TaskGather extends Task {
if ('microsoft' === this.vendor) {
const final = evt.RecognitionStatus === 'Success';
if (final) {
const nbest = evt.NBest.sort((a, b) => b.Confidence - a.Confidence);
// don't sort based on confidence: https://github.com/Azure-Samples/cognitive-services-speech-sdk/issues/1463
//const nbest = evt.NBest.sort((a, b) => b.Confidence - a.Confidence);
const nbest = evt.NBest;
evt = {
is_final: true,
alternatives: [
@@ -385,7 +387,7 @@ class TaskGather extends Task {
}
}
if (evt.is_final) {
if (evt.alternatives[0].transcript === '') {
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 +435,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

@@ -253,6 +253,11 @@ class TaskTranscribe extends Task {
evt = newEvent;
}
if (evt.alternatives[0].transcript === '' && !cs.callGone && !this.killed) {
this.logger.info({evt}, 'TaskGather:_onTranscription - got empty transcript, listen again');
return this._transcribe(ep);
}
if (this.transcriptionHook) {
const b3 = this.getTracingPropagation();
const httpHeaders = b3 && {b3};

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();