Node.js Web应用程序上的IBM Watson语音到文本音频转换

时间:2016-04-24 20:29:10

标签: node.js audio ffmpeg speech-to-text ibm-watson

问题的关键在于IBM Watson Speech to Text仅允许上传FLAC,WAV和OGG文件格式并与API一起使用。

我的解决方案是,如果用户上传了一个mp3,那么在将文件发送给Watson之前,就会发生数据转换。基本上,用户上传一个mp3,然后使用ffmpeg或sox将音频转换为OGG,然后将音频上传到Watson。

我不确定的是:我究竟需要在Node.js Watson代码中修改什么才能进行音频转换?下面链接的是Watson回购,这是我正在进行的工作。我确信必须更改的文件是fileupload.js,我已将其链接,但更改的位置是我不确定的内容?

我已经浏览了SO和developerWorks,IBM SO以获得这个问题的答案,但我还没有看到任何我在这里发帖的原因。如果有必要,我很乐意澄清我的问题。

Watson Speech to Text Repo

1 个答案:

答案 0 :(得分:2)

您尝试使用的Speech to Text示例应用程序不会将MP3文件转换为OGG。 src文件夹(上面有fileupload.js)只是javascript,将在客户端使用(感谢Browserify)。

应用程序基本上是使用CORS与API通信,因此音频从浏览器转到Watson API。

如果要使用ffmpegsox转换音频,则需要使用自定义buildpack安装依赖项,因为这些模块具有二进制依赖关系(其中包含C ++代码) James Thomas有一个带有sox的buildpack:https://github.com/jthomas/nodejs-buildpack。 您需要将manifest.yml更新为:

memory: 256M 
buildpack: https://github.com/jthomas/nodejs-buildpack.git
command: npm start

节点:

var sox = require('sox');

var job = sox.transcode('audio.mp3', 'audio.ogg', {
  sampleRate: 16000,
  format: 'ogg',
  channelCount: 2,
  bitRate: 192 * 1024,
  compressionQuality: -1
});