Spaces:
No application file
No application file
import whisper | |
import gradio as gr | |
import openai | |
from TTS.api import TTS | |
# Create an instance of the TTS class | |
tts = TTS() | |
# Call the list_models() method on the instance | |
model_list = tts.list_models() | |
# Now, you can access the models in the model_list and choose one | |
model_name = model_list[9] | |
# Create another instance of the TTS class with the selected model | |
tts = TTS(model_name) | |
tts.tts_to_file(text="I love playing Chess", file_path="output.wav") | |
from IPython.display import Audio, display | |
display(Audio('output.wav', autoplay=True)) | |
model = whisper.load_model("medium") | |
openai.api_key = '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' | |
def voice_chat(user_voice): | |
messages = [ | |
{"role": "system", "content": "You are a kind helpful assistant."}, | |
] | |
user_message = model.transcribe(user_voice)["text"] | |
#reply = user_message | |
messages.append( | |
{"role": "user", "content": user_message}, | |
) | |
print(messages) | |
chat = openai.ChatCompletion.create( | |
model="gpt-3.5-turbo", messages=messages | |
) | |
reply = chat.choices[0].message.content | |
messages.append({"role": "assistant", "content": reply}) | |
tts.tts_to_file(text=reply, file_path="output.wav") | |
return(reply, 'output.wav') | |
text_reply = gr.Textbox(label="ChatGPT Text") | |
voice_reply = gr.Audio('output.wav') | |
gr.Interface( | |
title = 'AI Voice Assistant with ChatGPT AI', | |
fn=voice_chat, | |
inputs=[ | |
gr.inputs.Audio(source="microphone", type="filepath") | |
], | |
outputs=[ | |
text_reply, voice_reply | |
], live = True).launch(debug = True) | |