@voice-ping/cognitive-services-speech
Version:
VoicePing Cognitive Services Speech SDK for JavaScript forked from Microsoft
49 lines (47 loc) • 2.09 kB
JavaScript
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
import { Deferred, MessageType, RawWebsocketMessage, } from "../../common/Exports";
import { ConversationConnectionMessage } from "./ConversationConnectionMessage";
/**
* Based off WebsocketMessageFormatter. The messages for Conversation Translator have some variations from the Speech messages.
*/
export class ConversationWebsocketMessageFormatter {
constructor() {
/**
* Format incoming messages: text (speech partial/final, IM) or binary (tts)
*/
this.toConnectionMessage = (message) => {
const deferral = new Deferred();
try {
if (message.messageType === MessageType.Text) {
const incomingMessage = new ConversationConnectionMessage(message.messageType, message.textContent, {}, message.id);
deferral.resolve(incomingMessage);
}
else if (message.messageType === MessageType.Binary) {
deferral.resolve(new ConversationConnectionMessage(message.messageType, message.binaryContent, undefined, message.id));
}
}
catch (e) {
deferral.reject(`Error formatting the message. Error: ${e}`);
}
return deferral.promise();
};
/**
* Format outgoing messages: text (commands or IM)
*/
this.fromConnectionMessage = (message) => {
const deferral = new Deferred();
try {
if (message.messageType === MessageType.Text) {
const payload = `${message.textBody ? message.textBody : ""}`;
deferral.resolve(new RawWebsocketMessage(MessageType.Text, payload, message.id));
}
}
catch (e) {
deferral.reject(`Error formatting the message. ${e}`);
}
return deferral.promise();
};
}
}
//# sourceMappingURL=ConversationWebsocketMessageFormatter.js.map