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

IBM Watson Speech to Text Audio Conversion on Node.js Web Application

问题的要点是 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

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

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


如果您想使用 ffmpegsox 转换音频,您将需要使用自定义构建包安装依赖项,因为这些模块具有二进制依赖项(其中包含 C++ 代码) James Thomas 有一个带有 sox 的构建包: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
});