Проблемы с настройкой Watson Speech to Text API в Javascript / Node.Js - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь настроить Watson Speech to Text для работы в моем приложении Node.Js.

Сначала я настроил сторону сервера в моем файле app.js для получения токена (этов дополнение к настройке сервера express, который я опускаю):

const AuthorizationV1 = require('watson-developer-cloud/authorization/v1');
const SpeechToTextV1 = require('watson-developer-cloud/speech-to-text/v1');
const TextToSpeechV1 = require('watson-developer-cloud/text-to-speech/v1');
const vcapServices = require('vcap_services');

// speech to text token endpoint
var sttAuthService = new AuthorizationV1(
  Object.assign(
    {
      username: MY_IBM_APP_USERNAME, // or hard-code credentials here
      password: MY_IBM_APP_PASSWORD
    },
    vcapServices.getCredentials('speech_to_text') // pulls credentials from environment in bluemix, otherwise returns {}
  )
);
app.use('/api/speech-to-text/token', function(req, res) {
  sttAuthService.getToken(
    {
      url: SpeechToTextV1.URL
    },
    function(err, token) {
      if (err) {
        console.log('Error retrieving token: ', err);
        res.status(500).send('Error retrieving token');
        return;
      }
      res.send(token);
    }
  );
});

(Выше приведен пример из IBM Speech Javascript SDK )

Затемв текущем файле на стороне сервера у меня есть следующий код, чтобы сначала получить токен и активировать голосовой ввод (следуя примеру здесь ):

              fetch('/api/speech-to-text/token')
.then(function(response) {
    return response.text();
}).then(function (token) {

  var stream = WatsonSpeech.SpeechToText.recognizeMicrophone({
      token: token,
      outputElement: '#statement' // CSS selector or DOM Element to put the text in
  });

  stream.on('error', function(err) {
      console.log(err);
  });

  document.querySelector('#stop').onclick = function() {
    stream.stop();
  };

}).catch(function(error) {
    console.log(error);
});

Однако в Chrome Iполучаю ошибку "не удалось создать веб-сокет", и в Safari я просто получаю ошибку 404 для /api/speech-to-text/token, которая должна получить токен.

Что я делаю неправильно?Где ошибка?

Спасибо!

1 Ответ

0 голосов
/ 15 октября 2018

Мне удалось воспроизвести вашу проблему - похоже, в примере использовалась более старая версия watson-developer-cloud с ошибкой.

Обновление до новейшей версии watson-developer-cloud (v3.12.0)исправил проблему для меня.

...