@ audio/ stetch (英语)

在浏览器中尝试: 弹出和变速器。运行此软件包,没有上传.
时间拉伸算法——伞过 @audio/stretch-* 原子。 原子.
| 原子 | 算法 | 域名 | 质量 | CPU 软件 | 最好还是 |
|---|---|---|---|---|---|
@audio/stretch-wsola | 西非 | 时间 | ★★★★ | 低级 | 单声道 |
@audio/stretch-psola | PSOLA 人民解放军 | 时间 | ★★★★ | 介质 | 单声道 |
@audio/stretch-pvoc | 纯相电极 | 法国克 | ★★ | 介质 | 教育基线 |
@audio/stretch-pvoc-lock | 相位锁定的vocoder | 法国克 | ★★★★ | 介质 | 一般音乐 |
@audio/stretch-pghi | 相相渐变电极 | 法国克 | ★★★★ | 介质 | 紫外线,滑翔,鸣叫 |
@audio/stretch-pvsola | 重新设置为波形 | 时间 | ★★★★★ | 介质 | 语音、独奏 |
@audio/stretch-transient | 瞬间意识活化器 | 法国克 | ★★★★★ | 介质 | 有冲击力的音乐 |
@audio/stretch-hybrid | HPSS 混合设备 | 时间 | ★★★★ | 高级 | 完全混合-圆筒翻转 |
@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 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比, 或输入秒函数 |
sampleRate | 44100 | |
frameSize | 40分钟 | 部分 |
hopSize | frameSize · 3/5 | 输出跳;部分横跨其余部分(16毫秒,一个周期为62.5赫兹) |
delta | 8分钟 | 搜索(±),该期间的一半 |
使用时 : 缩短语音、独唱或单声道乐器, 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
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
sampleRate | 44100 | 投出探测频率范围 |
minFreq | 80 | 最低预期投出( Hz) |
maxFreq | 500 | 最高预期投出( Hz) |
使用时 : 语音,独声,单声道乐器,因子为0.5–2×.
不为: 多管材料——自相通取出一发投出期,使和弦被搅拌. 极端比率(>2×)造成差距.
频率域
pvoc —— 说 @audio/stretch-pvoc
纯相相相相相. 每个垃圾箱的相位以瞬间频率独立推进. 磁性研究被保留下来,但不一致的相和相相相关系使复杂的信号具有扩散,"水下"的质量.
import pvoc from '@audio/stretch-pvoc'
pvoc(data, { factor: 2 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
frameSize | 2048 | FFT 尺寸( 功率 2) |
hopSize | frameSize/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 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比, 或输入秒函数 |
sampleRate | 44100 | |
frameSize | 46分钟 | 框架, 2 的功率 |
shift | 4.5 毫秒 (千分点) | 移动搜索重置 (±) |
使用时 : 减慢口音或独唱声.
不为: 缩短, 在哪里 wsola 保持更好的攻击.
pghi —— 说 @audio/stretch-pghi
相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 合成相由分析相梯度整合而成,通过最大堆积按数量顺序访问相机:不取峰取峰,不取瞬间回升;鸣叫,活字和滑翔等通过构造保持相通.
import pghi from '@audio/stretch-pghi'
pghi(data, { factor: 2 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
frameSize | 2048 | FFT 尺寸( 功率 2) |
hopSize | frameSize/8 | Hop - 梯度集成需要密集帧 |
tolerance | 1e-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
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
frameSize | 2048 | FFT 尺寸( 功率 2) |
hopSize | frameSize/4 | 在相框间跳动 |
transientThreshold | 1.5 | 光谱通量阈值( 较高 = 较少的重排) |
使用时 : 多数音乐的正确默认——打击,混合出处.
不为: 语音/语音——使用 psola. 极限拉伸-使用 paulstretch。 。 。 .
hybrid —— 说 @audio/stretch-hybrid
相和/相和杂交(Driedger & Müller). 中相-过滤器HPS将分光分出分出两层;相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相.
import hybrid from '@audio/stretch-hybrid'
hybrid(data, { factor: 2 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
frameSize | 2048 | 用于 HPSS + 口琴道的 FFT 大小 |
percFrame | 512 | 法律厅打击层框架 |
harmMedian | 17 | 跨时间的中间过滤器(框架) |
percMedian | 17 | 跨频率的中间滤波器(相机) |
使用时 : 完全混合——取出圆筒取出通心材料.
费用: 分离 + 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 })
| 参数 | 默认 | |
|---|---|---|
factor | 8 | 时间拉伸比率(最佳 > 2×) |
frameSize | 4096 | FFT 大小( 较大 = 平滑) |
seed | 0x1f123bb5 | PRNG 种子( 决定输出) |
使用时 : 安徽音乐,音效设计,无人机生成,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 })
| 参数 | 默认 | |
|---|---|---|
factor | 1 | 时间长度比 |
frameSize | 2048 | FFT 帧大小 |
hopSize | frameSize/4 | 在相框间跳动 |
maxTracks | 60 | 最大同时的鼻音轨 |
minMag | 1e-4 | 峰值探测阈值(线性) |
freqDev | 3 | 音轨续作的最大频率偏差( 宾) |
residualMix | 1 | 混入正辛醇-水分配系数 |
使用时 : 谐音/通纳的内容——乐器,和弦,相声——相发音引入抹片. 默认 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 | 特定算法行为的定向诊断 |
演示 用于轻量级浏览器监听矩阵.
另见
- 四进制 ——FFT+STFT内核
- @ audio/ transfer-* - 投球转接家庭
- @ audio/ 过滤器 - 音频过滤器
- 数字过滤器 - 过滤器设计
参考资料
- 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)条.