Compare commits

...

4 Commits

Author SHA1 Message Date
Hoan Luu Huu
fe845604b1 Merge branch 'main' into fix/fd_1738_02 2026-01-09 08:17:36 +07:00
xquanluu
58cb19dcde wip 2025-12-17 15:33:05 +07:00
xquanluu
647f4ab51c wip 2025-12-17 15:28:29 +07:00
xquanluu
922a034b2c fixed: should start transcription and timeout timer when listenDuringPrompt=true 2025-12-17 15:11:38 +07:00

View File

@@ -230,17 +230,17 @@ class TaskGather extends SttTask {
};
const startListening = async(cs, ep) => {
if (this.killed || this.resolved) {
this.logger.info('Gather:exec - task was quickly killed so do not transcribe');
return;
}
this._startTimer();
if (this.isContinuousAsr && 0 === this.timeout && !this.isBackgroundGather) {
this._startAsrTimer();
}
if (this.input.includes('speech') && !this.listenDuringPrompt) {
if (this.input.includes('speech')) {
try {
await this._setSpeechHandlers(cs, ep);
if (this.killed) {
this.logger.info('Gather:exec - task was quickly killed so do not transcribe');
return;
}
this._startTranscribing(ep);
} catch (e) {
await this._startFallback(cs, ep, {error: e});
@@ -259,7 +259,9 @@ class TaskGather extends SttTask {
}
this._stopVad();
if (!this.killed && !this.resolved) {
startListening(cs, ep);
if (!this.listenDuringPrompt) {
startListening(cs, ep);
}
if (this.input.includes('speech') && this.vendor === 'nuance' && this.listenDuringPrompt) {
this.logger.debug('Gather:exec - starting transcription timers after say completes');
ep.startTranscriptionTimers((err) => {
@@ -297,7 +299,9 @@ class TaskGather extends SttTask {
}
this._stopVad();
if (!this.killed && !this.resolved) {
startListening(cs, ep);
if (!this.listenDuringPrompt) {
startListening(cs, ep);
}
if (this.input.includes('speech') && this.vendor === 'nuance' && this.listenDuringPrompt) {
this.logger.debug('Gather:exec - starting transcription timers after play completes');
ep.startTranscriptionTimers((err) => {
@@ -305,6 +309,7 @@ class TaskGather extends SttTask {
});
}
}
};
this.playTask.span = span;
this.playTask.ctx = ctx;
@@ -321,21 +326,12 @@ class TaskGather extends SttTask {
});
}
else {
if (this.killed) {
this.logger.info('Gather:exec - task was immediately killed so do not transcribe');
return;
}
startListening(cs, ep);
// listenDuringPrompt is set to false if there is no say or play task
await startListening(cs, ep);
}
if (this.input.includes('speech') && this.listenDuringPrompt) {
await this._setSpeechHandlers(cs, ep);
if (!this.resolved && !this.killed) {
this._startTranscribing(ep);
}
else {
this.logger.info('Gather:exec - task was killed or resolved quickly, not starting transcription');
}
if (this.listenDuringPrompt) {
await startListening(cs, ep);
}
// https://github.com/jambonz/jambonz-feature-server/issues/913