Files
readest/apps/readest-app/src/services/tts/TTSClient.ts
T
2025-06-12 17:56:14 +02:00

30 lines
876 B
TypeScript

import { TTSGranularity, TTSVoice, TTSVoicesGroup } from './types';
type TTSMessageCode = 'boundary' | 'error' | 'end';
export interface TTSMessageEvent {
code: TTSMessageCode;
message?: string;
mark?: string;
}
export interface TTSClient {
name: string;
initialized: boolean;
init(): Promise<boolean>;
shutdown(): Promise<void>;
speak(ssml: string, signal: AbortSignal, preload?: boolean): AsyncIterable<TTSMessageEvent>;
pause(): Promise<boolean>;
resume(): Promise<boolean>;
stop(): Promise<void>;
setPrimaryLang(lang: string): void;
setRate(rate: number): Promise<void>;
setPitch(pitch: number): Promise<void>;
setVoice(voice: string): Promise<void>;
getAllVoices(): Promise<TTSVoice[]>;
getVoices(lang: string): Promise<TTSVoicesGroup[]>;
getGranularities(): TTSGranularity[];
getVoiceId(): string;
getSpeakingLang(): string;
}