Bing Speech API只接受wav文件,因此我一直在尝试将我在聊天机器人中获得的m4a(Skype)和mp3(Facebook)音频文件转换为wav格式。我在node.js中使用fluent-ffmpeg。
现在,我正在下载音频文件,将其转换为wav并返回管道输出以供使用。
if (attachment.contentType === 'audio/x-m4a') {
request.get(attachment.contentUrl).pipe(fs.createWriteStream('file.m4a'));
var command = ffmpeg('file.m4a')
.toFormat('wav')
.on('error', function (err) {
console.log('An error occurred: ' + err.message);
})
.on('progress', function (progress) {
// console.log(JSON.stringify(progress));
console.log('Processing: ' + progress.targetSize + ' KB converted');
})
.on('end', function () {
console.log('Processing finished !');
});
return command.pipe();
}
现在,当我通过我的电脑上的botframework-emulator发送m4a文件时,转换工作正常。但是当我指定我的电脑作为端点(通过ngrok)并尝试从机器人框架developer end的聊天测试发送m4a文件时,ffmpeg会返回错误:
An error occurred: ffmpeg exited with code 1: file.m4a: Invalid data found when processing input
但是当我播放下载的m4a文件时,它可以正常播放。
如果重要,内容网址是第二种情况下的https。
请帮我两件事:
我是stream,pipes和ffmpeg的新手,以上所有代码都是在google搜索之后。