2016-07-11 4 views
4

Ich versuche, Bing-Sprache zu Text-Service von Node zu verwenden. Fehler beim Streamen der .wav-Datei. Ich schätze jede Hilfe sehr.Microsoft-Cognitive: Erhalte ECONNRESET Fehler in NodeJS für Bing Speech to Text-Dienst

events.js:154 
     throw er; // Unhandled 'error' event 
    ^
Error: read ECONNRESET 
    at exports._errnoException (util.js:890:11) 
    at TLSWrap.onread (net.js:550:26) 

Http Optionen sind wie folgt:

 var post_option = { 
      hostname: 'speech.platform.bing.com', 
      path: '/recognize', 
      method: 'POST' 
     }; 
     post_option.headers = { 
      'Content-Type': 'audio/wav; samplerate=16000', //'audio/wav; codec=”audio/wav”; samplerate=16000; sourcerate=8000; trustsourcerate=false', 
      // 'keepAlive': true, 
      // 'Content-Length' : waveData.length, 
      'Authorization': 'Bearer ' + OxfordAccessToken.access_token, 
      // "User-Agent": "TTSNodeJS", 
      'X-Search-AppId': '______', 
      'X-Search-ClientID': '______' 
     }; 

     post_option.qs = { 
      'scenarios': 'ulm', 
      'appid': '--------', // This magic value is required 
      'locale': 'en-US', 
      'device.os': 'wp7', 
      'version': '3.0', 
      'format': 'json', 
      'requestid': '------', // can be anything 
      'instanceid': '------' // can be anything 
     }; 

NodeJS zu SpeechToText Dienst rufen

  res.on('end', function(){ 
       OxfordAccessToken = eval ('(' + _data + ')');  
       var voiceStream = fs.createReadStream("voiceresponse.wav",{encoding: "binary"}); 
       var https = require('https'); 
       var post_req = https.request(getPostOptionsForSTT(OxfordAccessToken), (res) =>{ 
        if(err){ 
         console.log("Error during STT"); 
        } 
        var sttResponse; 
        res.on('data', function(buffer){ 
         sttResponse += buffer; 
        }); 
        console.log("STT Results : "+sttResponse); 
       }); 
       voiceStream.pipe(post_req,{ end: false }); 
+0

Es funktionierte nicht, weil Query String nicht mit URL übergeben wurde; Behoben durch Anfügen der Abfragezeichenfolge an den Pfad unter Optionen. post_option = { Host-Name: 'speech.platform.bing.com', Pfad: '/ erkennen << >> Query-String anhängen?', Methode: 'POST' }; – raserside

Antwort

0

raserside die Frage beantwortet sich/sich, aber hier ist der Code, zu Sparen Sie ein bisschen Zeit:

const querystring = require('querystring'); // or query-string, or qs 

var params = { 
    'scenarios': 'ulm', 
    'appid': 'D4D52672-91D7-4C74-8AD8-42B1D98141A5', 
    'locale': 'en-US', 
    'device.os': 'wp7', 
    'version': '3.0', 
    'format': 'json', 
    'requestid': '------', // can be anything 
    'instanceid': '------' // can be anything 
}; 

var post_option = { 
    hostname: 'speech.platform.bing.com', 
    path: '/recognize?' + querystring.stringify(params), 
    method: 'POST' 
}; 

post_option.headers = { 
    'Content-Type': 'audio/wav; samplerate=16000', // For example 
    'Authorization': 'Bearer ' + OxfordAccessToken.access_token 
};