forked from akai/readest
30 lines
876 B
TypeScript
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;
|
|
}
|