import gradio as gr import pyttsx3 import torch from transformers import pipeline, AutoModelForCausalLM, AutoTokenizer import whisper # Load text-generation model model_name = "microsoft/DialoGPT-medium" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForCausalLM.from_pretrained(model_name) # Initialize Text-to-Speech tts = pyttsx3.init() tts.setProperty("rate", 150) # Adjust speech speed # Load Whisper for speech recognition whisper_model = whisper.load_model("small") def live_chat(audio): # Convert speech to text result = whisper_model.transcribe(audio) user_input = result["text"] # Generate chatbot response input_ids = tokenizer.encode(user_input + tokenizer.eos_token, return_tensors="pt") response_ids = model.generate(input_ids, max_length=100, pad_token_id=tokenizer.eos_token_id) bot_response = tokenizer.decode(response_ids[:, input_ids.shape[-1]:][0], skip_special_tokens=True) # Speak response tts.say(bot_response) tts.runAndWait() return bot_response # Gradio Interface app = gr.Interface( fn=live_chat, inputs=gr.Audio(type="filepath"), # Microphone input outputs="text", live=True, ) # Launch the app app.launch()