Spaces:
Running
Running
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 |