import gradio as gr import openai from decouple import config from gtts import gTTS import os import config openai.api_key = config.API_KEYS['openai'] # The Models Job or role messages = [ {"role": "system", "content": "You are a helpful assistant."}, ] # Main method goes here def decipher(audio): global messages # Using openAI's speech to text model audio_file = open(audio, "rb") transcript = openai.Audio.transcribe("whisper-1", audio_file) messages.append({"role": "user", "content": transcript["text"]}) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=messages ) system_message = response["choices"][0]["message"]["content"] myobj = gTTS(text=system_message, lang='en', slow=False) myobj.save("welcome.mp3") # Playing the converted file os.system("play welcome.mp3") messages.append({"role": "assistant", "content": system_message}) chat_transcript = "" for message in messages: if message['role'] != 'system': chat_transcript += message['role'] + ": " + message['content'] + "\n\n" return chat_transcript # Using Gradio's audio Interface interface = gr.Interface(fn=decipher, inputs=gr.Audio( source="microphone", type="filepath"), outputs="text") interface.launch()