生成频谱图形式的wav文件nodejs并保存

时间:2019-02-25 17:32:24

标签: javascript node.js fft spectrogram

我是javascript世界的新手,我想用javascript重新创建我的项目(用python编写)。

所以我想用nodejs编写一个脚本,该脚本读取一个wav文件并从中生成一个频谱图。

我使用node-wavcanvasaudio-context尝试重新创建在此module中应用的方法

我正在使用笔记本电脑和javascript客户端上的本地文件。我想在本地做所有事情。这是我的代码:

const canvas = createCanvas(480, 240)
const spectro = spectrogram(canvas, false)
    const spectrogramsGenerator = async () => {
        // wavfiles return a list of wav files (it works)
        const files = await wavFiles()
        for (file in files) {
            const buffer = fs.readFileSync('path/to/file/' + files[file])
            spectro.connectSource(buffer, audioContext)
            spectro.start()   
        }        
    }

使用该代码段,出现以下错误:

   /path/to/workspace/node_modules/spectrogram/spectrogram.js:34
        window.onresize = function() {
        ^

    ReferenceError: window is not defined
        at new Spectrogram (/path/to/workspace/spectrogram/spectrogram.js:34:5)
        at Spectrogram (/path/to/workspace/node_modules/spectrogram/spectrogram.js:16:14)
        at Object.<anonymous> (/path/to/workspace/spectrogram.js:13:17)
        at Module._compile (internal/modules/cjs/loader.js:736:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10)
        at Module.load (internal/modules/cjs/loader.js:628:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:568:12)
        at Function.Module._load (internal/modules/cjs/loader.js:560:3)
        at Function.Module.runMain (internal/modules/cjs/loader.js:801:12)
        at executeUserCode (internal/bootstrap/node.js:526:15)

如果这样做做错了(我认为是)..我应该使用哪些软件包来实现我的目标,或者应该如何解决此问题。预先感谢

0 个答案:

没有答案