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 来寻找这个问题的答案,但我没有看到任何答案,这就是我在这里发帖的原因。如果有必要,我很乐意澄清我的问题。
您尝试使用的 Speech to Text 示例应用程序无法将 MP3 文件转换为 OGG。 src
文件夹(上面有 fileupload.js
)只是将在客户端使用的 javascript(感谢 Browserify)。
该应用程序基本上是使用 CORS 与 API 进行通信,因此音频从浏览器传输到 Watson API。
如果您想使用 ffmpeg
或 sox
转换音频,您将需要使用自定义构建包安装依赖项,因为这些模块具有二进制依赖项(其中包含 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
});
问题的要点是 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 来寻找这个问题的答案,但我没有看到任何答案,这就是我在这里发帖的原因。如果有必要,我很乐意澄清我的问题。
您尝试使用的 Speech to Text 示例应用程序无法将 MP3 文件转换为 OGG。 src
文件夹(上面有 fileupload.js
)只是将在客户端使用的 javascript(感谢 Browserify)。
该应用程序基本上是使用 CORS 与 API 进行通信,因此音频从浏览器传输到 Watson API。
如果您想使用 ffmpeg
或 sox
转换音频,您将需要使用自定义构建包安装依赖项,因为这些模块具有二进制依赖项(其中包含 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
});