tts: convert iso6392 language code to iso6391 to filter tts voices, closes #1627 (#1639)

This commit is contained in:
Huang Xin
2025-07-21 04:10:14 +08:00
committed by GitHub
parent 0299cce343
commit dbe1efd1e9
4 changed files with 8 additions and 7 deletions
+3 -1
View File
@@ -1,5 +1,5 @@
import { TTSMark } from '@/services/tts/types';
import { inferLangFromScript, isSameLang, isValidLang } from './lang';
import { code6392to6391, inferLangFromScript, isSameLang, isValidLang } from './lang';
const cleanTextContent = (text: string) =>
text.replace(/\r\n/g, ' ').replace(/\r/g, ' ').replace(/\n/g, ' ').trimStart();
@@ -27,10 +27,12 @@ export const parseSSMLLang = (ssml: string, primaryLang?: string): string => {
? `${parts[0]!.toLowerCase()}-${parts[1]!.toUpperCase()}`
: parts[0]!.toLowerCase();
lang = code6392to6391(lang) || lang;
if (!isValidLang(lang)) {
lang = 'en';
}
}
primaryLang = code6392to6391(primaryLang?.toLowerCase() || '') || primaryLang;
if (lang === 'en' && primaryLang && !isSameLang(lang, primaryLang)) {
lang = primaryLang.split('-')[0]!.toLowerCase();
}