2016-04-24 83 views
2

問題的要點是IBM Watson Speech to Text僅允許上傳FLAC,WAV和OGG文件格式並與API一起使用。IBM Watson語音到文本在Node.js Web應用程序上進行音頻轉換

我的解決方案是,如果用戶上傳mp3,在將文件發送到Watson之前,將發生數據轉換。基本上,用戶上傳一個mp3,然後使用ffmpeg或sox將音頻轉換爲OGG,然後將音頻上傳到Watson。

我不確定的是:爲了允許音頻轉換髮生,我必須在Node.js Watson代碼中修改什麼?下面鏈接是沃森回購這是我正在努力通過。我相信這個文件必須被修改,我已經鏈接了fileupload.js,但是修改的地方是我不確定的。

我已經瀏覽了SO和developerWorks,IBM SO來解答這個問題,但是我還沒有看到任何這是我在這裏發佈的原因。如果有必要,我會很樂意澄清我的問題。

Watson Speech to Text Repo

回答

2

你試圖使用不MP3文件轉換成OGG的Speech to Text示例應用程序。 src文件夾(其上的fileupload.js)只是在客戶端使用的javascript(感謝Browserify)。

該應用程序基本上使用CORS與API通信瀏覽器,因此音頻從瀏覽器轉到Watson API。


如果你想使用ffmpegsox的音頻轉換,你需要使用自定義buildpack安裝的依賴,因爲這些模塊具有二進制依賴(在他們的C++代碼) 詹姆斯·托馬斯與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 
}); 
+0

跟進質詢,這一點,我目前使用的ffmpeg的文件轉換。但是這個音頻轉換庫將整個音頻文件加載到內存中,而不是以塊的形式進行。什麼是這個問題的一個好的解決方案? – YAL

相關問題