Watson Speech to Text无法转码数据流audio / wav

时间:2017-04-11 08:35:12

标签: ibm-cloud speech-to-text ibm-watson

我正在使用IBM Watson Speech to Text API:

var SpeechToTextV1 = require('watson-developer-cloud/speech-to-text/v1');
var fs = require('fs');
var request = require('request');

var speech_to_text = new SpeechToTextV1({
  "username": "<user name>",
  "password": "<password>"
});

var recognizeStream = speech_to_text.createRecognizeStream();

// request(wavfileURL).pipe(recognizeStream);
// recognizeStream.on('results', function(err, res){
//     console.dir(err)
//     console.dir(res)
//     if (res.results){
//         console.dir(res.results)
//     }
//
// });
request.get(wavfileURL, function (err, res, buffer) {
  var streamer = require('streamifier');
  var params = {
    // From file
    audio: streamer.createReadStream(buffer) ,
    content_type: 'audio/wav; rate=44100'
  };

  speech_to_text.recognize(params, function(err, res) {
    debugger;
    if (err)
      console.log("ERR:",err);
    else {
      console.log("NOT ERR");
      console.log(JSON.stringify(res, null, 2));
      console.dir(res);
    }
  });
});

我用以下WAV文件https://s3.amazonaws.com/buzzy-audio/adam.ginsburg%40gmail.com/vNixvnC4Xscu8yZ98

来调用它

我收到以下错误:

> ERR: { [Error: unable to transcode data stream audio/wav ->
> audio/x-float-array ] I20170411-18:23:40.576(10)?   code: 400,
> I20170411-18:23:40.576(10)?   code_description: 'Bad Request',
> I20170411-18:23:40.577(10)?   error: 'unable to transcode data stream
> audio/wav -> audio/x-float-array ' }

内容类型抽样率似乎正确:

fileinfo

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是因为 watson 认为您尝试上传的音频文件不是音频文件,因此为了保护自己免受恶意文件的侵害,它引发了异常

官方解释:link

损坏的文件:file byte code altered(下载前扫描)