Spaces:
Sleeping
Sleeping
import base64 | |
import streamlit as st | |
import os | |
import openai | |
from dotenv import load_dotenv | |
from gtts import gTTS | |
# Function to accept OpenAI API Key as input from the user | |
def get_api_key(): | |
api_key = st.text_input("Enter your OpenAI API Key", type="password") | |
if api_key: | |
openai.api_key = api_key | |
return api_key | |
else: | |
return None | |
def speech_to_text(audio_data): | |
"""Transcribes audio data to text using OpenAI's API.""" | |
with open(audio_data, "rb") as audio_file: | |
transcript = openai.Audio.transcribe( | |
model="whisper-1", | |
file=audio_file | |
) | |
return transcript["text"] | |
def text_to_speech(input_text): | |
"""Generates a TTS audio file from the input text.""" | |
tts = gTTS(text=input_text, lang="en") | |
audio_file_path = "temp_audio_play.mp3" | |
tts.save(audio_file_path) | |
return audio_file_path | |
def autoplay_audio(file_path: str): | |
with open(file_path, "rb") as f: | |
data = f.read() | |
b64 = base64.b64encode(data).decode("utf-8") | |
md = f""" | |
<audio autoplay> | |
<source src="data:audio/mp3;base64,{b64}" type="audio/mp3"> | |
</audio> | |
""" | |
st.markdown(md, unsafe_allow_html=True) | |