Skip to content

Commit f4642d0

Browse files
committed
voice selection normalization for android
1 parent 209f7ed commit f4642d0

1 file changed

Lines changed: 10 additions & 3 deletions

File tree

wiktionary_pron/scripts/tts.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -364,7 +364,7 @@ class StreamingTTS {
364364
return list
365365
.map((voice) => ({
366366
name: voice.FriendlyName,
367-
lang: voice.Locale,
367+
lang: voice.Locale.replace(/_/g, "-"), // Normalize locale format from en_US to en-US
368368
default: false,
369369
raw: voice,
370370
}))
@@ -543,9 +543,14 @@ function setLanguageAndFindVoice(language) {
543543
try {
544544
if (!voiceSelect) return;
545545

546+
// Normalize language code format (convert en_US to en-US for consistent matching)
547+
const normalizedLanguage = language.replace(/_/g, "-");
548+
546549
// 1. Search the currently active engine first
547550
const currentVoices = activeEngine.voices();
548-
let bestVoice = currentVoices.find((v) => v.lang.startsWith(language));
551+
let bestVoice = currentVoices.find((v) =>
552+
v.lang.replace(/_/g, "-").startsWith(normalizedLanguage),
553+
);
549554

550555
if (bestVoice) {
551556
console.log(
@@ -561,7 +566,9 @@ function setLanguageAndFindVoice(language) {
561566
);
562567
for (const engineName of otherEngineNames) {
563568
const otherEngine = engines[engineName];
564-
bestVoice = otherEngine.voices().find((v) => v.lang.startsWith(language));
569+
bestVoice = otherEngine
570+
.voices()
571+
.find((v) => v.lang.replace(/_/g, "-").startsWith(normalizedLanguage));
565572

566573
if (bestVoice) {
567574
console.log(

0 commit comments

Comments
 (0)