Improve language checking in STT and TTS services
This commit is contained in:
@@ -24,7 +24,7 @@ from pipecat.frames.frames import (
|
||||
)
|
||||
from pipecat.processors.frame_processor import FrameDirection
|
||||
from pipecat.services.tts_service import InterruptibleTTSService
|
||||
from pipecat.transcriptions.language import Language
|
||||
from pipecat.transcriptions.language import Language, resolve_language
|
||||
from pipecat.utils.tracing.service_decorators import traced_tts
|
||||
|
||||
# See .env.example for LMNT configuration needed
|
||||
@@ -46,7 +46,7 @@ def language_to_lmnt_language(language: Language) -> Optional[str]:
|
||||
Returns:
|
||||
The corresponding LMNT language code, or None if not supported.
|
||||
"""
|
||||
BASE_LANGUAGES = {
|
||||
LANGUAGE_MAP = {
|
||||
Language.DE: "de",
|
||||
Language.EN: "en",
|
||||
Language.ES: "es",
|
||||
@@ -68,17 +68,7 @@ def language_to_lmnt_language(language: Language) -> Optional[str]:
|
||||
Language.ZH: "zh",
|
||||
}
|
||||
|
||||
result = BASE_LANGUAGES.get(language)
|
||||
|
||||
# If not found in base languages, try to find the base language from a variant
|
||||
if not result:
|
||||
# Convert enum value to string and get the base language part (e.g. es-ES -> es)
|
||||
lang_str = str(language.value)
|
||||
base_code = lang_str.split("-")[0].lower()
|
||||
# Look up the base code in our supported languages
|
||||
result = base_code if base_code in BASE_LANGUAGES.values() else None
|
||||
|
||||
return result
|
||||
return resolve_language(language, LANGUAGE_MAP, use_base_code=True)
|
||||
|
||||
|
||||
class LmntTTSService(InterruptibleTTSService):
|
||||
|
||||
Reference in New Issue
Block a user