@descript/kali

中文文档
0.0.7发布于 2021/10/05LGPLTypeScriptESM + CJS零依赖近 30 天下载 1.5万

Kali在Javascript中用于实时时间拉伸和投出移位. 它可以独立地改变Tempo和Pitch.

中文使用文档
文档目录8 节
  1. 演示
  2. 开始
  3. 基本用途
  4. 文档
  5. 效率
  6. 运行示例
  7. 大楼
  8. 许可证

卡丽

Kali在Javascript中用于实时时间拉伸和投出移位. 它可以独立地改变Tempo和Pitch.

来自维基百科:

时间拉伸是改变音频信号的速度或持续时间而不影响其发音的过程. 皮奇缩放或投出相变则相反:改变投出过程而不影响速度. 类似的方法可以同时以时间变化的方式改变速度,投出,或者两者兼而有之.

Kali 使用类似 WSOLA 的算法在浏览器中进行高质量的时间拉伸

演示

尝试演示 这里。 。 。 .

开始

找卡莉来 页 次。 。 。 .

卡利将很快发布给npm.

基本用途

创建新实例

var kali = new Kali(numChannels);

设定时间拉伸的参数 。 设置 useQuickSearch 以某种质量为代价加速处理。 默认为虚构. 在许多情况下,这种区别并不明显,因此,如果需要更多的业绩,就尽量将其变为真实.

kali.setup(sampleRate, stretchFactor, useQuickSearch);

给Kali提供一些数据 并告诉它处理. dataToInput 应该是由相接样品组成的浮图32.

kali.input(dataToInput);
kali.process();

读取数据到目标数组 . targetArray 应该是一个浮图32箭头.

var samplesRead = kali.output(targetArray);

完成输入数据后,告诉卡利冲出它的缓冲并继续读取数据.

kali.flush();

就这样! 见 Test.ts 在示例文件夹中提供完整的使用示例.

如果你想在拉伸时改变节奏,你可以打电话 setTempo (带有新的拉伸因子)在输入数据时. 这将让你在节奏间顺利地改变。 见 Test.ts 举个例子.

文档

完整文件见 https://kali.readme.io/docs. 互联网档案馆的存檔,存档日期2013-12-22

效率

通过使用TypedArrays和对TypedArrays的视图,Kali的运行非常高效. 说到这里,这是早期的发布,而且表现还没有被尽可能地优化. 拉请求是欢迎的!

运行示例

  • 克隆或下载此仓库
  • 设置一个名为 mp3 文件 test.mp3 输入 build/examples 目录
  • 在目录中启动服务器
    • python -m SimpleHTTPServer
  • 打开浏览器并导航到测试页面
    • 譬如说. http://localhost:8000/test.html

开发者控制台将显示文件被拉伸的进展. 一旦拉伸完成,减速版将开始播放. 这个例子将一首歌曲减慢了4%(因此一首125 bpm的歌曲会减慢到120 bpm).

要更改此选项( 或关于示例的其他事项) , 编辑 Test.ts 输入 examples 目录和构建如下所示.

大楼

npm install

// build examples
webpack --config webpack.config.test.js

// build Kali
webpack

// build minified Kali
webpack -p

许可证

LGPL 语言

Kali是基于来自 声音触摸 财务报告和审定财务报表 双曲两者都是LGPL. 因此,凯利也是LGPL

版本与发布记录

@descript/kali 共发布 6 个版本,首次发布于 2019/10/28;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.0.7latest2021/10/055 年前
0.0.62021/03/055 年前
0.0.52021/02/135 年前
0.0.42020/04/016 年前
0.0.32019/10/297 年前
0.0.22019/10/287 年前

关于 @descript/kali 的常见问题

@descript/kali 是什么?

Kali在Javascript中用于实时时间拉伸和投出移位. 它可以独立地改变Tempo和Pitch.

如何安装 @descript/kali?

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

@descript/kali 支持 TypeScript 吗?

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

@descript/kali 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@descript/kali 需要什么版本的 Node.js?

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

@descript/kali 可以商用吗?

@descript/kali 使用 LGPL 许可。声明的许可为 LGPL,请阅读许可原文确认使用条件。以上为概括,不构成法律意见,请以许可原文为准。

@descript/kali 的下载量有多少?

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

@descript/kali 还在维护吗?

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