1

我开发了 nodejs-client 来替换随 AVS(Alexa 语音服务)示例代码提供的 Javaclient。

使用的代码发出一个 post 请求,并将输出 mp3 通过管道传输到文件。但很多时候输出的 mp3 不完整,从头到尾都坏了,有时从头开始。所以例如。所需的 mp3 文件持续时间为 9 秒,有时输出文件为 8 秒或 6 秒,或完整的 9 秒。

它的随机行为。

用于发出 api 请求并将 o/p 重定向到文件的代码如下。让我知道这里出了什么问题,我是新来请求管道的。

var options = {
url: 'https://access-alexa-na.amazon.com/v1/avs/speechrecognizer/recognize',
headers:{
  'Content-Type':'multipart/form-data',
  'Transfer-Encoding':'chunked'
},
formData: formData
};

var destination = fs.createWriteStream(path.join(__dirname,outputfile));

//request.debug = 1;
request.post(options, function optionalCallback(err, httpResponse, body)     {
  //console.log(httpResponse);
  if(body.length < 100){
    console.log(body);
  }
  console.log("\n\r----Processing Done to ("+outputfile+")----");
  if(loadingInt!=null)clearInterval(loadingInt);
  process.exit();
  if (err) {
    return console.error('upload failed:', err);
  }
  //console.log('Upload successful!  Server responded with:', body);
}).auth(null, null, true, token)
.pipe(destination);

我已经向 AVS 人员提出了这个问题,但他们用代码和他们的 api 告诉了它的问题。

4

1 回答 1

0

问题是process.exit()通话。完全不知道为什么会在那里。该exit调用有时会在管道完成之前退出您的进程。

于 2016-03-07T05:27:51.730 回答