@audio/stretch

中文文档
2.3.0发布于 2026/10/18MITTypeScriptES Module近 30 天下载 2427

时间拉伸——为@audio/stretch- * 原子提供伞 (WSOLA,相相vocoder变体,PaulStrech,PSOLA, SMS)

中文使用文档
文档目录18 节
  1. 使用量
  2. 时间域
  3. wsola —— 说 @audio/stretch-wsola
  4. psola —— 说 @audio/stretch-psola
  5. 频率域
  6. pvoc —— 说 @audio/stretch-pvoc
  7. pvoc-lock —— 说 @audio/stretch-pvoc-lock
  8. pvsola —— 说 @audio/stretch-pvsola
  9. pghi —— 说 @audio/stretch-pghi
  10. transient —— 说 @audio/stretch-transient
  11. hybrid —— 说 @audio/stretch-hybrid
  12. paulstretch —— 说 @audio/stretch-paulstretch
  13. 阴性
  14. sms —— 说 @audio/stretch-sms
  15. 质量衡量标准—— @audio/quality
  16. 研究和比较
  17. 另见
  18. 参考资料

@ audio/ stetch (英语) test npm license

在浏览器中尝试: 弹出和变速器。运行此软件包,没有上传.

时间拉伸算法——伞过 @audio/stretch-* 原子。 原子.

原子算法域名质量CPU 软件最好还是
@audio/stretch-wsola西非时间★★★★低级单声道
@audio/stretch-psolaPSOLA 人民解放军时间★★★★介质单声道
@audio/stretch-pvoc纯相电极法国克★★介质教育基线
@audio/stretch-pvoc-lock相位锁定的vocoder法国克★★★★介质一般音乐
@audio/stretch-pghi相相渐变电极法国克★★★★介质紫外线,滑翔,鸣叫
@audio/stretch-pvsola重新设置为波形时间★★★★★介质语音、独奏
@audio/stretch-transient瞬间意识活化器法国克★★★★★介质有冲击力的音乐
@audio/stretch-hybridHPSS 混合设备时间★★★★高级完全混合-圆筒翻转
@audio/stretch-paulstretch保罗·斯特雷克法国克—— 说介质极端延伸(环境、无人驾驶飞机)
@audio/stretch-sms斜向建模鼻窦★★★★高级口琴/通心材料

投出时,请看 @audio/shift-* 和家人一样.

使用量

安装伞( 所有原子) :

npm install @audio/stretch
import { transient, wsola } from '@audio/stretch'

let slower = transient(samples, { factor: 2 })          // 2× slower, same pitch
let fast   = wsola(samples, { factor: 0.75 })           // 1.33× faster

let write = transient({ factor: 1.5 })                  // real-time streaming
write(block1)
write(block2)
write()                                                  // → remaining samples

或者安装你需要的原子 每个原子都是自成一体的:

npm install @audio/stretch-transient
import transient from '@audio/stretch-transient'
let out = transient(samples, { factor: 2 })

Float32Array 内出; 频道数组 [L, R] (或 Float64Array(a) 接受和处理每个频道——与 @audio/shift。输出大小可能是可变的——小的或空的早期块在流出时是正常的.

时间域

wsola —— 说 @audio/stretch-wsola

波形相似度重叠- Add, 以 SundTouch 和 sux 为分块形式 tempo. 输入部分被放出一跳相隔一跳,每跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相隔一跳相相隔一跳相隔一跳相隔一跳相相隔一跳相隔一跳相(相相相隔一跳相隔一跳相隔一跳相隔一跳相相隔一跳相相相隔一跳相相隔一跳相相隔一跳相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 波形被复制,而不是被再合成,所以一个声音保持了它的光滑脉冲形状并相通保持了它们的攻击. 一个相相的vocoder保持了每一个口琴,但它们彼此不相配合,这就是为什么通过它说话听起来很遥远的原因. 频道共享一搜索. 没有FFT.

import wsola from '@audio/stretch-wsola'

wsola(data, { factor: 1.5 })
wsola([left, right], { factor: 0.5, sampleRate: 48000 })
参数默认
factor1时间长度比, 或输入秒函数
sampleRate44100
frameSize40分钟部分
hopSizeframeSize · 3/5输出跳;部分横跨其余部分(16毫秒,一个周期为62.5赫兹)
delta8分钟搜索(±),该期间的一半

使用时 : 缩短语音、独唱或单声道乐器, pvsola (复制会重复噪音和反响成一股花花相).
不为: 和弦并相会. 一个对齐不能适合多个投出;使用频率域方法.

psola —— 说 @audio/stretch-psola

(原始内容存档于2017-07-21). Pitch-Synchronous Overlap-Add. 通过自相接探测出投出周期,然后在投出周期边界上检测出窗口颗粒. 由于谷物与投出周期一致,重叠时没有相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.

import psola from '@audio/stretch-psola'

psola(data, { factor: 1.5 })
psola(data, { factor: 0.75, sampleRate: 48000 })
psola(data, { factor: 2, minFreq: 100, maxFreq: 400 })  // male voice range
参数默认
factor1时间长度比
sampleRate44100投出探测频率范围
minFreq80最低预期投出( Hz)
maxFreq500最高预期投出( Hz)

使用时 : 语音,独声,单声道乐器,因子为0.5–2×.
不为: 多管材料——自相通取出一发投出期,使和弦被搅拌. 极端比率(>2×)造成差距.

频率域

pvoc —— 说 @audio/stretch-pvoc

纯相相相相相. 每个垃圾箱的相位以瞬间频率独立推进. 磁性研究被保留下来,但不一致的相和相相相关系使复杂的信号具有扩散,"水下"的质量.

import pvoc from '@audio/stretch-pvoc'
pvoc(data, { factor: 2 })
参数默认
factor1时间长度比
frameSize2048FFT 尺寸( 功率 2)
hopSizeframeSize/4在相框间跳动

使用时 : 教育基线,简单的通体信号.
不为: 一般音乐——使用 pvoc-lock 或者说 transient。 。 。 .

pvoc-lock —— 说 @audio/stretch-pvoc-lock

相锁发泡器(Laroche & Dolson,1999年)。 在传播相后,将非高峰相机箱锁定在最接近光谱峰值的自转上. 恢复口琴相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.

import pvocLock from '@audio/stretch-pvoc-lock'
pvocLock(data, { factor: 2 })

与 pvoc。 。 。 .

使用时 : 通俗音乐——不需要瞬息万变的物质.
不为: 攻击有重要意义的震撼材料——使用 transient。 。 。 .

pvsola —— 说 @audio/stretch-pvsola

一个相位锁定的vocoder,其帧从输入器本身的波形中在任何适合的地方重新启动(Moinet & Dutoit, DAFx 2011). 如果一个声音是周期性的,其帧会取出输入的自相相并保持其光滑脉冲的形状;噪音,呼吸和反响会停留在vocoder上,因此减速从不重复它们(WSOLA的发光),也不会传播出声音(vocoder的发光).

import pvsola from '@audio/stretch-pvsola'
pvsola(data, { factor: 1.5 })
参数默认
factor1时间长度比, 或输入秒函数
sampleRate44100
frameSize46分钟框架, 2 的功率
shift4.5 毫秒 (千分点)移动搜索重置 (±)

使用时 : 减慢口音或独唱声.
不为: 缩短, 在哪里 wsola 保持更好的攻击.

pghi —— 说 @audio/stretch-pghi

相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 合成相由分析相梯度整合而成,通过最大堆积按数量顺序访问相机:不取峰取峰,不取瞬间回升;鸣叫,活字和滑翔等通过构造保持相通.

import pghi from '@audio/stretch-pghi'

pghi(data, { factor: 2 })
参数默认
factor1时间长度比
frameSize2048FFT 尺寸( 功率 2)
hopSizeframeSize/8Hop - 梯度集成需要密集帧
tolerance1e-6下面的纸箱 tolerance×max 获得随机相

使用时 : 调制出的材料——活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活化活.
不为: 平稳多声 pvoc-lock身份锁会复制部分内部的阶段 也就是梯度融合仅接近它们的地方.

transient —— 说 @audio/stretch-transient

瞬变相-有意识相锁活化器(Röbel,2003年)。 测量相框之间的光谱通量;一瞬间,光谱通量会重新回到原来的分析阶段,而不是传播光谱通量,保持出鼓和取出的攻击锐度。 隐形相锁.

import transient from '@audio/stretch-transient'

transient(data, { factor: 2 })
transient(data, { factor: 1.5, transientThreshold: 2.0 })  // less sensitive detection
参数默认
factor1时间长度比
frameSize2048FFT 尺寸( 功率 2)
hopSizeframeSize/4在相框间跳动
transientThreshold1.5光谱通量阈值( 较高 = 较少的重排)

使用时 : 多数音乐的正确默认——打击,混合出处.
不为: 语音/语音——使用 psola. 极限拉伸-使用 paulstretch。 。 。 .

hybrid —— 说 @audio/stretch-hybrid

相和/相和杂交(Driedger & Müller). 中相-过滤器HPS将分光分出分出两层;相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.

import hybrid from '@audio/stretch-hybrid'

hybrid(data, { factor: 2 })
参数默认
factor1时间长度比
frameSize2048用于 HPSS + 口琴道的 FFT 大小
percFrame512法律厅打击层框架
harmMedian17跨时间的中间过滤器(框架)
percMedian17跨频率的中间滤波器(相机)

使用时 : 完全混合——取出圆筒取出通心材料.
费用: 分离 + 2 延伸 QQ 4–6× CPU 的 QQ 4–6× : pvoc-lock 一个人.

paulstretch —— 说 @audio/stretch-paulstretch

通过相随机化进行极端时间拉长(纳斯卡,2006年)。 保留了星等,但以随机值来取代所有相相,产生平滑,梦想般的纹理. 为大因素所设计.

import paulstretch from '@audio/stretch-paulstretch'

paulstretch(data, { factor: 8 })
paulstretch(data, { factor: 100, frameSize: 8192 })
参数默认
factor8时间拉伸比率(最佳 > 2×)
frameSize4096FFT 大小( 较大 = 平滑)
seed0x1f123bb5PRNG 种子( 决定输出)

使用时 : 安徽音乐,音效设计,无人机生成,8×–-1000×拉伸.
不为: 小比例(<2××)——声音冲出. 不是为了保持节奏或瞬间.

阴性

sms —— 说 @audio/stretch-sms

阴道模型合成(Serra 1989, McAulay-Quatieri 1986). 将音频分解成单独跟踪的sinusoidal部分并按新的时间速率进行再合成. 每个部分的频率和规模都是独立地插入的——没有相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.

import sms from '@audio/stretch-sms'

sms(data, { factor: 2 })
sms(data, { factor: 0.5, maxTracks: 80 })
sms(data, { factor: 3, frameSize: 4096 })
参数默认
factor1时间长度比
frameSize2048FFT 帧大小
hopSizeframeSize/4在相框间跳动
maxTracks60最大同时的鼻音轨
minMag1e-4峰值探测阈值(线性)
freqDev3音轨续作的最大频率偏差( 宾)
residualMix1混入正辛醇-水分配系数

使用时 : 谐音/通纳的内容——乐器,和弦,相声——相发音引入抹片. 默认 residualMix=1 混合了呼吸,噪音, 和瞬时能量 与鼻道模型.
不为: 噪声为主的材料.

质量衡量标准—— @audio/quality

每个原子都是自成一体的(花纹/OLA助动器被内嵌;相相锁的引擎生活在其中) @audio/spectral-pvoc) (中文(简体) ). 产出质量评价 @audio/quality数字 :

import { lsd, spectralSim, chordBalance, chordRetention, modulationDepth } from '@audio/quality'

lsd (log-光谱相距), spectralSim (同理相似), chordBalance, (中文(简体) ), chordRetention,以及 modulationDepth (AM深度每部分)对照参考值评价算法输出.

研究和比较

命令它会做什么
node scripts/compare.js写入 compare.html ——交互式波形,回放,内相-vs-外相比较
node scripts/bench.js批量和流水的吞吐量和x实时数字
node scripts/diagnose.js特定算法行为的定向诊断

演示 用于轻量级浏览器监听矩阵.

另见

参考资料

  • Verhelst, W. & Roelands, M. (1993年). "一种基于波形相似性的相重叠添加技术(WSOLA)" ICASSP 软件。 。 。 .
  • Laroche, J. & Dolson, M.(1999年). "改进相相机vocoder时间尺度修改音频" IEEE Trans. (原始内容存档于2017-10-21). 语音音频处理。 。 。 .
  • Röbel, A. (2003年). "阶段活化器中瞬态处理新办法" DAFx 函数。 。 。 .
  • Nasca, P. (2006年). "保罗·斯特拉奇——极端时间拉伸" paulnasca.com (英语)。 。 。 .
  • Moulines, E. & Charpentier, F. (1990年). "利用双管进行文字对语音合成的比奇同步波形处理技术" 语音交流,第9(5-6)页.
  • Driedger, J. & Müller, M. (2016年) (英语). "音乐信号时间尺度修改审查" 应用科学第6(2)条.
  • Serra, X. (1989) (英语). “一个基于定态加Stochastic分解的音效分析/变形/合成系统”。 斯坦福博士论文.
  • McAulay, R.J. & Quatieri, T.F. (1986年). "基于鼻音表达的语音分析/合成" IEEE Trans. (原始内容存档于2017-10-21). 阿萨普第34(4)条.

版本与发布记录

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

版本发布日期距今
2.3.0latest2026/10/1820 天前
2.2.02026/10/031 个月前
2.1.02026/09/291 个月前
2.0.52026/08/292 个月前
2.0.42026/07/113 个月前
2.0.32026/07/113 个月前

关于 @audio/stretch 的常见问题

@audio/stretch 是什么?

时间拉伸——为@audio/stretch- * 原子提供伞 (WSOLA,相相vocoder变体,PaulStrech,PSOLA, SMS)

如何安装 @audio/stretch?

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

@audio/stretch 支持 TypeScript 吗?

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

@audio/stretch 支持 ESM 还是 CommonJS?

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

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

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

@audio/stretch 可以商用吗?

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

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

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

@audio/stretch 还在维护吗?

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