我正在使用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人,所以我不知道承诺的作用。
答案 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");
});
}