【问题标题】:Watson IBM speech to text: no interim_result (Node.JS)Watson IBM 语音转文本:没有 interim_result (Node.JS)
【发布时间】:2015-07-27 09:27:54
【问题描述】:

我正在尝试使用 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。 提前感谢您的帮助。

【问题讨论】:

    标签: node.js speech-recognition speech-to-text ibm-watson


    【解决方案1】:

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

    见:how to create a blob in node.js to be used in a websocket?


    原始答案
    你打电话给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,使用这个audio

    我写了一个glist 以供将来参考。它还包含使用上述音频时的输出。

    【讨论】:

      猜你喜欢
      • 2019-06-23
      • 1970-01-01
      • 2021-07-07
      • 1970-01-01
      • 2019-06-30
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多