mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-19 04:17:44 +00:00
* #1088 ignore UtteranceEnd if we have unprocessed words * wip
This commit is contained in:
@@ -757,10 +757,16 @@ class TaskGather extends SttTask {
|
||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd event from deepgram but no buffered transcripts');
|
||||
}
|
||||
else {
|
||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd event from deepgram, return buffered transcript');
|
||||
evt = this.consolidateTranscripts(this._bufferedTranscripts, 1, this.language, this.vendor);
|
||||
this._bufferedTranscripts = [];
|
||||
this._resolve('speech', evt);
|
||||
const utteranceTime = evt.last_word_end;
|
||||
if (utteranceTime && this._dgTimeOfLastUnprocessedWord && utteranceTime < this._dgTimeOfLastUnprocessedWord) {
|
||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd with unprocessed words, continue listening');
|
||||
}
|
||||
else {
|
||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd from deepgram, return buffered transcript');
|
||||
evt = this.consolidateTranscripts(this._bufferedTranscripts, 1, this.language, this.vendor);
|
||||
this._bufferedTranscripts = [];
|
||||
this._resolve('speech', evt);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -893,8 +899,21 @@ class TaskGather extends SttTask {
|
||||
if (originalEvent.is_final && evt.alternatives[0].transcript !== '') {
|
||||
this.logger.debug({evt}, 'Gather:_onTranscription - buffering a completed (partial) deepgram transcript');
|
||||
this._bufferedTranscripts.push(evt);
|
||||
this._dgTimeOfLastUnprocessedWord = null;
|
||||
}
|
||||
if (evt.alternatives[0].transcript === '') {
|
||||
emptyTranscript = true;
|
||||
}
|
||||
else if (!originalEvent.is_final) {
|
||||
/* Deepgram: we have unprocessed words-save last word end time so we can later compare to UtteranceEnd */
|
||||
const words = originalEvent.channel.alternatives[0].words;
|
||||
if (words?.length > 0) {
|
||||
this._dgTimeOfLastUnprocessedWord = words.slice(-1)[0].end;
|
||||
this.logger.debug(
|
||||
`TaskGather:_onTranscription - saving word end time: ${this._dgTimeOfLastUnprocessedWord}`);
|
||||
}
|
||||
|
||||
}
|
||||
if (evt.alternatives[0].transcript === '') emptyTranscript = true;
|
||||
}
|
||||
|
||||
if (!emptyTranscript) {
|
||||
|
||||
Reference in New Issue
Block a user