""" OpenAITextToSpeech Module """ from openai import OpenAI class OpenAITextToSpeech: """ Implements a text-to-speech model using the OpenAI API. Attributes: client (OpenAI): The OpenAI client used to interact with the API. model (str): The model to use for text-to-speech conversion. voice (str): The voice model to use for generating speech. Args: tts_config (dict): Configuration parameters for the text-to-speech model. """ def __init__(self, tts_config: dict): self.client = OpenAI(api_key=tts_config.get("api_key"), base_url=tts_config.get("base_url", None)) self.model = tts_config.get("model", "tts-1") self.voice = tts_config.get("voice", "alloy") def run(self, text: str) -> bytes: """ Converts the provided text to speech and returns the bytes of the generated speech. Args: text (str): The text to convert to speech. Returns: bytes: The bytes of the generated speech audio. """ response = self.client.audio.speech.create( model=self.model, voice=self.voice, input=text ) return response.content