@cjblack/expo-audio-stream
Version:
Expo Play Audio Stream module
87 lines • 2.37 kB
TypeScript
export type RecordingEncodingType = 'pcm_32bit' | 'pcm_16bit' | 'pcm_8bit';
export type SampleRate = 16000 | 44100 | 48000;
export type BitDepth = 8 | 16 | 32;
export declare const PlaybackModes: {
readonly REGULAR: "regular";
readonly VOICE_PROCESSING: "voiceProcessing";
readonly CONVERSATION: "conversation";
};
/**
* Defines different playback modes for audio processing
*/
export type PlaybackMode = (typeof PlaybackModes)[keyof typeof PlaybackModes];
/**
* Configuration for audio playback settings
*/
export interface SoundConfig {
/**
* The sample rate for audio playback in Hz
*/
sampleRate?: SampleRate;
/**
* The playback mode (regular, voiceProcessing, or conversation)
*/
playbackMode?: PlaybackMode;
/**
* When true, resets to default configuration regardless of other parameters
*/
useDefault?: boolean;
}
export declare const EncodingTypes: {
readonly PCM_F32LE: "pcm_f32le";
readonly PCM_S16LE: "pcm_s16le";
};
/**
* Defines different encoding formats for audio data
*/
export type Encoding = (typeof EncodingTypes)[keyof typeof EncodingTypes];
export interface StartRecordingResult {
fileUri: string;
mimeType: string;
channels?: number;
bitDepth?: BitDepth;
sampleRate?: SampleRate;
}
export interface AudioDataEvent {
data: string | Float32Array;
data16kHz?: string | Float32Array;
position: number;
fileUri: string;
eventDataSize: number;
totalSize: number;
soundLevel?: number;
}
export interface RecordingConfig {
sampleRate?: SampleRate;
channels?: 1 | 2;
encoding?: RecordingEncodingType;
interval?: number;
enableProcessing?: boolean;
pointsPerSecond?: number;
onAudioStream?: (event: AudioDataEvent) => Promise<void>;
}
export interface Chunk {
text: string;
timestamp: [number, number | null];
}
export interface TranscriberData {
id: string;
isBusy: boolean;
text: string;
startTime: number;
endTime: number;
chunks: Chunk[];
}
export interface AudioRecording {
fileUri: string;
filename: string;
durationMs: number;
size: number;
channels: number;
bitDepth: BitDepth;
sampleRate: SampleRate;
mimeType: string;
transcripts?: TranscriberData[];
wavPCMData?: Float32Array;
}
//# sourceMappingURL=types.d.ts.map