UNPKG

aixblock-voice-ai-deepgram

Version:

A React component for real-time transcription and voice agent interactions using Deepgram APIs

45 lines (44 loc) 2.09 kB
/** * Audio processing utilities for smooth real-time audio playback */ /** * Creates an AudioBuffer from raw Linear16 PCM data * @param audioContext The Web Audio API AudioContext * @param data ArrayBuffer containing Linear16 PCM audio data * @param sampleRate Sample rate of the audio data (default: 24000Hz) * @returns AudioBuffer ready for playback */ export declare function createAudioBuffer(audioContext: AudioContext, data: ArrayBuffer, sampleRate?: number): AudioBuffer | undefined; /** * Plays an AudioBuffer with precise timing to ensure continuous playback * @param audioContext The Web Audio API AudioContext * @param buffer AudioBuffer to play * @param startTimeRef Reference to the start time (to maintain continuity between chunks) * @param analyzer Optional AudioAnalyser node for volume analysis * @returns AudioBufferSourceNode that's playing the buffer */ export declare function playAudioBuffer(audioContext: AudioContext, buffer: AudioBuffer, startTimeRef: { current: number; }, analyzer?: AnalyserNode): AudioBufferSourceNode; /** * Downsamples audio data from one sample rate to another * @param buffer Float32Array of audio samples * @param fromSampleRate Original sample rate * @param toSampleRate Target sample rate * @returns Downsampled Float32Array */ export declare function downsample(buffer: Float32Array, fromSampleRate: number, toSampleRate: number): Float32Array; /** * Converts Float32Array audio data to Int16Array format * @param buffer Float32Array of audio samples * @returns ArrayBuffer containing Int16 audio data */ export declare function convertFloat32ToInt16(buffer: Float32Array): ArrayBuffer; /** * Normalizes audio volume using frequency data from an analyzer * @param analyzer AudioAnalyser node * @param dataArray Uint8Array to store analyzer data * @param normalizationFactor Factor to normalize against (higher = quieter) * @returns Normalized volume level between 0-1 */ export declare function normalizeVolume(analyzer: AnalyserNode, dataArray: Uint8Array, normalizationFactor: number): number;