Open jangelcastanedap opened 9 months ago
import openai import gradio as gr import time import pyttsx3 engine = pyttsx3.init() # Creacion del objeto
openai.api_key = "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"
rate = engine.getProperty('rate') # Se obtienen datos del ritmo actual print (rate) # Se muestra el ritmo en consola engine.setProperty('rate', 150) # Se establece un nuevo ritmo
volume = engine.getProperty('volume') # Se obtiene el valor de volumen actual (min=0 and max=1) print (volume) # Se muestra el volumen en la terminal engine.setProperty('volume',1.0) # Se establece el nivel del volumen entre 0 y 1
for voice in engine.getProperty('voices'): print (voice)
voices = engine.getProperty('voices') # Se obtienen los datos de la voz actual engine.setProperty('voice', voices[2].id) # El indice determina el idioma de la voz. 2 -> Español
messages = [
]
with gr.Blocks() as demo: chatbot = gr.Chatbot() msg = gr.Textbox() limpiar = gr.Button("limpiar") enviar = gr.Button("enviar")
def user(user_input, history):
messages.append({"role": "user", "content": user_input})
return "", history + [[user_input, None]]
def botGPT(history):
response = openai.ChatCompletion.create(
model = "gpt-3.5-turbo",
messages = messages
)
ChatGPT_reply = response["choices"][0]["message"]["content"]
messages.append({"role": "assistant", "content": ChatGPT_reply})
history[-1][1] = ""
for character in ChatGPT_reply:
history[-1][1] += character
time.sleep(0.02)
yield history
# Guardar el audio en un archivo
engine.save_to_file(ChatGPT_reply, 'audio.mp3')
engine.say(ChatGPT_reply)
engine.runAndWait()
engine.stop()
return ChatGPT_reply
enviar.click(user, [msg, chatbot], [msg, chatbot], queue=False).then(
botGPT, chatbot, chatbot
)
limpiar.click(lambda: None, None, chatbot, queue=False)
demo.queue() demo.launch(share=True)
ChatBot que utiliza la librería de python Gradio para la interfaz gráfica y el api key de OpenAI para utilizar el GPT-3 (Da Vinci 003), así como TTS de Google para convertir a audio las respuestas del ChatBot.