function getAwsEventTransformerStream()

in lib/transcribe-service.js [63:90]


function getAwsEventTransformerStream() {
  return new Transform({
    transform: (chunk, encoding, callback) => {
      const messageWrapper = eventStreamMarshaller.unmarshall(
        Buffer.from(chunk)
      );
      const messageBody = JSON.parse(
        String.fromCharCode.apply(String, messageWrapper.body)
      );
      if (messageWrapper.headers[":message-type"].value === "event") {
        const results = messageBody.Transcript.Results;
        if (results.length === 0) return callback();
        let transcript = results[0].Alternatives[0].Transcript;
        transcript = decodeURIComponent(escape(transcript));
        if (results[0].IsPartial) {
          console.log(`Partial transcript: ${transcript}`);
          return callback();
        } else {
          console.log(`Full transcript: ${transcript}`);
          return callback(null, transcript);
        }
      } else {
        // This is the error
        return callback(messageBody.Message);
      }
    },
  });
}