用于Bing Speech API的m4a / mp3文件

时间:2017-07-13 03:39:29

标签: node.js ffmpeg speech-recognition botframework microsoft-cognitive

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。

请帮我两件事:

  1. 下载,转换和返回,而不在我的最后存储任何内容
  2. 正确下载/访问m4a / mp3文件
  3. 我是stream,pipes和ffmpeg的新手,以上所有代码都是在google搜索之后。

0 个答案:

没有答案