Spaces:
Sleeping
Sleeping
import gradio as gr | |
from gtts import gTTS | |
import hashlib | |
import os | |
# Cache for storing generated audio | |
audio_cache = {} | |
# Chatbot Response Function | |
def chatbot_response(user_input): | |
responses = { | |
"hello": "Hello! How can I help you?", | |
"how are you": "I'm just a bot, but I'm doing great! What about you?", | |
"bye": "Goodbye! Have a nice day!", | |
} | |
return responses.get(user_input.lower(), "Sorry, I didn't understand that.") | |
# Text-to-Speech Function with Caching | |
def speak(text): | |
text_hash = hashlib.md5(text.encode()).hexdigest() | |
audio_file = f"{text_hash}.mp3" | |
if text_hash not in audio_cache: | |
tts = gTTS(text=text, lang='en', slow=False) | |
tts.save(audio_file) | |
audio_cache[text_hash] = audio_file | |
return audio_cache[text_hash] | |
# Combined Function for Gradio Interface | |
def chatbot(user_input): | |
response = chatbot_response(user_input) | |
audio_path = speak(response) | |
return response, audio_path | |
# Gradio Interface | |
iface = gr.Interface( | |
fn=chatbot, | |
inputs=gr.Textbox(lines=2, placeholder="Type your message here..."), | |
outputs=[gr.Textbox(), gr.Audio()], | |
title="AI Female Voice Chatbot", | |
description="Simple chatbot with text-to-speech functionality." | |
) | |
iface.launch() | |