node js mp3 аудио канал не передается на aws транскрибировать - PullRequest
0 голосов
/ 15 апреля 2020

Используя небольшой узел express сервер, я пытаюсь прочитать, а затем отправить поток mp3 в aws транскрибировать. Поскольку это удаленный URL, я использую http.get, однако получаю следующую ошибку:

Error [ERR_STREAM_CANNOT_PIPE]: Cannot pipe, not readable at ServerResponse.pipe (_http_outgoing.js:821:22)

Что я делаю не так с потоковым каналом? Без добавления .pipe(transcribeStream); я могу воспроизводить аудиопоток, но конечной целью является воспроизведение аудиопотока и его передача для транскрибирования потока.

Я пытаюсь использовать следующее: репо

Ниже приведен мой пример файла сценария

file: stream-from-microphone.ts

import { AwsTranscribe, StreamingClient } from "../index"
  const fs = require('fs');
  const path = require('path');

const client = new AwsTranscribe({
    // if these aren't provided, they will be taken from the environment
      accessKeyId: "",       //omitted
    secretAccessKey: "",     //omitted
})

const transcribeStream = client
    .createStreamingClient({
        region: "us-east-1",
        sampleRate: 8000,
        languageCode: "en-US",
    })
    // enums for returning the event names which the stream will emit
    .on(StreamingClient.EVENTS.OPEN, () => console.log(`transcribe connection opened`))
    .on(StreamingClient.EVENTS.ERROR, console.error)
    .on(StreamingClient.EVENTS.CLOSE, () => console.log(`transcribe connection closed`))
    .on(StreamingClient.EVENTS.DATA, (data) => {
        const results = data.Transcript.Results

        if (!results || results.length === 0) {
            return
        }

        const result = results[0]
        const final = !result.IsPartial
        const prefix = final ? "recognized" : "recognizing"
        const text = result.Alternatives[0].Transcript
        console.log(`${prefix} text: ${text}`)
    })

  var _ = require('underscore'),
  https = require('https'),
  express = require('express'),
  app = express();


app.get('/audioFile.mp3', function(req, res) {
  https.get('https://previewpod.com/snippets/breakdown.mp3', function(audioFile) {
    res.set(_.extend(_.pick(audioFile.headers, 'accept-ranges', 'content-type', 'content-length'), { 'Access-Control-Allow-Origin': '*' }));
    audioFile.pipe(res).pipe(transcribeStream);
  }).on('error', function(err) {
    console.error(err);
  }) 
});

var server = app.listen(3000, function () {
  console.log('app listening on port %s', server.address().port);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...