# @audio/decode 中文文档

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

版本：4\.2\.0
npm 元数据更新时间：2026-10-17T22:00:31.117Z
中文译文更新时间：2026-11-07T04:24:45.578Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：33 kB，113 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18
- 运行依赖：23 个
- 首次发布：2026-07-08T19:50:17.445Z
- 最新版本发布：2026-10-17T22:00:30.947Z
- 近 30 天下载量：602170（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

在节点或浏览器中解码音频数据

## 安装

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

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

## README

# @ audio/ 代码 [![test](https://github.com/audiojs/decode/actions/workflows/test.js.yml/badge.svg)](https://github.com/audiojs/decode/actions/workflows/test.js.yml)

在浏览器中尝试: [从视频中提取音频](https://audiojs.dev/util/extract-audio/), (中文(简体) ), [音频转换器](https://audiojs.dev/util/convert-audio/)。 。 。 .

将任何音频格式解码为原始样本 .  
JS/WASM没有ffmpeg或原生捆绑;在Node.js和浏览器中工作.  
体积小的API,尺寸最小,性能相近,能懒散地装入,能分解.

[![npm install @audio/decode](https://nodei.co/npm/@audio/decode.png?mini=true)](https://npmjs.org/package/@audio/decode/)

```js
import decode from '@audio/decode';

const { channelData, sampleRate } = await decode(anyAudioBuffer);
```

#### 支持的格式

| 格式 | 软件包 | 大小 | 发动机 |
| --- | --- | --- | --- |
| MP3 主题 | [@ audio/decode-mp3 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mp3) | 92个KB | 刚才 |
| 瓦维 | [@audio/decode-wav (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-wav) | 11个KB | 联合来文 |
| OGG 沃尔比斯 | [@ audio/decode-vorbis (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-vorbis) | 166 KB (英语) | 刚才 |
| 拉丁美洲和加勒比 | [@audio/decode-flac (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-flac) | 135 KB (韩语) | 刚才 |
| 奥普斯 Opus | [@ audio/decode-opus (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-opus) | 166 KB (英语) | 刚才 |
| M4A / AAC / 拉丁美洲和加勒比 | [@ audio/decode-aac](https://npmcn.com/package/%40audio/decode/packages/decode-aac) | 368 KB (英语) | WASM + 联合来文 |
| MP4/MOV/M4V/3GP视频 | [@ audio/decode-mp4 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mp4) | 12 KB + 代码c | 联合来文 |
| 质量保证 | [@audio/decode-qoa (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-qoa) | 8个KB | 联合来文 |
| 森林论坛 | [@ audio/ decode-aiff](https://npmcn.com/package/%40audio/decode/packages/decode-aiff) | 20个KB | 联合来文 |
| 中国足协 | [@audio/decode-caf (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-caf) | 9个KB | 联合来文 |
| WebM / MKV 视频 | [@ audio/decode-webm (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-webm) | 250 KB (英语) | 刚才 |
| AVI 视频 | [@ audio/decode-avi](https://npmcn.com/package/%40audio/decode/packages/decode-avi) | 8个 KB + 代码c | 联合来文 |
| AC-3号 | [@ audio/decode-ac3 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-ac3) | 43个KB | 刚才 |
| 数字 | [@ audio/decode-dts (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-dts) | 200 KB (英语) | 刚才 |
| 电子AC-3(多比数字加号,+AC-3) | [@ audio/ decode-eac3 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-eac3) | 432 KB (英语) | WASM (FFmpeg libavcodec, LGPL) (英语) |
| APE (Monkey 音频) | [@ audio/ decode-ape (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-ape) | 262 KB (韩语) | WASM (FFmpeg libavcodec, LGPL) (英语) |
| AMR (韩语) | [@ audio/decode-amr (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-amr) | 241 KB (韩语) | 刚才 |
| GSM 06.10 (画框,按名称) | [@ audio/decode-gsm (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-gsm) | 23个KB | WASM (libgsm) (英语) |
| WMA (v1, v2, Pro, 无损失) | [@ audio/decode-wma (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-wma) | 463个KB | WASM (FFmpeg libavcodec, LGPL) (英语) |
| 自动包 | [@audio/decode-wavpack (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-wavpack) | 51个KB | 刚才 |
| TTA (真声) | [@audio/decode-tta (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-tta) | 11个KB | 联合来文 |
| Musepack SV7 / SV8 请检查url=值 (帮助) | [@ audio/decode-mpc (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mpc) | 51个KB | 刚才 |
| MOD / XM / S3M / IT 跟踪模块 | [@ audio/decode-mod (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mod) | 1.4 甲基溴 | WASM (libopenmpt) (英语) |
| DSF / DFF (DSD64–512 — PCM) (中文(简体) ) | [@ audio/decode-dsd (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-dsd) | 18个KB | 联合来文 |

### 整个文件

自动检测格式. 输入可以是 _矩阵缓冲_, (中文(简体) ), _Uint8 阵列_, (中文(简体) ), _缓冲_,或任何东西 实现到字节,包括 _块_编号 :_文件_ 或获取 _回应_。 。 。 .

```js
import decode from '@audio/decode'

let { channelData, sampleRate } = await decode(buf)
let fromFile = await decode(fileInput.files[0])   // File
let fromUrl  = await decode(await fetch(url))      // Response
```

### 被截断

```js
let dec = await decode.mp3()
let a = await dec(chunk1)    // { channelData, sampleRate }
let b = await dec(chunk2)
await dec()                  // close
```

### 流线

```js
import decode from '@audio/decode'

for await (let { channelData, sampleRate } of decode.mp3(response.body)) {
  // process chunks
}
```

与 `ReadableStream`, (中文(简体) ), `fetch` 身体 节点流 或任何可同步的.

格式 : `mp3`, (中文(简体) ), `flac`, (中文(简体) ), `opus`, (中文(简体) ), `oga`, (中文(简体) ), `m4a`, (中文(简体) ), `mp4`, (中文(简体) ), `mov`, (中文(简体) ), `wav`, (中文(简体) ), `qoa`, (中文(简体) ), `aac`, (中文(简体) ), `aiff`, (中文(简体) ), `caf`, (中文(简体) ), `webm`, (中文(简体) ), `mkv`, (中文(简体) ), `avi`, (中文(简体) ), `ac3`, (中文(简体) ), `dts`, (中文(简体) ), `amr`, (中文(简体) ), `gsm`, (中文(简体) ), `wma`, (中文(简体) ), `eac3`, (中文(简体) ), `ape`, (中文(简体) ), `wv`, (中文(简体) ), `tta`, (中文(简体) ), `mpc`, (中文(简体) ), `dsf`, (中文(简体) ), `dff`, (中文(简体) ), `mod`, (中文(简体) ), `xm`, (中文(简体) ), `s3m`, (中文(简体) ), `it`。 。 。 .

### 视频文件

视频容器直接解码到他们的音频轨道——视频流被跳过,不涉及ffmpeg:

```js
let { channelData, sampleRate } = await decode(await fetch('trailer.mp4'))
```

| 集装箱 | 软件包 | 音频解码器 |
| --- | --- | --- |
| MP4、MOV、M4V、3GP | [@ audio/decode-mp4 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mp4) | AAC、ALAC、MP3、FLAC、Opus、AC-3、DTS、AMR、PCM、G.711 |
| 网络M, MKV | [@ audio/decode-webm (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-webm) | Opus、Vorbis、AAC、ALAC、MP3、FLAC、AC-3、DTS、PCM |
| AVI 语句 | [@ audio/decode-avi](https://npmcn.com/package/%40audio/decode/packages/decode-avi) | PCM、MP3、AAC、AC-3、DTS、G.711 |

绕行道保持其布局(最高可达5.1,WAV频道顺序). E-AC-3和TrueHD轨道抛出一个给解码器命名的错误.

### 浏览器

在没有捆绑的CDN工作. 解码器通过动态导入按需加载, 只用于格式解码 :

```html
<script type="module">
  import decode from 'https://esm.sh/@audio/decode'
  let { channelData, sampleRate } = await decode(buf)
</script>
```

对于自宿,请使用导入地图指向 `@audio/decode` 每个需要 `@audio/decode-*` 软件包到本地文件。 通过相对路径加载编码-内部文件.

每个编码包的主要导出工作在一个 `AudioWorklet` 无 `Blob`, (中文(简体) ), `TextDecoder`, (中文(简体) ), `Worker`,或 `fetch`。直接导入编码包是因为 `@audio/decode` 使用动态导入.

在渲染前初始化 WASM 。 解码会运行在工作网线上,并可中断音频输出.

### 同步编码器

保护伞仍用于探测、懒惰进口和 `Blob`编号 :`Response` 投入. 为同步调用直接导入一个编码包.

`wav`, (中文(简体) ), `qoa`, (中文(简体) ), `aiff`,以及 `caf` 是同步的 :

```js
import decode from '@audio/decode-wav'
let pcm = decode(wavBytes)
```

WASM 编码器同步初始化,然后同步解码:

```js
import { decoder } from '@audio/decode-flac'
let dec = await decoder()
let pcm = dec.decode(bytes)
let tail = dec.flush()
dec.free()
```

### 元数据

读取标签,图片,标记和地区而不解码样本. 备查 `wav`, (中文(简体) ), `mp3`, (中文(简体) ), `flac`, (中文(简体) ), `oga` (Ogg Vorbis), (英语:, `opus`,以及 `m4a`。 。 。 .

```js
import { wav, mp3, flac, oga, opus, m4a } from '@audio/decode/meta'

let { meta, sampleRate, markers, regions } = mp3(bytes)
// meta: { title, artist, album, year, bpm, key, comment, pictures, raw, ... }
// markers: [{ sample, label }]
// regions: [{ sample, length, label }]
```

每个编码子包也直接暴露出它的解析器:

```js
import { parseMeta } from '@audio/decode-wav/meta'
let info = parseMeta(wavBytes)
```

### 网络工人

每个 `@audio/decode-*` 软件包是一个自成一体的无害环境管理模块,可在工人中运行:

```js
// decode-worker.js
import decode from '@audio/decode-mp3'

self.onmessage = async ({ data }) => {
  let pcm = await decode(data)
  self.postMessage(pcm, pcm.channelData.map(ch => ch.buffer))
}

// main.js
let worker = new Worker('./decode-worker.js', { type: 'module' })
worker.postMessage(mp3buf, [mp3buf])
worker.onmessage = ({ data }) => { /* { channelData, sampleRate } */ }
```

## 另见

-   [音频](https://github.com/audiojs/audio) – 编辑,测量并保存:修剪,发声到分光,快递检查,一个CLI.
-   [编码](https://github.com/audiojs/encode) – 将PCM编码为任何音频格式.
-   [音频类型](https://github.com/audiojs/audio-type) – 从缓冲器中检测音频格式.

## 许可证发放

伞和大多数编码包是MIT. 以其他图书馆为基础的编解码器携带该图书馆的执照: [@ audio/decode-aac](https://npmcn.com/package/%40audio/decode/packages/decode-aac) GPL-2.0; (中文(简体) ); [@ audio/decode-ac3 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-ac3) 财务报告和审定财务报表 [@ audio/decode-dts (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-dts) GPL-2.0-或-后; [@ audio/ decode-ape (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-ape), (中文(简体) ), [@ audio/ decode-eac3 (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-eac3) 财务报告和审定财务报表 [@ audio/decode-wma (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-wma) LGPL-2.1-或-后期(一个瘦小的FFmpeg libavcodec构建,没有GPL组件); [@audio/decode-wavpack (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-wavpack), (中文(简体) ), [@ audio/decode-mpc (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mpc) 财务报告和审定财务报表 [@ audio/decode-mod (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-mod) (一) BSD-3-吊灯; [@ audio/decode-amr (英语)](https://npmcn.com/package/%40audio/decode/packages/decode-amr) 阿帕奇2.0 (英语). 只安装符合您的工程的密码 。 雨伞按要求载出.

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

## 常见问题

### @audio/decode 是什么？

在节点或浏览器中解码音频数据

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

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

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

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

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

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

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

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

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

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

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

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

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

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

