Spaces:
Sleeping
Sleeping
| from io import BytesIO | |
| from langchain_openai import ChatOpenAI | |
| from openai import OpenAI | |
| import tiktoken | |
| import os | |
| from dotenv import load_dotenv | |
| import os | |
| # Load environment variables from .env file | |
| load_dotenv() | |
| # IBM Connection Parameters (using loaded env variables) | |
| openai_api_key = os.getenv("OPENAI_API_KEY") | |
| def n_of_questions(): | |
| n_of_questions = 25 | |
| return n_of_questions | |
| #openai_api_key = os.environ.get("openai_api_key") | |
| model = "gpt-4o-mini" | |
| def load_model(openai_api_key): | |
| return ChatOpenAI( | |
| model_name=model, | |
| openai_api_key=openai_api_key, | |
| temperature=0.5 | |
| ) | |
| # Initialize the OpenAI client with the API key | |
| client = OpenAI(api_key=openai_api_key) | |
| def convert_text_to_speech(text, output, voice): | |
| try: | |
| # Convert the final text to speech | |
| response = client.audio.speech.create(model="tts-1-hd", voice=voice, input=text) | |
| if isinstance(output, BytesIO): | |
| # If output is a BytesIO object, write directly to it | |
| for chunk in response.iter_bytes(): | |
| output.write(chunk) | |
| else: | |
| # If output is a file path, open and write to it | |
| with open(output, 'wb') as f: | |
| for chunk in response.iter_bytes(): | |
| f.write(chunk) | |
| except Exception as e: | |
| print(f"An error occurred: {e}") | |
| # Fallback in case of error | |
| response = client.audio.speech.create(model="tts-1-hd", voice=voice, input='Here is my Report.') | |
| if isinstance(output, BytesIO): | |
| for chunk in response.iter_bytes(): | |
| output.write(chunk) | |
| else: | |
| with open(output, 'wb') as f: | |
| for chunk in response.iter_bytes(): | |
| f.write(chunk) | |
| def transcribe_audio(audio): | |
| audio_file = open(audio, "rb") | |
| transcription = client.audio.transcriptions.create( | |
| model="whisper-1", | |
| file=audio_file | |
| ) | |
| return transcription.text |