js-tts-wrapper
Version:
A JavaScript/TypeScript library that provides a unified API for working with multiple cloud-based Text-to-Speech (TTS) services
65 lines (64 loc) • 2.05 kB
TypeScript
/**
* Audio format conversion utilities
* Provides conversion between different audio formats (WAV, MP3, OGG)
*/
/**
* Supported audio formats for conversion
*/
export type AudioFormat = "wav" | "mp3" | "ogg";
/**
* Audio conversion options
*/
export interface AudioConversionOptions {
/** Target sample rate (default: preserve original) */
sampleRate?: number;
/** Target bit rate for compressed formats like MP3 (default: 128kbps) */
bitRate?: number;
/** Audio quality (0-9 for OGG, 0-320 for MP3) */
quality?: number;
}
/**
* Result of audio conversion
*/
export interface AudioConversionResult {
/** Converted audio data */
audioBytes: Uint8Array;
/** Target format */
format: AudioFormat;
/** MIME type of the converted audio */
mimeType: string;
}
/**
* Check if audio conversion is available in the current environment
*
* Audio format conversion is currently only supported in Node.js environments
* due to the need for external tools like ffmpeg or native Node.js modules.
*
* In browser environments:
* - Engines return their native format without conversion
* - WebSpeech API engines use browser's native audio capabilities
* - Format requests are honored only when engines natively support them
*/
export declare function isAudioConversionAvailable(): boolean;
/**
* Get MIME type for audio format
*/
export declare function getMimeTypeForFormat(format: AudioFormat): string;
/**
* Extract WAV audio parameters from WAV file header
*/
export declare function extractWavParameters(wavBytes: Uint8Array): {
sampleRate: number;
channels: number;
bitsPerSample: number;
dataOffset: number;
dataSize: number;
} | null;
/**
* Convert audio between formats using available Node.js tools
*/
export declare function convertAudioFormat(inputBytes: Uint8Array, targetFormat: AudioFormat, options?: AudioConversionOptions): Promise<AudioConversionResult>;
/**
* Check if ffmpeg is available
*/
export declare function isFFmpegAvailable(): Promise<boolean>;