@audio/stft

中文文档
2.0.0发布于 2026/09/29MITTypeScriptES Module近 30 天下载 1972

Canonical STFT — batch / stream / analyse with normalized Hann OLA; stream ≡ batch under any chunking

原始使用文档

@audio/stft

Try it in the browser: Spectrogram. Runs on this package, nothing is uploaded.

Canonical STFT for the @audio ecosystem — batch / stream / analyse, stream ≡ batch under any chunking.

Hann analysis + synthesis windows with correctly normalized overlap-add. Frames run on the hop grid from the one that starts N − hop before the input to the last sample, so every sample, the first and the last included, has the full overlap: an identity process returns the input exactly. Before the input, frames see its mirror image (numpy's reflect), so a process that learns from the first frames meets the signal's level. ctx.pos gives each frame's first input sample (negative for those early frames). Extracted verbatim from @audio/denoise-core (differential-tested there since wave 1), including the shared stream ring-compaction fix.

import { stftBatch, stftStream, stftAnalyse } from '@audio/stft'

// process(mag, phase, state, ctx) → { mag, phase }, called per frame
const identity = (mag, phase) => ({ mag, phase })

// batch — whole signal in, Float32Array out
let out = stftBatch(input, identity, { fs: 44100, frameSize: 2048, hopSize: 512 })

// stream — real-time chunks; identical output to batch for any chunk sizes
let s = stftStream(identity, { fs: 44100 })
let piece = s.write(chunk)   // returns processed samples as they become available
let tail = s.flush()

// analyse — visit magnitude/phase frames without resynthesis
stftAnalyse(input, (mag, phase, ctx) => { /* inspect */ }, { fs: 44100 })

Also exports wrapPhase, hannWindow (periodic Hann, from window-function), normFloor, PI2.

See also

License

MIT

版本与发布记录

@audio/stft 共发布 10 个版本,首次发布于 2026/07/09;过去 12 个月发布了 10 个版本。

版本发布日期距今
2.0.0latest2026/09/291 个月前
1.0.82026/09/271 个月前
1.0.72026/09/241 个月前
1.0.62026/08/292 个月前
1.0.52026/07/113 个月前
1.0.42026/07/113 个月前

关于 @audio/stft 的常见问题

@audio/stft 是什么?

Canonical STFT — batch / stream / analyse with normalized Hann OLA; stream ≡ batch under any chunking

如何安装 @audio/stft?

在项目目录运行 npm install @audio/stft,或使用 pnpm add / yarn add / bun add。

@audio/stft 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@audio/stft 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@audio/stft 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@audio/stft 可以商用吗?

@audio/stft 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@audio/stft 的下载量有多少?

根据 npm 官方下载统计,@audio/stft 在 2026/10/07 – 2026/11/05 这 30 天内被下载 1,972 次,日均约 66 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@audio/stft 还在维护吗?

最新版本 2.0.0 发布于 2026/09/29(1 个月前);至今共发布 10 个版本,其中过去 12 个月发布了 10 个;首次发布于 2026/07/09。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。