# @audio/decode-dsd 中文文档

规范地址：https://npmcn.com/package/%40audio/decode-dsd/

版本：1\.0\.0
npm 元数据更新时间：2026-08-29T01:28:00.089Z
中文译文更新时间：2026-11-07T04:28:05.818Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40audio/decode-dsd
原文对照：https://npmcn.com/package/%40audio/decode-dsd/?lang=original
项目主页：https://github.com/audiojs/decode/tree/master/packages/decode-dsd#readme
源码仓库：https://github.com/audiojs/decode

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：30.6 kB，8 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：1 个
- 首次发布：2026-08-29T01:27:59.451Z
- 最新版本发布：2026-08-29T01:27:59.788Z
- 近 30 天下载量：545958（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：1（近 12 个月 1 个）

## 中文简介

解码 DSD (DSF, DFF) 音频到 PCM 样本

## 安装

```sh
npm install @audio/decode-dsd
```

也可以使用：`pnpm add @audio/decode-dsd`、`yarn add @audio/decode-dsd`、`bun add @audio/decode-dsd`

## README

# @ audio/decode-dsd (英语) [![npm](https://img.shields.io/npm/v/@audio/decode-dsd)](https://www.npmjs.com/package/@audio/decode-dsd) [![MIT](https://img.shields.io/badge/MIT-%E0%A5%90-white)](https://github.com/krishnized/license)

解码DSD (DSF, DFF) 音频到PCM浮标样本.

```
npm install @audio/decode-dsd
```

```js
import decode, { decoder } from '@audio/decode-dsd'
```

DSD是一款以2.8224 MHz和上("DSD64","DSD128",". 进入PCM是一个低通+被毁灭:一个Kaiser-windowed-sinc FIR可以去除被推向音频波段上方的噪声形状的分量化噪声,然后保存出每一个Ns样本. 第一个被毁灭的阶段(raw bits → 8× 该速率)直接运行在用每字节检索表的1位流上——塞巴斯蒂安·盖斯曼的经典把戏 [dsd2pcm 时速](https://github.com/sdaau/dsd2pcm) (BSD),同样被ffmpeg's使用 `dsd_lsbf_planar`编号 :`dsd_msbf` 解码器;这是同一想法的独立执行,而不是一个端口. 第二道普通的损毁飞行情报区(在多位浮流上,价格便宜得多)达到44.1/88.2/176.4千赫.

```js
let { channelData, sampleRate } = decode(dsfOrDffBytes)

let dec = decoder({ sampleRate: 88200 })
let head = dec.decode(chunk1)   // synchronous; partial blocks carry over
let tail = dec.flush()
dec.free()
```

两者 `decode()` 财务报告和审定财务报表 `decoder()` 是同步的——没有WASM,没有同步设置.

## 格式

**DSF 数据源** (Sony DSD流文件): `DSD` 编号 :`fmt` 编号 :`data` 块,可达5.1个通道,DSD64/128/256/512样本率,1位LSB第一或MSB第一包装(按 `fmt` 块 `bitsPerSample` 字段,与 [光谱](https://dsd-guide.com/sonys-dsf-file-format-spec) 定义它),数据在固定的4096字节-每道块中互出. 跟踪 ID3v2 标记( 由 `DSD` 块头)通过 `@audio/decode-dsd/meta`。 。 。 .

**DFF 翻译** (哲学DSDIFF): `FRM8`编号 :`FVER`编号 :`PROP` (单位:千美元)`FS`, (中文(简体) ), `CHNL`, (中文(简体) ), `CMPR`页:1`DSD` 块,数据互出字节-每道,总是MSB第一. DST 压缩文件 (`CMPR` =: `'DST '`投掷 `Unsupported: DST` —— DST 是一个单独的无损编码器,而不是生的DSD. 已编辑主块( E)`DIIN`编号 :`DITI`/...)被忽略. 非标准 `ID3` 如果存在,块也可以通过 `@audio/decode-dsd/meta`。 。 。 .

## API 密码

### `decode(src, opts?): AudioData`

解码完整 `Uint8Array` 或者说 `ArrayBuffer`。 。 。 .

### `decoder(opts?): DSDDecoder`

-   `dec.decode(data)`解码一个块。 DSF需要一个完整的 `4096 × channels`\-每个通道的字节块组,然后才能解码任何东西(这是容器本身的间叶单元);DFF只需要一个 `channels`\-字节框.
-   `dec.flush()`: 零- 将一个短的最后块与容器自身的框架大小相匹配(将DSF spec本身的会合部分最后一个块相匹配)并解码——它不会单独排出FIR的组-延迟尾.
-   `dec.free()`: 释放状态. 同上,注:.

| 选项 | 默认 |  |
| --- | --- | --- |
| `sampleRate` | `dsdRate / 32` | 产出率。 必须等于 `dsdRate / 8`, (中文(简体) ), `/16`, (中文(简体) ), `/32`,或 `/64` (DSD64 → 352.8k / 176.4k / 88.2k / 44.1k) ——字节-外观-表相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相. |
| `cutoff` | `0.45` | 传出带边缘,作为输出率的一小部分,用于确定最终率的阶段. |
| `length` | 计算 | 该舞台的FIR水龙头。 更长 = 接近 `stopband` 目标,慢点. |
| `stopband` | `100` | 目标停止波段衰减(dB),用于得到凯瑟β. |

`AudioData` 实值 `{ channelData: Float32Array[], sampleRate: number }`。 。 。 .

DSD的1位±1地图直接到PCM全比例图——没有应用增益变化. SACD材料在DSD的名义"0分贝"中被掌握,相对于PCM全尺寸可以合法地击出+6分贝;这种解码器不会夹住或再正常化,因此这种材料会像其他比特透明的DSD解码器一样精确地从Float32(±1外值)的意义上剪接.

## 数字

-   Bit-domain 第1阶段(固定):192个自来水龙头(96-tap half + 对称,12字节取景表),截取0.45×(dsdRate/8),100个dB目标截取带.
-   第2阶段(按请求构建):从Kaiser公式计算出在请求时真正无名的过渡波段(通过波段边缘到毁灭者自己的镜点)的长度 `stopband`。 。 。 .
-   通过正确合成的5等1位调制解调器测量出(第2个测序测试语气), `test.js`:在44.1k/88.2k/176.4k(需要80dB,在调制器自己的~100+dB理论上限下保守)的波段SNR 114–117 dB——见 `test.js` 以准确的引号发誓.
-   对照 `ffmpeg -i x.dsf -f f32le -ar 88200 -`: 0.000分贝以内1千赫兹音色振幅,相位为1.6°后延迟对接后,持续时间精确.
-   速度:60 s 立体声 DSD64 → 88.2 kHz 解码于 QQ 2.1 s (纯 JS,单核).

## 许可证

[ॐ](https://github.com/krishnized/license/) • 妇女 [麻省理工学院](https://npmcn.com/package/%40audio/decode-dsd/LICENSE)

**使用时 :** 您有原始的DSD/SACD-rip材料(`.dsf`编号 :`.dff`)并需要PCM——回放,格式转换,或喂入常规DSP链. 不是 DST 解码器( DST 压缩 DFF 扔出) 也不是 DSD _编码器_。 。 。 .

* * *

部分 [@ audio/ 代码](https://github.com/audiojs/decode) ——解码出家伞.

麻省理工学院 [音频](https://github.com/audiojs)

## 常见问题

### @audio/decode-dsd 是什么？

解码 DSD \(DSF, DFF\) 音频到 PCM 样本

### 如何安装 @audio/decode-dsd？

在项目目录运行 npm install @audio/decode-dsd，或使用 pnpm add / yarn add / bun add。

### @audio/decode-dsd 支持 TypeScript 吗？

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

### @audio/decode-dsd 支持 ESM 还是 CommonJS？

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

### @audio/decode-dsd 需要什么版本的 Node\.js？

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

### @audio/decode-dsd 可以商用吗？

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

### @audio/decode-dsd 的下载量有多少？

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

### @audio/decode-dsd 还在维护吗？

最新版本 1\.0\.0 发布于 2026/08/29（2 个月前）；至今共发布 1 个版本，其中过去 12 个月发布了 1 个；首次发布于 2026/08/29。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

