mirror of
https://github.com/jambonz/jambonz-feature-server.git
synced 2026-01-25 02:07:56 +00:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ea06dbaf3f |
@@ -270,21 +270,19 @@ class TaskGather extends SttTask {
|
||||
};
|
||||
this.sayTask.span = span;
|
||||
this.sayTask.ctx = ctx;
|
||||
this.sayTask
|
||||
.exec(cs, {ep}) // kicked off, _not_ waiting for it to complete
|
||||
.then(() => {
|
||||
if (this.sayTask.isStreamingTts) return;
|
||||
this.logger.debug('Gather:exec - nested say task completed');
|
||||
span.end();
|
||||
process();
|
||||
return;
|
||||
})
|
||||
this.sayTask.exec(cs, {ep}) // kicked off, _not_ waiting for it to complete
|
||||
.catch((err) => {
|
||||
process();
|
||||
});
|
||||
if (this.sayTask.isStreamingTts && !this.sayTask.closeOnStreamEmpty) {
|
||||
// if streaming tts, we do not wait for it to complete if it is not closing the stream automatically
|
||||
process();
|
||||
} else {
|
||||
this.sayTask.on('playDone', (err) => {
|
||||
span.end();
|
||||
if (err) this.logger.error({err}, 'Gather:exec Error playing tts');
|
||||
process();
|
||||
});
|
||||
}
|
||||
}
|
||||
else if (this.playTask) {
|
||||
@@ -308,17 +306,15 @@ class TaskGather extends SttTask {
|
||||
};
|
||||
this.playTask.span = span;
|
||||
this.playTask.ctx = ctx;
|
||||
this.playTask
|
||||
.exec(cs, {ep}) // kicked off, _not_ waiting for it to complete
|
||||
.then(() => {
|
||||
this.logger.debug('Gather:exec - nested play task completed');
|
||||
span.end();
|
||||
process();
|
||||
return;
|
||||
})
|
||||
this.playTask.exec(cs, {ep}) // kicked off, _not_ waiting for it to complete
|
||||
.catch((err) => {
|
||||
process();
|
||||
});
|
||||
this.playTask.on('playDone', (err) => {
|
||||
span.end();
|
||||
if (err) this.logger.error({err}, 'Gather:exec Error playing url');
|
||||
process();
|
||||
});
|
||||
}
|
||||
else {
|
||||
if (this.killed) {
|
||||
@@ -886,10 +882,12 @@ class TaskGather extends SttTask {
|
||||
return;
|
||||
}
|
||||
if (this.sayTask && !this.sayTask.killed) {
|
||||
this.sayTask.removeAllListeners('playDone');
|
||||
this.sayTask.kill(cs);
|
||||
this.sayTask = null;
|
||||
}
|
||||
if (this.playTask && !this.playTask.killed) {
|
||||
this.playTask.removeAllListeners('playDone');
|
||||
this.playTask.kill(cs);
|
||||
this.playTask = null;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ function escapeString(str) {
|
||||
return str
|
||||
.replace(/\\/g, '\\\\') // Escape backslashes
|
||||
.replace(/"/g, '\\"') // Escape double quotes
|
||||
.replace(/[\b]/g, '\\b') // Escape backspace (NOTE: [\b] not \b)
|
||||
.replace(/\b/g, '\\b') // Escape backspace
|
||||
.replace(/\f/g, '\\f') // Escape formfeed
|
||||
.replace(/\n/g, '\\n') // Escape newlines
|
||||
.replace(/\r/g, '\\r') // Escape carriage returns
|
||||
@@ -36,8 +36,7 @@ class TaskListen extends Task {
|
||||
this.metadata = {};
|
||||
for (const key in this.data.metadata) {
|
||||
if (this.data.metadata.hasOwnProperty(key)) {
|
||||
const value = this.data.metadata[key];
|
||||
this.metadata[key] = typeof value === 'string' ? escapeString(value) : value;
|
||||
this.metadata[key] = escapeString(this.data.metadata[key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,11 +120,13 @@ class TaskSay extends TtsTask {
|
||||
}
|
||||
if (this.isStreamingTts) await this.handlingStreaming(cs, obj);
|
||||
else await this.handling(cs, obj);
|
||||
this.emit('playDone');
|
||||
} catch (error) {
|
||||
if (error instanceof SpeechCredentialError) {
|
||||
// if say failed due to speech credentials, alarm is writtern and error notification is sent
|
||||
// finished this say to move to next task.
|
||||
this.logger.info({error}, 'Say failed due to SpeechCredentialError, finished!');
|
||||
this.emit('playDone');
|
||||
return;
|
||||
}
|
||||
throw error;
|
||||
|
||||
Reference in New Issue
Block a user