m4a / mp3文件转换为Bing Speech API的wav文件

必应语音API只接受wav文件,所以我一直在尝试将m4a(Skype)和mp3(Facebook)audio文件转换为wav格式。 我在node.js中使用fluent-ffmpeg

现在,我正在下载audio文件,将其转换为wav并返回pipe道输出以供使用。

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文件时,转换工作。 但是,当我指定我的电脑作为terminal(通过ngrok),并尝试从漫游框架开发人员的聊天testing中发送m4a文件时 ,ffmpeg返回一个错误:

 An error occurred: ffmpeg exited with code 1: file.m4a: Invalid data found when processing input 

但是当我播放下载的m4a文件时,它可以正常播放。

第二种情况下,内容url为https。

请帮助我两件事情:

  1. 下载,转换和返回,而不在我的末端存储任何东西
  2. 正确下载/访问m4a / mp3文件

我是新来的stream,pipe道和ffmpeg和所有上面的代码是谷歌search后。

Interesting Posts