2017-08-09 81 views
1

ブラウザやコンソールで文字列が表示されていますが、{'state': 'listening'}などのメッセージは表示されません。もっと重要なのは、{"results": [{"alternatives": [{"transcript": "name the mayflower "}],"final": true}],"result_index": 0}などの結果が表示されないことです。IBM Watson Speech-to-Text JavaScript SDK:メッセージの取得方法は?

私はRecognizeStream documentationを読んで、このコードを試してみました:

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

をしかし、それは動作しません。私はtruefalseの両方でobject_modeを試しましたが、出力は同じでした。

document.querySelector('#button').onclick = function() { 

    var stream = WatsonSpeech.SpeechToText.recognizeMicrophone({ 
    token: token, 
    model: 'en-US_BroadbandModel', 
    keywords: ["Colorado"], 
    keywords_threshold: 0.50, 
    word_confidence: true, 
    // outputElement: '#output' // send text to browser instead of console 
    object_mode: false 
    }); 

    stream.setEncoding('utf8'); // get text instead of Buffers for on data events 

    stream.on('data', function(data) { // send text to console instead of browser 
    console.log(data); 
    }); 

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

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

答えて

2

recognizeMicrophone()方法は、一緒にそのチェーンヘルパーストリームの数である:

はここで私が使用している完全なコードです。 messageイベントは、途中のいずれかのストリームで発生します。しかし、あなたはstream.recognizeStreamにあるものにアクセスすることができます。このようなケースをサポートするには、チェーンの最後のものに常に接続されています。

stream.recognizeStream.on('message', function(frame, data) { 
    console.log('message', frame, data) 
}); 

は、しかし、それはデバッグのために主にあります:

だから、あなたのコードでは、それは次のようになります。 JSONはdataイベントで発行する必要があります。objectMode: trueを設定した場合、にはstream.setEncoding('utf8');と表示されません。

(あなたはそれが2を統一する計画があります。行動だが、十分に決して時間に慣れている場合、これは、ワトソンのNode.js SDKとは多少異なっている...)

+0

働いたおかげで、!あなたは私の質問をupvoteできますか? –

関連する問題