У меня есть интерфейс в ReactJS, где я использую MediaRecorder для записи голоса с микрофона и сохранения его в аудиоблоб с типом mime «audio / mp3». Затем я загружаю этот BLOB-объект в хранилище облачных объектов IBM. Мой пример использования: я хочу смешать некоторые из моих Aud ios и объединить некоторые Aud ios, и для этого я использую SOX в NodeJS. Итак, я использовал cosHandler в Node, где я загружаю объекты, которые я сохранил ранее, то есть BLOB-объекты. Моя функция getCosObject выглядит примерно так:
const getCosObject = async(key, itemName) => {
var wstream = fs.createWriteStream(`${'/tmp/'}${itemName}`);
console.log(`Retrieving audio from bucket: ${bucketName}, key: ${key}`);
return cos.getObject({
Bucket: bucketName,
Key: key,
}).promise()
.then(async(data) => {
if (data !== null) {
wstream.write(data.Body);
console.log('Audio FILE Downloaded from COS::', itemName);
return;
}
})
.catch((e) => {
console.error(`ERROR: ${e.code} - ${e.message} - ${itemName}\n`);
return;
});
};
Но когда я использую SOX над этими файлами, я получаю следующую ошибку:
Error from the SOX command: FAIL formats: can't open input file `/tmp/processedAnswer1Me.wav': WAVE: RIFF header not found
Примечание: Когда я конвертирую свой BLOB-объект в WAV в моем ReactJS с использованием функции decodeAudioData AudioContext и функции audioBufferToWav моя SOX-команда успешно выполняется в NODE. Почему я не хочу реализовывать это, потому что размер файла WAV после этого имеет исключительно большой размер, чем BLOB.
Использование SOXI для моего сгенерированного большого двоичного объекта приведено ниже:
Input File : '/tmp/PreQNADiscussion.wav'
Channels : 2
Sample Rate : 32000
Precision : 16-bit
Duration : 00:00:03.34 = 107008 samples ~ 250.8 CDDA sectors
File Size : 2.21M
Bit Rate : 5.28M
Sample Encoding: MPEG audio (layer I, II or III)
И когда я использую SOXI для WAV-конвертированного звука, то есть который я не хочу реализовывать
Input File : '/tmp/QNA1tts.wav'
Channels : 1
Sample Rate : 44100
Precision : 16-bit
Duration : 00:00:03.95 = 174375 samples = 296.556 CDDA sectors
File Size : 349k
Bit Rate : 706k
Sample Encoding: 16-bit Signed Integer PCM
Любая помощь?