feat(tts): select voice by detected/system language per utterance

This commit is contained in:
Gigi
2025-10-20 22:55:15 +02:00
parent 831f701c04
commit fc138f3ceb

View File

@@ -152,11 +152,17 @@ export function useTextToSpeech(options: UseTTSOptions = {}): UseTTS {
charIndexRef.current = 0
const u = createUtterance(text)
if (langOverride) u.lang = langOverride
if (langOverride) {
u.lang = langOverride
// try to pick a voice that matches the override
const available = voices
const match = available.find(v => v.lang?.toLowerCase().startsWith(langOverride.toLowerCase()))
if (match) u.voice = match
}
utteranceRef.current = u
synth!.speak(u)
}, [supported, synth, createUtterance, rate])
}, [supported, synth, createUtterance, rate, voices])
const pause = useCallback(() => {
if (!supported) return