有没有办法释放OfflineAudioContext内存分配?

时间:2018-02-20 05:55:09

标签: javascript html machine-learning electron web-audio-api

现在我正在开发Electron的软件。这是一个音乐播放器应用程序。

我要做的是我必须从(a)传入的歌曲中提取音频特征。这不是实时提取,因为我想提取整首歌的特征。

我使用库调用Meyda和Web Audio API。我注意到我的实现消耗了大量的RAM(约为2,000 MB)。

这是我的实施:

let offlineCtx = new OfflineAudioContext(
  2,
  duration * sampleRate,
  sampleRate
)
let source = offlineCtx.createBufferSource()

let buffer = await audioCtx.decodeAudioData(songData.buffer)
source.buffer = buffer
source.connect(offlineCtx.destination)
source.start()

const SLICING_WINDOW_SIZE = 1024
let renderedBuffer = await offlineCtx.startRendering()
let channelData = await renderedBuffer.getChannelData(0)
let results = []
for (let i = 0; i < channelData.length - SLICING_WINDOW_SIZE; i += SLICING_WINDOW_SIZE) {
  const r = Meyda.extract(
    'mfcc',
    channelData.slice(i, i + SLICING_WINDOW_SIZE)
  )
  results.push(r)
}

有没有办法减少RAM消耗?谢谢!

0 个答案:

没有答案