Ibm cloud Watson语音到文本无法对数据流音频/wav进行转码
我正在使用IBM Watson语音到文本API:Ibm cloud Watson语音到文本无法对数据流音频/wav进行转码,ibm-cloud,speech-to-text,ibm-watson,Ibm Cloud,Speech To Text,Ibm Watson,我正在使用IBM Watson语音到文本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": "
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);
}
});
});
内容类型采样率似乎正确:
有什么想法吗?这是因为watson认为您试图上传的音频文件不是音频文件,所以为了保护自己不受共享文件的影响,它引发了异常 官方解释:
损坏的文件:(下载前扫描)@german正在检查编辑。。。只是几个空间而已。。。还是我遗漏了什么?代码缩进在api文档中大部分都说,不活动超时可能导致错误400。“如果未检测到音频非活动超时秒数(非处理时间)的语音,服务器也会关闭连接(响应代码400);请使用非活动超时参数更改默认值30秒。”关于您的问题@aginsburg,我会试着看看是否可以让它工作,但我99%确定它与s3返回的
内容类型
和内容长度
有关。我打赌你可以将文件保存在临时文件夹中,然后将其发送到speech to text。在这种情况下,您需要确保可以覆盖要发送到STT的头,并且它们符合API的预期。我遇到了Twilio的音频录制问题,您解决了这个问题吗?
> 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 ' }