js-tts-wrapper
Version:
A JavaScript/TypeScript library that provides a unified API for working with multiple cloud-based Text-to-Speech (TTS) services
56 lines (55 loc) • 1.88 kB
TypeScript
import { AbstractTTSClient } from "../core/abstract-tts";
import type { SpeakOptions, TTSCredentials, UnifiedVoice } from "../types";
export interface DeepgramTTSOptions extends SpeakOptions {
model?: string;
voice?: string;
format?: "mp3" | "wav" | "ogg" | "opus" | "aac" | "flac" | "pcm";
outputDir?: string;
outputFile?: string;
returnWordBoundaries?: boolean;
onEnd?: () => void;
providerOptions?: Record<string, unknown>;
}
export interface DeepgramTTSCredentials extends TTSCredentials {
apiKey?: string;
baseURL?: string;
model?: string;
properties?: Record<string, unknown> | string;
propertiesJson?: string;
}
export declare class DeepgramTTSClient extends AbstractTTSClient {
private apiKey;
private baseUrl;
private model;
static readonly VOICES: ({
id: string;
name: string;
gender: "Female";
language: string;
} | {
id: string;
name: string;
gender: "Male";
language: string;
})[];
constructor(credentials?: DeepgramTTSCredentials);
private applyCredentialProperties;
private prepareText;
setModel(model: string): void;
setVoice(voiceId: string): void;
getProperty(property: string): any;
setProperty(property: string, value: any): void;
checkCredentials(): Promise<boolean>;
protected getRequiredCredentials(): string[];
protected _getVoices(): Promise<any[]>;
protected _mapVoicesToUnified(rawVoices: any[]): Promise<UnifiedVoice[]>;
synthToBytes(text: string, options?: DeepgramTTSOptions): Promise<Uint8Array>;
synthToBytestream(text: string, options?: DeepgramTTSOptions): Promise<{
audioStream: ReadableStream<Uint8Array>;
wordBoundaries: Array<{
text: string;
offset: number;
duration: number;
}>;
}>;
}