带有节点的IBM Watson Speech to Text API。如何输出到DOM?

时间:2016-12-17 11:52:02

标签: node.js ibm-watson watson

我正在使用npm模块与IBM的Watson合作,对文本进行语音处理。我在这里使用此软件包:https://github.com/watson-developer-cloud/speech-javascript-sdk

我可以认证很好,但除此之外没有任何反应。我想从响应中获取文本并将其插入DOM中。我尝试了以下尝试,但我没有得到任何反馈。

WatsonSpeech.SpeechToText.recognizeMicrophone({token: token, keepmic: true, ouputElement: "body"}).promise().then(function() {
  console.log("talking");
  })

文档说明了以下方法:

  

如果options.outputElement,则传递给WritableElementStream的其他选项   已经确定了。

  

默认情况下通过FormatStream管道结果,设置options.format = false>禁用。

我会认为     WatsonSpeech.SpeechToText.recognizeMicrophone 将采用回调函数,以便我可以处理响应并将其插入我的DOM,但我无法解决这个问题。另外,我不是一个真正的JS人,所以我不知道承诺的作用。

1 个答案:

答案 0 :(得分:1)

第3章"零到认知"正好应用了此代码。

https://github.com/rddill-IBM/ZeroToCognitive

我建议你看看他在youtube上的课程,但这里是我找到的代码。

function initPage ()
{
  var _mic = $('#microphone'); var _stop = $("#stop");
_mic.addClass("mic_enabled");
_stop.addClass("mic_disabled");

  _mic.on("click", function ()
    {
      var _className = this.className;
      if(this.className == "mic_enabled")
      {
        _mic.addClass("mic_disabled");
    _mic.removeClass("mic_enabled");
    _stop.addClass("mic_enabled");
    _stop.removeClass("mic_disabled");
    $.when($.get('/api/speech-to-text/token')).done(
      function (token) {
        stream = WatsonSpeech.SpeechToText.recognizeMicrophone({
           token: token,
           outputElement: '#speech' // CSS selector or DOM Element
         });
        stream.on('error', function(err) { console.log(err); });
      });
    }
  });

  _stop.on("click",  function() {
      console.log("Stopping text-to-speech service...");
      if (stream != undefined) {stream.stop(); }
      _mic.addClass("mic_enabled");
      _mic.removeClass("mic_disabled");
      _stop.addClass("mic_disabled");
      _stop.removeClass("mic_enabled");
    });

}