繁体   English   中英

Watson IBM语音转文本:无interim_result(Node.JS)

[英]Watson IBM speech to text: no interim_result (Node.JS)

我正在尝试通过node.js获得interim_results

var params = {
audio: fs.createReadStream('./out.wav'),
content_type: 'audio/l16;rate=16000',
continuous: true,
interim_results: true,
word_confidence: true
};

我使用speech_to_text.createSession创建会话,然后尝试启动recognize功能:

function recognize(params,session_id,cookie_session) {
setInterval(function(){ observe_results(session_id,cookie_session) }, 1000);
speech_to_text.recognize(params, function(err, transcript) {
    if (err) {
        console.log(err);
    }
    else {
        console.log("OK")
        console.log(JSON.stringify(transcript, null, 2));
        fs.writeFile('./transcript.txt', JSON.stringify(transcript), function(err) {if(err){return console.log('err')}});
    }
});}

但我只收到最后一次转录,而没有interim_results 预先感谢您的帮助。

更新:11/4 :从v1.0开始, watson-developer-cloud npm模块支持websocket。

请参阅: 如何在node.js中创建要在Websocket中使用的Blob?


原始答案
您在呼叫recognize而不是recognizeLive

请参阅以下示例:

var watson = require('watson-developer-cloud'),
  fs = require('fs');

var speechToText = watson.speech_to_text({
 password: '<password>',
 username: '<username>',
 version: 'v1'
});

var noop = function(){};

var observeResult = function(err, transcript) {
  if (err){
    console.log(err);
    return;
  }
  // print the transcript
  console.log(JSON.stringify(transcript, null, 2));
};

speechToText.createSession({}, function(err, session){
  if (err){
    console.log('error:', err);
    return;
  }

  var request = speechToText.recognizeLive({
    content_type: 'audio/l16;rate=44100',
    continuous: true,
    word_confidence: true,
    interim_results: true,
    session_id: session.session_id,
    cookie_session: session.cookie_session }, noop);

  // call observe result to get intermin results
  speechToText.observeResult({
    interim_results: true,
    session_id: session.session_id,
    cookie_session: session.cookie_session }, observeResult);

  // pipe the audio to the request
  // once the stream is consumed it will call request.end()
  fs.createReadStream('audio.wav').pipe(request);
});

替换usernamepassword ,使用此音频

我写了一个清单供以后参考。 使用上面的音频时,它也包含输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM