# @audiowave/core 中文文档

规范地址：https://npmcn.com/package/%40audiowave/core/

版本：0\.3\.1
npm 元数据更新时间：2025-10-31T07:23:29.865Z
中文译文更新时间：2026-11-07T04:36:18.036Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40audiowave/core
原文对照：https://npmcn.com/package/%40audiowave/core/?lang=original

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

- 包体积（解压后）：50.1 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2025-08-01T15:19:26.005Z
- 最新版本发布：2025-10-31T07:23:29.634Z
- 近 30 天下载量：783595（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：3（近 12 个月 0 个）

## 中文简介

音频Wave的核心音频处理设施和接口

## 安装

```sh
npm install @audiowave/core
```

也可以使用：`pnpm add @audiowave/core`、`yarn add @audiowave/core`、`bun add @audiowave/core`

## README

# @ audiowave/ 核心

音频Wave的核心音频处理设施和类型.

## 特征

-   **单步处理**: 可视化数据转换的直接缓冲
-   **多格式支持**: 8, 16, 24, 32位有多频道支持的音频
-   **类型安全**: 综合类型脚本类型定义
-   **平台不可知论**: 使用任何音频数据源(Electron、Node.js、Web)的工作
-   **无依赖**: 重量轻而无外部依赖性
-   **业绩优化**: 处理步骤比传统办法少67%

## 安装

```bash
npm install @audiowave/core
```

## 使用量

### 多格式支持的音频处理

```typescript
import { AudioProcessor } from '@audiowave/core';

// Create configuration with audio format specification
const processor = new AudioProcessor({
  bufferSize: 1024,
  skipInitialFrames: 2,        // Skip first 2 frames to avoid initialization noise
  inputBitsPerSample: 16,      // 8, 16, 24, or 32-bit audio
  inputChannels: 2,            // Stereo input (will be mixed to mono for visualization)
});

// Process Buffer data (from Electron, Node.js audio capture)
const audioPacket = processor.process(audioBuffer);
if (audioPacket) {
  // timeDomainData is ready for visualization (Uint8Array)
  console.log('Processed audio data:', audioPacket.timeDomainData);
}

// Process Float32Array data (from Web Audio API)
const webAudioPacket = processor.process(float32AudioData);

// Reset when starting new stream
processor.reset();
```

### 无国籍音频处理

```typescript
import { process } from '@audiowave/core';

// For simple processing without skip frames
const config = {
  bufferSize: 1024,
  inputBitsPerSample: 32,  // Specify input format
  inputChannels: 1,        // Mono input
};

const audioPacket = process(rawAudioData, config);
```

### 直接缓冲转换

```typescript
import { convertBufferToWaveData } from '@audiowave/core';

// Convert audio buffer directly to visualization data
const waveData = convertBufferToWaveData(
  audioBuffer,    // Buffer from audio source
  16,            // 16-bit audio
  2,             // Stereo
  1024           // Target visualization size
);

// waveData is Uint8Array ready for visualization
console.log('Wave data:', waveData); // [128, 145, 112, ...]
```

### 自定义音频数据提供者

```typescript
import type { AudioDataProvider } from '@audiowave/core';

const myProvider: AudioDataProvider = {
  setupStream: async (config) => {
    // Your setup logic
  },
  onData: (callback) => {
    // Your data subscription logic
    return () => { /* cleanup */ };
  },
  onError: (callback) => {
    // Optional error handling
    return () => { /* cleanup */ };
  }
};
```

### 工具函数

```typescript
import { 
  isPowerOfTwo, 
  getNearestPowerOfTwo, 
  isValidAudioBuffer,
  validateAudioConfig 
} from '@audiowave/core';

// Check if buffer size is optimal for FFT
console.log(isPowerOfTwo(1024)); // true

// Get nearest power of 2
console.log(getNearestPowerOfTwo(1000)); // 1024

// Validate buffer format
console.log(isValidAudioBuffer(buffer)); // true/false

// Validate configuration
console.log(validateAudioConfig(config)); // true/false
```

## API 参考

### 类型

-   `AudioConfig` - 音频处理配置
-   `AudioDataProvider` - 音频数据源接口
-   `AudioDataPacket` - 处理的音频数据
-   `AudioDataInput` - 原始音频数据输入类型
-   `AudioDeviceInfo` - 音频设备信息

### 类

-   `AudioProcessor` - 带有跳过帧支持的状态音频处理器
    -   `process(rawData)` - 用跳过框处理音频
    -   `reset()` - 重置帧计数器
    -   `updateConfig(config)` - 更新配置

### 职能

-   `process()` - 无国籍音频处理
-   `convertBufferToWaveData()` - 直接缓冲可视化数据转换
-   `validateAudioConfig()` - 配置验证

### 常数

-   `DEFAULT_AUDIO_CONFIG` - 默认配置值
-   `COMMON_BUFFER_SIZES` - 常见的缓冲大小阵列
-   `AUDIO_CONSTANTS` - 音频处理常数

## 许可证

麻省理工学院

## 常见问题

### @audiowave/core 是什么？

音频Wave的核心音频处理设施和接口

### 如何安装 @audiowave/core？

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

### @audiowave/core 支持 TypeScript 吗？

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

### @audiowave/core 支持 ESM 还是 CommonJS？

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

### @audiowave/core 可以商用吗？

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

### @audiowave/core 的下载量有多少？

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

### @audiowave/core 还在维护吗？

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

