mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2025-12-20 16:50:39 +00:00
@@ -41,6 +41,7 @@ class TaskTranscribe extends SttTask {
|
|||||||
/* buffer speech for continuous asr */
|
/* buffer speech for continuous asr */
|
||||||
this._bufferedTranscripts = [];
|
this._bufferedTranscripts = [];
|
||||||
this.bugname_prefix = 'transcribe_';
|
this.bugname_prefix = 'transcribe_';
|
||||||
|
this.paused = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
get name() { return TaskName.Transcribe; }
|
get name() { return TaskName.Transcribe; }
|
||||||
@@ -117,9 +118,11 @@ class TaskTranscribe extends SttTask {
|
|||||||
this.logger.info(`TaskTranscribe:updateTranscribe status ${status}`);
|
this.logger.info(`TaskTranscribe:updateTranscribe status ${status}`);
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case TranscribeStatus.Pause:
|
case TranscribeStatus.Pause:
|
||||||
|
this.paused = true;
|
||||||
await this._stopTranscription();
|
await this._stopTranscription();
|
||||||
break;
|
break;
|
||||||
case TranscribeStatus.Resume:
|
case TranscribeStatus.Resume:
|
||||||
|
this.paused = false;
|
||||||
await this._startTranscribing(this.cs, this.ep, 1);
|
await this._startTranscribing(this.cs, this.ep, 1);
|
||||||
if (this.separateRecognitionPerChannel && this.ep2) {
|
if (this.separateRecognitionPerChannel && this.ep2) {
|
||||||
await this._startTranscribing(this.cs, this.ep2, 2);
|
await this._startTranscribing(this.cs, this.ep2, 2);
|
||||||
@@ -296,6 +299,10 @@ class TaskTranscribe extends SttTask {
|
|||||||
// make sure this is not a transcript from answering machine detection
|
// make sure this is not a transcript from answering machine detection
|
||||||
const bugname = fsEvent.getHeader('media-bugname');
|
const bugname = fsEvent.getHeader('media-bugname');
|
||||||
if (bugname && this.bugname !== bugname) return;
|
if (bugname && this.bugname !== bugname) return;
|
||||||
|
if (this.paused) {
|
||||||
|
this.logger.debug({evt}, 'TaskTranscribe:_onTranscription - paused, ignoring transcript');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (this.vendor === 'ibm' && evt?.state === 'listening') return;
|
if (this.vendor === 'ibm' && evt?.state === 'listening') return;
|
||||||
|
|
||||||
@@ -399,7 +406,8 @@ class TaskTranscribe extends SttTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_onNoAudio(cs, ep, channel) {
|
_onNoAudio(cs, ep, channel) {
|
||||||
this.logger.debug(`TaskTranscribe:_onNoAudio restarting transcription on channel ${channel}`);
|
this.logger.debug(`TaskTranscribe:_onNoAudio on channel ${channel}`);
|
||||||
|
if (this.paused) return;
|
||||||
if (this.childSpan[channel - 1] && this.childSpan[channel - 1].span) {
|
if (this.childSpan[channel - 1] && this.childSpan[channel - 1].span) {
|
||||||
this.childSpan[channel - 1].span.setAttributes({
|
this.childSpan[channel - 1].span.setAttributes({
|
||||||
channel,
|
channel,
|
||||||
@@ -415,7 +423,8 @@ class TaskTranscribe extends SttTask {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_onMaxDurationExceeded(cs, ep, channel) {
|
_onMaxDurationExceeded(cs, ep, channel) {
|
||||||
this.logger.debug(`TaskTranscribe:_onMaxDurationExceeded restarting transcription on channel ${channel}`);
|
this.logger.debug(`TaskTranscribe:_onMaxDurationExceeded on channel ${channel}`);
|
||||||
|
if (this.paused) return;
|
||||||
if (this.childSpan[channel - 1] && this.childSpan[channel - 1].span) {
|
if (this.childSpan[channel - 1] && this.childSpan[channel - 1].span) {
|
||||||
this.childSpan[channel - 1].span.setAttributes({
|
this.childSpan[channel - 1].span.setAttributes({
|
||||||
channel,
|
channel,
|
||||||
@@ -440,6 +449,7 @@ class TaskTranscribe extends SttTask {
|
|||||||
|
|
||||||
async _onJambonzError(cs, _ep, evt) {
|
async _onJambonzError(cs, _ep, evt) {
|
||||||
this.logger.info({evt}, 'TaskTranscribe:_onJambonzError');
|
this.logger.info({evt}, 'TaskTranscribe:_onJambonzError');
|
||||||
|
if (this.paused) return;
|
||||||
if (this.isHandledByPrimaryProvider && this.fallbackVendor) {
|
if (this.isHandledByPrimaryProvider && this.fallbackVendor) {
|
||||||
_ep.stopTranscription({
|
_ep.stopTranscription({
|
||||||
vendor: this.vendor,
|
vendor: this.vendor,
|
||||||
|
|||||||
Reference in New Issue
Block a user