|
import base64
|
|
import streamlit as st
|
|
import os
|
|
import openai
|
|
from dotenv import load_dotenv
|
|
from gtts import gTTS
|
|
|
|
|
|
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)
|
|
|