@audio/tune-snap

中文文档
2.0.2发布于 2026/10/12MITTypeScriptES Module近 30 天下载 2319

Pitch修正为比例:每个音符的中心移动到它的音符上,它的缓慢漂移平了,声音的自相周期沿着一个音符曲线(Auto-Tune / Melodyne class)重新排列

中文使用文档

@ audio/tune-snap (英语) npm MIT

Pitch修正为比例:每个音符的中心移动到它的音符上,它的缓慢漂移平了,声音的自相周期沿着一个音符曲线(Auto-Tune / Melodyne class)重新排列

npm install @audio/tune-snap
import snap from '@audio/tune-snap'

snap(voice, { fs })                                  // chromatic, natural: centres on their notes, vibrato kept
snap(voice, { fs, scale: 'major', root: 2 })         // to D major
snap(voice, { fs, speed: 0 })                        // every moment on its note: the hard, stepped sound
snap(voice, { fs, strength: .5 })                    // half way there
snap([left, right], { fs })                          // a stereo voice, on one pitch and one set of cycles

声音的发音为pYIN的维特比道(Mauch & Dixon,ICASSP 2014),每5 ms. 音符每分一秒都意味着比标音符上的维特比道:一个相框的平方相距与音符相去甚远,一个相位相去40毫秒的音符变化,所以一个相位相去甚远的振动会从两个相框的音符停留在音符上到相位相去相去相去相去相去相去相去相去相去相去. 每张音符的中心,中间半个中位数,被移动到其音符上;其投出部分比 speed (drift, a holding note slaging) 被取走并保存了更快的部分(vibrato,一个勺子,一个幻灯片). 在音符之间,转动跨越了上升的余弦,在它们之间的间隙内,或者 speed 长相跨出一长步来 然后声音的自发光滑循环沿着这个曲线被重新间隔,发现在同一个发球上(相接的发音)@audio/tune-curve,TD-PSOLA: 成形剂,相容和呼吸保存.

没有任何东西被切出, 分开, 并交叉调回 在干燥的声音上, 所以没有音符进出 与跳跃的投出 或被两个投出取消。 未发音的音频按原样通过;已经发音的音符被留作唱出,并发出所有发音的取出样本作为样本.

options默认
fs44100赫兹(sampleRate 也读取)
scale'chromatic''major', (中文(简体) ), 'minor', (中文(简体) ), 'harmonic-minor', (中文(简体) ), 'melodic-minor', (中文(简体) ), 'pentatonic-major', (中文(简体) ), 'pentatonic-minor', (中文(简体) ), 'blues', (中文(简体) ), 'dorian', (中文(简体) ), 'mixolydian', (中文(简体) ), 'whole',或根上方的半音度
root0c以上半个子(2个是D,9个是A)
a4440Hz, 调音 A4
strength1多少更正被应用:1个全,5个半路,0个零
speed80ms:音符内动作有多慢,必须改正. 0 设置每分每秒的音符; 20 保持了 4 % 的 5.5 Hz vibrato , 50 保持了 80% , 80 保持了 90% 的音符并带走了漂移; 400 移动音符的中心 单
tolerance8分寸:其中心及其运动慢于 speed,保持这个接近它的音符 留下作为歌曲
minFreq, (中文(简体) ), maxFreq60, (中文(简体) ), 1000赫兹,那个投出

pitchOf(channels, opts) 财务报告和审定财务报表 correction(midi, opts) 是重调前的两半音: 发音为每5 ms (MIDI, NaN unvoiced), 和调音的半音的调值 .

计量

8位独唱歌手 沃卡迪多语Name (轨道1,5,10,14,20,27,33,38:158 s,2021,CC BY 4.0) 色相. 一个音符的投出是改正后的声音的pYIN投出中位数,在每注音为150毫秒或以上的中位数上;周期为将1个音符减去30毫秒以上的YIN最不正常化的差数后,其损失计算在唱出的声音超过0.8分时.

半圆10分之内的音符平均距离周期丢失, 1% 最差帧每秒的音频时间
作为歌曲26%23.7分钱
snap 1 (PSOLA,相接于干地)64% (%)10.4分钱0.17 (中文(简体) )97分钟
speed: 8071%8.4分钱0.07 (单位:千美元)19分钟
speed: 096%2.6分钱0.17(说明之间的步骤)19分钟

在从A3 30分尖锐到C#4 40分平平平80分的合成语音滑行上,滑行将水平保持在1.2分贝以内,移动速度不快于被唱出;调音-snap 1将3.2分贝降下,其转动的音符会穿越回干燥的滑行中,YIN发现那里没有出期.

使用时 : 单声道,唱出或演奏在单声道乐器上,调取到比例:自然修正或硬调效果.
不为: 和弦,混音,合唱团(一发一发);再调整为一发作的旋律,使用 @audio/tune-midi。 。 。 .


部分 @ audio/ tun曲调家庭伞.

麻省理工学院 音频

版本与发布记录

@audio/tune-snap 共发布 8 个版本,首次发布于 2026/07/09;过去 12 个月发布了 8 个版本。

版本发布日期距今
2.0.2latest2026/10/1226 天前
2.0.12026/10/1127 天前
2.0.02026/10/041 个月前
1.1.32026/07/113 个月前
1.1.22026/07/113 个月前
1.1.12026/07/103 个月前

关于 @audio/tune-snap 的常见问题

@audio/tune-snap 是什么?

Pitch修正为比例:每个音符的中心移动到它的音符上,它的缓慢漂移平了,声音的自相周期沿着一个音符曲线(Auto-Tune / Melodyne class)重新排列

如何安装 @audio/tune-snap?

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

@audio/tune-snap 支持 TypeScript 吗?

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

@audio/tune-snap 支持 ESM 还是 CommonJS?

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

@audio/tune-snap 需要什么版本的 Node.js?

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

@audio/tune-snap 可以商用吗?

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

@audio/tune-snap 的下载量有多少?

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

@audio/tune-snap 还在维护吗?

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