Как отправить аудиофайл в IBM Watson Speech-to-Text с узла? - PullRequest
0 голосов
/ 17 марта 2020

Я прочитал всю документацию шесть раз, но не понимаю, как отправить аудиофайл в IBM Watson Speech-to-Text с узла. Я надеюсь использовать SDK вместо отправки HTTP-запроса с узлом request-promise Node.

Вот что я хочу сделать:

const SpeechToTextV1 = require('ibm-watson/speech-to-text/v1');
const { IamAuthenticator } = require('ibm-watson/auth');

const speechToText = new SpeechToTextV1({
    authenticator: new IamAuthenticator({
      apikey: 'my-api-key',
    }),
    url: 'my-service-endpoint',
  });

var params = {
    objectMode: true,
    contentType: 'audio/octet-stream',
    model: 'en-US_BroadbandModel',
    keywords: ['colorado', 'tornado', 'tornadoes'],
    keywordsThreshold: 0.5,
    maxAlternatives: 3
  };

speechToText.recognize(params, downloadURL)
  .then(function(response) {
    // do something with the response object
  })
  .catch(function(error) {
    console.error(error);
  });

У меня есть мой аудиофайл в хранилище Firebase, с downloadURL. Формат файла octet-stream. Я хочу отправить аудиофайл в Speech-to-Text и получить обещание с объектом ответа.

Должен ли я использовать fs.readFileSyn c (fileName) для отправки файл или fs.createReadStream для отправки потока вместо файла? Примерно так:

const audioFile = fs.readFileSync('gs://my-bucket/my-file');

speechToText.recognize(params, audioFile)
   .then(function(response) {
      // do something with the response object
   })
   .catch(function(error) {
      console.error(error);
   });

Я пытался использовать WebSockets в AngularJS, но соединение было ненадежным, и он использовал аутентификацию имени пользователя / пароля для предоставления токена. Я пытался настроить WebSockets с аутентификацией IAM, но не мог понять, как получить токен. Похоже, что запись звука должна быть более надежной, сохранить ее в Firebase Storage, а затем отправить файл в Speech-to-Text с узла (Firebase Cloud Functions).

Файлы небольшие (несколько секунд), поэтому синхронного доступа должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...