File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 (
You can’t perform that action at this time.
0 commit comments