mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
* #1088 ignore UtteranceEnd if we have unprocessed words * wip
This commit is contained in:
@@ -785,10 +785,16 @@ class TaskGather extends SttTask {
|
|||||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd event from deepgram but no buffered transcripts');
|
this.logger.debug('Gather:_onTranscription - got UtteranceEnd event from deepgram but no buffered transcripts');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.logger.debug('Gather:_onTranscription - got UtteranceEnd event from deepgram, return buffered transcript');
|
const utteranceTime = evt.last_word_end;
|
||||||
evt = this.consolidateTranscripts(this._bufferedTranscripts, 1, this.language, this.vendor);
|
if (utteranceTime && this._dgTimeOfLastUnprocessedWord && utteranceTime < this._dgTimeOfLastUnprocessedWord) {
|
||||||
this._bufferedTranscripts = [];
|
this.logger.debug('Gather:_onTranscription - got UtteranceEnd with unprocessed words, continue listening');
|
||||||
this._resolve('speech', evt);
|
}
|
||||||
|
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;
|
return;
|
||||||
}
|
}
|
||||||
@@ -922,8 +928,21 @@ class TaskGather extends SttTask {
|
|||||||
if (originalEvent.is_final && evt.alternatives[0].transcript !== '') {
|
if (originalEvent.is_final && evt.alternatives[0].transcript !== '') {
|
||||||
this.logger.debug({evt}, 'Gather:_onTranscription - buffering a completed (partial) deepgram transcript');
|
this.logger.debug({evt}, 'Gather:_onTranscription - buffering a completed (partial) deepgram transcript');
|
||||||
this._bufferedTranscripts.push(evt);
|
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) {
|
if (!emptyTranscript) {
|
||||||
|
|||||||
Reference in New Issue
Block a user