From c1fff005866b3794ae8b817193bbbdcb255366ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Wed, 13 Nov 2024 16:59:46 +0100 Subject: [PATCH] services(playht): fix language codes --- src/pipecat/services/playht.py | 98 +++++++++++++--------------------- 1 file changed, 37 insertions(+), 61 deletions(-) diff --git a/src/pipecat/services/playht.py b/src/pipecat/services/playht.py index 167181586..e9a17f10b 100644 --- a/src/pipecat/services/playht.py +++ b/src/pipecat/services/playht.py @@ -47,63 +47,40 @@ except ModuleNotFoundError as e: def language_to_playht_language(language: Language) -> str | None: - match language: - case Language.BG: - return "BULGARIAN" - case Language.CA: - return "CATALAN" - case Language.CS: - return "CZECH" - case Language.DA: - return "DANISH" - case Language.DE: - return "GERMAN" - case ( - Language.EN - | Language.EN_US - | Language.EN_GB - | Language.EN_AU - | Language.EN_NZ - | Language.EN_IN - ): - return "ENGLISH" - case Language.ES: - return "SPANISH" - case Language.FR | Language.FR_CA: - return "FRENCH" - case Language.EL: - return "GREEK" - case Language.HI: - return "HINDI" - case Language.HU: - return "HUNGARIAN" - case Language.ID: - return "INDONESIAN" - case Language.IT: - return "ITALIAN" - case Language.JA: - return "JAPANESE" - case Language.KO: - return "KOREAN" - case Language.MS: - return "MALAY" - case Language.NL: - return "DUTCH" - case Language.PL: - return "POLISH" - case Language.PT | Language.PT_BR: - return "PORTUGUESE" - case Language.RU: - return "RUSSIAN" - case Language.SV: - return "SWEDISH" - case Language.TH: - return "THAI" - case Language.TR: - return "TURKISH" - case Language.UK: - return "UKRAINIAN" - return None + language_map = { + Language.BG: "bulgarian", + Language.CA: "catalan", + Language.CS: "czech", + Language.DA: "danish", + Language.DE: "german", + Language.EN: "english", + Language.EN_US: "english", + Language.EN_GB: "english", + Language.EN_AU: "english", + Language.EN_NZ: "english", + Language.EN_IN: "english", + Language.ES: "spanish", + Language.FR: "french", + Language.FR_CA: "french", + Language.EL: "greek", + Language.HI: "hindi", + Language.HU: "hungarian", + Language.ID: "indonesian", + Language.IT: "italian", + Language.JA: "japanese", + Language.KO: "korean", + Language.MS: "malay", + Language.NL: "dutch", + Language.PL: "polish", + Language.PT: "portuguese", + Language.PT_BR: "portuguese", + Language.RU: "russian", + Language.SV: "swedish", + Language.TH: "thai", + Language.TR: "turkish", + Language.UK: "ukrainian", + } + return language_map.get(language) class PlayHTTTSService(TTSService): @@ -140,7 +117,7 @@ class PlayHTTTSService(TTSService): "sample_rate": sample_rate, "language": self.language_to_service_language(params.language) if params.language - else Language.EN, + else "english", "output_format": output_format, "voice_engine": voice_engine, "speed": params.speed, @@ -153,8 +130,7 @@ class PlayHTTTSService(TTSService): return True def language_to_service_language(self, language: Language) -> str | None: - # Keep your existing language mapping logic here - pass + return language_to_playht_language(language) async def start(self, frame: StartFrame): await super().start(frame) @@ -352,7 +328,7 @@ class PlayHTHttpTTSService(TTSService): "sample_rate": sample_rate, "language": self.language_to_service_language(params.language) if params.language - else Language.EN, + else "english", "format": Format.FORMAT_WAV, "voice_engine": voice_engine, "speed": params.speed,