@ audiowave/ 核心
音频Wave的核心音频处理设施和类型.
特征
- 单步处理: 可视化数据转换的直接缓冲
- 多格式支持: 8, 16, 24, 32位有多频道支持的音频
- 类型安全: 综合类型脚本类型定义
- 平台不可知论: 使用任何音频数据源(Electron、Node.js、Web)的工作
- 无依赖: 重量轻而无外部依赖性
- 业绩优化: 处理步骤比传统办法少67%
安装
npm install @audiowave/core
使用量
多格式支持的音频处理
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();
无国籍音频处理
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);
直接缓冲转换
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, ...]
自定义音频数据提供者
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 */ };
}
};
工具函数
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- 音频处理常数
许可证
麻省理工学院