From 51270a96c5ed922e0e575d0fa8323289e76c080d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Thu, 22 Aug 2024 22:40:42 -0700 Subject: [PATCH] frames: add language to transcription frames --- src/pipecat/frames/frames.py | 7 +++++-- src/pipecat/transcriptions/language.py | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 src/pipecat/transcriptions/language.py diff --git a/src/pipecat/frames/frames.py b/src/pipecat/frames/frames.py index e3b2aab37..1fe13024a 100644 --- a/src/pipecat/frames/frames.py +++ b/src/pipecat/frames/frames.py @@ -8,6 +8,7 @@ from typing import Any, List, Mapping, Optional, Tuple from dataclasses import dataclass, field +from pipecat.transcriptions.languages import Language from pipecat.utils.utils import obj_count, obj_id from pipecat.vad.vad_analyzer import VADParams @@ -131,9 +132,10 @@ class TranscriptionFrame(TextFrame): """ user_id: str timestamp: str + language: Language | None = None def __str__(self): - return f"{self.name}(user: {self.user_id}, text: {self.text}, timestamp: {self.timestamp})" + return f"{self.name}(user: {self.user_id}, text: {self.text}, language: {self.language}, timestamp: {self.timestamp})" @dataclass @@ -142,9 +144,10 @@ class InterimTranscriptionFrame(TextFrame): the transport's receive queue when a participant speaks.""" user_id: str timestamp: str + language: Language | None = None def __str__(self): - return f"{self.name}(user: {self.user_id}, text: {self.text}, timestamp: {self.timestamp})" + return f"{self.name}(user: {self.user_id}, text: {self.text}, language: {self.language}, timestamp: {self.timestamp})" @dataclass diff --git a/src/pipecat/transcriptions/language.py b/src/pipecat/transcriptions/language.py new file mode 100644 index 000000000..2a8e3c3ac --- /dev/null +++ b/src/pipecat/transcriptions/language.py @@ -0,0 +1,23 @@ +# +# Copyright (c) 2024, Daily +# +# SPDX-License-Identifier: BSD 2-Clause License +# + +import sys + +from enum import Enum + +if sys.version_info < (3, 11): + class StrEnum(str, Enum): + def __new__(cls, value): + obj = str.__new__(cls, value) + obj._value_ = value + return obj +else: + from enum import StrEnum + + +class Language(StrEnum): + EN = "en" + ES = "es"