@pompeii-labs/audio
Version:
The Audio SDK from Pompeii Labs
45 lines (34 loc) • 1.92 kB
TypeScript
import { P as PCMData, A as AudioFormat$1 } from './index-o4B-ThOL.js';
export { a as AudioEncoding } from './index-o4B-ThOL.js';
/**
* Decodes a WAV audio file from raw bytes into PCM (Pulse-Code Modulation) data.
* WAV files consist of a header followed by chunks of data. The main chunks are:
* - 'RIFF' chunk: Contains the file identifier and size
* - 'fmt ' chunk: Contains format information (sample rate, channels, etc.)
* - 'data' chunk: Contains the actual audio samples
*
* @param bytes - Raw bytes of the WAV file as a Uint8Array
* @returns PCMData object containing decoded audio data, or null if the file is not a valid WAV
*/
declare function decodeWAV(bytes: Uint8Array): PCMData | null;
interface PCMFormat {
bitDepth: 8 | 16 | 24 | 32;
signed: boolean;
littleEndian: boolean;
float: boolean;
}
declare function mulawToPcm16(mulawData: Buffer): Int16Array;
declare function pcm16ToMulaw(pcmData: Int16Array): Uint8Array;
declare function bufferToInt16Array(buffer: Buffer): Int16Array;
declare function encodePcm(audio: Int16Array, encoding: AudioFormat$1['encoding']): Buffer;
declare function decodeToPcm(audio: Buffer, encoding: AudioFormat$1['encoding']): Int16Array;
interface AudioFormat {
format: string;
mimeType: string;
description: string;
}
declare function identifyAudioFormat(bytes: Uint8Array): AudioFormat | null;
declare function generateFadeOutSamples(lastSampleValue: number, fadeDurationMs: number, sampleRate: number): Uint8Array;
declare function int16ArrayToBuffer(int16Array: Int16Array): Buffer;
declare function resamplePcm(pcm: Int16Array, originalSampleRate: number, targetSampleRate: number): Int16Array;
export { AudioFormat$1 as AudioFormat, PCMData, type PCMFormat, bufferToInt16Array, decodeToPcm, decodeWAV, encodePcm, generateFadeOutSamples, identifyAudioFormat, int16ArrayToBuffer, mulawToPcm16, pcm16ToMulaw, resamplePcm };