Files
readest/apps/readest-app/src/services/tts/TTSUtils.ts
T

28 lines
1.0 KiB
TypeScript

export class TTSUtils {
private static readonly LOCAL_STORAGE_KEY = 'ttsPreferredVoices';
private static normalizeLanguage(language: string): string {
if (!language) return 'n/a';
return language.toLowerCase().slice(0, 2);
}
static setPreferredVoice(engine: string, language: string, voiceId: string): void {
if (!engine || !language || !voiceId) return;
const preferences = this.getPreferences();
const lang = this.normalizeLanguage(language);
preferences[`${engine}-${lang}`] = voiceId;
localStorage.setItem(this.LOCAL_STORAGE_KEY, JSON.stringify(preferences));
}
static getPreferredVoice(engine: string, language: string): string | null {
const preferences = this.getPreferences();
const lang = this.normalizeLanguage(language);
return preferences[`${engine}-${lang}`] || null;
}
private static getPreferences(): Record<string, string> {
const storedPreferences = localStorage.getItem(this.LOCAL_STORAGE_KEY);
return storedPreferences ? JSON.parse(storedPreferences) : {};
}
}