Node.js microsoft认知:在Bing语音到文本服务的NodeJ中获取EconReset错误
我正在尝试从节点使用bing语音到文本服务。流式传输.wav文件时出现以下错误。非常感谢您的帮助Node.js microsoft认知:在Bing语音到文本服务的NodeJ中获取EconReset错误,node.js,microsoft-cognitive,Node.js,Microsoft Cognitive,我正在尝试从节点使用bing语音到文本服务。流式传输.wav文件时出现以下错误。非常感谢您的帮助 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选项如下所示: var post\u选项={
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选项如下所示:
var post\u选项={
主机名:“speech.platform.bing.com”,
路径:'/recognize',
方法:“发布”
};
post_option.headers={
“内容类型”:audio/wav;samplerate=16000’,//“audio/wav;codec=“audio/wav”;samplerate=16000;sourcerate=8000;trustsourcerate=false”,
//“keepAlive”:对,
//“内容长度”:waveData.Length,
“授权”:“持有人”+OxfordAccessToken.access\u令牌,
//“用户代理”:“TTSNodeJS”,
“X-Search-AppId”:“X-Search-AppId”,
“X-Search-ClientID”:“X-Search-ClientID”
};
post_option.qs={
“场景”:“ulm”,
'appid':'----------',//此魔术值是必需的
“locale”:“en-US”,
'device.os':'wp7',
“版本”:“3.0”,
“格式”:“json”,
'requestid':'----',//可以是任何内容
'instanceid':'----'//可以是任何内容
};
NodeJS调用SpeechToText服务
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)=>{
如果(错误){
日志(“STT期间出错”);
}
var-stresponse;
res.on('数据',函数(缓冲区){
stresponse+=缓冲区;
});
日志(“STT结果:+STT响应”);
});
管道(post_req,{end:false});
拉塞赛德自己回答了这个问题,但为了节省大家的时间,这里有一些代码:
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
};
它无法工作,因为查询字符串未通过URL传递;通过将查询字符串附加到选项下的路径进行修复。post_选项={hostname:'speech.platform.bing.com',路径:'/recognize',方法:'post'};