|
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) |
|
|